Messages in this thread | | | Date | Thu, 22 Oct 2009 11:14:40 -0400 | From | Gregory Haskins <> | Subject | Re: [KVM PATCH 1/2] KVM: Directly inject interrupts via irqfd |
| |
Avi Kivity wrote: > On 10/21/2009 05:42 PM, Gregory Haskins wrote: >> I believe Avi, Michael, et. al. were in agreement with me on that design >> choice. I believe the reason is that there is no good way to do EOI/ACK >> feedback within the constraints of an eventfd pipe which would be >> required for the legacy pin-type interrupts. Therefore, we won't even >> bother trying. High-performance subsystems will use irqfd/msi, and >> legacy emulation can use the existing injection code (which includes the >> necessary feedback for ack/eoi). >> >> > > Right. But we don't actually prevent anyone using non-msi with irqfd, > which can trigger the bad lock usage from irq context, with a nice boom > afterwards. So we need to either prevent it during registration, or to > gracefully handle it afterwards. >
Yeah, I was thinking about that after I initially responded to Gleb.
I am thinking something along these lines:
Provide a function that lets you query a GSI for whether it supports LOCKLESS or not. Then we can either do one of two things:
1) Check for the LOCKLESS attribute at irqfd registration, fail if not present
2) Cache the LOCKLESS attribute in the irqfd structure, and either go direct or defer to a workqueue depending on the flag.
Thoughts? -Greg
[unhandled content-type:application/pgp-signature] | |