On 01.09.2010, at 09:41, Avi Kivity wrote: > On 08/31/2010 01:07 PM, Alexander Graf wrote: >> KVM on PowerPC used to have completely broken interrupt logic. Usually, >> interrupts work by having a PIC that pulls a line up/down, so the CPU knows >> that an interrupt is active. This line stays active until some action is >> done to the PIC to release the line. >> >> On KVM for PPC, we just checked if there was an interrupt pending and pulled >> a line in the kernel module. We never released it though, hoping that kernel >> space would just declare an interrupt as released when injected - which is >> wrong. >> >> To fix this, we need to completely redesign the interrupt injection logic. >> Whenever an interrupt line gets triggered, we need to notify kernel space >> that the line is up. Whenever it gets released, we do the same. This way >> we can assure that the interrupt state is always known to kernel space. >> >> This fixes random stalls in KVM guests on PowerPC that were waiting for >> an interrupt while everyone else thought they received it already. > > This is more or less equivalent to KVM_IRQ_LINE.
My question was if you think the internal C interface is generic enough or if it needs a lot more magic for x86 anyways :). Alex