qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: [RFC] KVM: PPC: Add level based interrupt logic


From: Avi Kivity
Subject: [Qemu-devel] Re: [RFC] KVM: PPC: Add level based interrupt logic
Date: Wed, 01 Sep 2010 14:56:53 +0300
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.8) Gecko/20100806 Fedora/3.1.2-1.fc13 Thunderbird/3.1.2

 On 09/01/2010 02:47 PM, Alexander Graf wrote:
On 01.09.2010, at 13:45, Avi Kivity wrote:

On 09/01/2010 12:38 PM, Alexander Graf wrote:
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 :).

So you noticed I avoided it.  Well, being forced to look, I don't think it's worthwhile to 
try to be generic here.  Both the PIC<->APIC and the APIC<->core interfaces are 
too complicated to be modelled by a single line.
Makes sense. Well, I guess it doesn't hurt to have the interface as is and only 
implement it for PPC for now.



Why not limit it to ppc?  Someone might call it by accident.

--
I have a truly marvellous patch that fixes the bug which this
signature is too narrow to contain.




reply via email to

[Prev in Thread] Current Thread [Next in Thread]