public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: "Radim Krcmár" <rkrcmar@redhat.com>
To: "Wu, Feng" <feng.wu@intel.com>
Cc: "pbonzini@redhat.com" <pbonzini@redhat.com>,
	"kvm@vger.kernel.org" <kvm@vger.kernel.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>
Subject: Re: [PATCH] KVM: x86: Add lowest-priority support for vt-d posted-interrupts
Date: Fri, 11 Dec 2015 15:37:51 +0100	[thread overview]
Message-ID: <20151211143751.GA28788@potion.brq.redhat.com> (raw)
In-Reply-To: <E959C4978C3B6342920538CF579893F00AED3C53@SHSMSX104.ccr.corp.intel.com>

2015-12-10 01:52+0000, Wu, Feng:
>> From: Radim Krčmář [mailto:rkrcmar@redhat.com]
>> (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.

  reply	other threads:[~2015-12-11 14:37 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-11-09  2:46 [PATCH] KVM: x86: Add lowest-priority support for vt-d posted-interrupts Feng Wu
2015-11-16  6:18 ` Wu, Feng
2015-11-16 19:03 ` Radim Krčmář
2015-11-17  9:41   ` Paolo Bonzini
2015-11-24  1:26     ` Wu, Feng
2015-11-24 14:35       ` Radim Krcmár
2015-11-24 14:38         ` Paolo Bonzini
2015-11-25  1:58           ` Wu, Feng
2015-11-25 11:32             ` Paolo Bonzini
2015-11-24  1:26   ` Wu, Feng
2015-11-24 14:31     ` Radim Krčmář
2015-11-24 14:44       ` Radim Krčmář
2015-11-25  3:21       ` Wu, Feng
2015-11-25 14:12         ` Radim Krcmár
2015-11-25 14:38           ` Paolo Bonzini
2015-11-25 15:43             ` Radim Krčmář
2015-11-26  6:24               ` Wu, Feng
2015-11-26 14:03                 ` Radim Krcmár
2015-12-09  8:19   ` Wu, Feng
2015-12-09 14:53     ` Radim Krčmář
2015-12-10  1:52       ` Wu, Feng
2015-12-11 14:37         ` Radim Krcmár [this message]
2015-12-15  1:52           ` Wu, Feng

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20151211143751.GA28788@potion.brq.redhat.com \
    --to=rkrcmar@redhat.com \
    --cc=feng.wu@intel.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox