Re: [PATCH] kvm: dont clear TMR on EOI

From: Gleb Natapov
Date: Thu Apr 12 2012 - 07:50:02 EST


On Wed, Apr 11, 2012 at 11:03:18PM -0300, Marcelo Tosatti wrote:
> On Wed, Apr 11, 2012 at 06:49:55PM +0300, Michael S. Tsirkin wrote:
> > Intel spec says that TMR needs to be set/cleared
> > when IRR is set, but kvm also clears it on EOI.
> >
> > I did some tests on a real (AMD based) system,
> > and I see same TMR values both before
> > and after EOI, so I think it's a minor bug in kvm.
> >
> > This patch fixes TMR to be set/cleared on IRR set
> > only as per spec.
> >
> > And now that we don't clear TMR, we can save
> > an atomic read of TMR on EOI that's not propagated
> > to ioapic, by checking whether ioapic needs
> > a specific vector first and calculating
> > the mode afterwards.
> >
> > Signed-off-by: Michael S. Tsirkin <mst@xxxxxxxxxx>
> > ---
> > arch/x86/kvm/lapic.c | 19 +++++++++++++------
> > virt/kvm/ioapic.c | 10 +++++++---
> > virt/kvm/ioapic.h | 1 +
> > 3 files changed, 21 insertions(+), 9 deletions(-)
>
> Looks OK, ioapic_service -> accept_apic_irq will set TMR
> again if IRR is raised. Gleb, can you review please?
>
Looks good to me.

--
Gleb.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/