RE: [PATCH] KVM: x86: Add lowest-priority support for vt-d posted-interrupts

From: Wu, Feng
Date: Mon Dec 14 2015 - 20:52:30 EST




> -----Original Message-----
> From: kvm-owner@xxxxxxxxxxxxxxx [mailto:kvm-owner@xxxxxxxxxxxxxxx] On
> Behalf Of Radim KrcmÃr
> Sent: Friday, December 11, 2015 10:38 PM
> To: Wu, Feng <feng.wu@xxxxxxxxx>
> Cc: pbonzini@xxxxxxxxxx; kvm@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx
> Subject: Re: [PATCH] KVM: x86: Add lowest-priority support for vt-d posted-
> interrupts
>
> 2015-12-10 01:52+0000, Wu, Feng:
> >> From: Radim KrÄmÃÅ [mailto:rkrcmar@xxxxxxxxxx]
> >> (Physical xAPIC+x2APIC mode is still somewhat reasonable and xAPIC CPUs
> >> start with LDR=0, which means that operating system doesn't need to
> >> utilize mixed mode, as defined by KVM, when switching to x2APIC.)
> >
> > I think you mean Physical xAPIC+Physical x2APIC mode, right? For physical
> > mode, we don't use LDR in any case, do we? So in physical mode, we only
> > use the APIC ID, that is why they can be mixed, is my understanding correct?
>
> Yes. (Technically, physical and logical addressing is always active in
> APIC, but xAPIC must have nonzero LDR to accept logical interrupts[1].)
> If all xAPIC LDRs are zero, KVM doesn't enter a "mixed mode" even if
> some are xAPIC and some x2APIC [2].
>
> 1: Real LAPICs probably do not accept broadcasts on APICs where LDR=0,
> KVM LAPICs do, but lowest priority broadcast is not allowed anyway,
> so PI doesn't care.
>
> 2: KVM allows OS-writeable APIC ID, which complicates things and real
> hardware probably doesn't allow it because of that ... we'd be saner
> with RO APIC ID, but it's not that bad. (And no major OS does it :])
>
> >> the system uses cluster xAPIC, OS should set DFR before LDR, which
> >> doesn't trigger mixed mode either.)
> >
> > Just curious, if the APIC is software disabled and it is in xAPIC mode. OS sets
> > different value for DFR for different APICs, then when OS sets LDR, KVM can
> > trigger mixed flat and cluster mode, right?
>
> Exactly.
> APICs with zeroed LDR are ignored, so KVM will use the slow-path for
> delivery (= trigger mixed mode) at the moment the first APIC with
> different DFR is configured.

Thanks a lot for your explanation!

Thanks,
Feng

> --
> To unsubscribe from this list: send the line "unsubscribe kvm" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html