On Tue, May 02, 2023 at 01:59:09PM -0400, Matthew Rosato wrote: > >> I'd really be happy to learn how a better approach would look like that does > >> not use longterm pinnings. > > > > Sounds like the FW sadly needs pinnings. This is why I said it looks > > like DMA. If possible it would be better to get the pinning through > > VFIO, eg as a mdev > > Hrm, these are today handled as a vfio-pci device (e.g. no mdev) so that would be a pretty significant change. I was thinking more of having your vIRQ controller as a vfio-mdev, so qemu would have to open the irq controller as well as the kvm and the PCI device > > Otherwise, it would have been cleaner if this was divorced from KVM > > and took in a direct user pointer, then maybe you could make the > > argument is its own thing with its own lifetime rules. (then you are > > kind of making your own mdev) > > Problem there is that firmware needs both the location (where to > indicate the event) and the identity of the KVM instance (what guest > to ship the GISA alert to) so I don't think we can completely > divorce them. I should have said "kvm page table", being in the KVM ioctls is sort of OK - but I'm really skeptical that KVM is a good place to put HW device wrappers. > > Or, perhaps, this is really part of some radical "irqfd" that we've > > been on and off talking about specifically to get this area of > > interrupt bypass uAPI'd properly.. > > I investigated that at one point and could not seem to get it to > fit; I'll have another look there. It is a long journey, but other arches have problems here too Jason