All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Radim Krčmář" <rkrcmar@redhat.com>
To: Paolo Bonzini <pbonzini@redhat.com>
Cc: linux-kernel@vger.kernel.org, kvm@vger.kernel.org, "Lan,
	Tianyu" <tianyu.lan@intel.com>,
	Igor Mammedov <imammedo@redhat.com>,
	Jan Kiszka <jan.kiszka@web.de>, Peter Xu <peterx@redhat.com>,
	Yang Zhang <yang.zhang.wz@gmail.com>
Subject: Re: [PATCH v3 12/14] KVM: x86: add a flag to disable KVM x2apic broadcast quirk
Date: Wed, 13 Jul 2016 17:14:13 +0200	[thread overview]
Message-ID: <20160713151413.GD22438@potion> (raw)
In-Reply-To: <4b30aa90-24bb-c5d0-18c0-b1fb4a62014f@redhat.com>

2016-07-13 10:38+0200, Paolo Bonzini:
> On 12/07/2016 22:09, Radim Krčmář wrote:
>> @@ -619,14 +619,17 @@ static bool kvm_apic_match_logical_addr(struct kvm_lapic *apic, u32 mda)
>>  /* KVM APIC implementation has two quirks
>>   *  - dest always begins at 0 while xAPIC MDA has offset 24,
>>   *  - IOxAPIC messages have to be delivered (directly) to x2APIC.
>> + *
>> + * The broadcast quirk can be disabled with KVM_CAP_X2APIC_API.
> 
> --verbose version:
> 
>  /* KVM APIC implementation has two quirks
> - *  - dest always begins at 0 while xAPIC MDA has offset 24,
> - *  - IOxAPIC messages have to be delivered (directly) to x2APIC.
> + *  - dest always begins at 0 while xAPIC MDA has offset 24.  This is
> + *    just a quirk in the API and is not problematic.
>   *
> - * The broadcast quirk can be disabled with KVM_CAP_X2APIC_API.
> + *  - in-kernel IOAPIC messages have to be delivered directly to
> + *    x2APIC, because the kernel does not support interrupt remapping.
> + *    In order to support broadcast without interrupt remapping, x2APIC
> + *    rewrites the destination of non-IPI messages (and also of IPIs sent
> + *    from xAPIC-mode LAPICs) from APIC_BROADCAST to X2APIC_BROADCAST.

KVM doesn't do the operation in parentheses since 394457a928e0 ("KVM:
x86: some apic broadcast modes does not work").

Following patches added only !ipi case (I already regret posting them).

> + *
> + * The broadcast quirk can be disabled with KVM_CAP_X2APIC_API.  This is
> + * important when userspace wants to use x2APIC-format MSIs, because
> + * APIC_BROADCAST (0xff) is a legal route for "cluster 0, CPUs 0-7".
>   */
> 
> Sounds good?

Except that one bit.  (Code alone really can't explain the what happens
here.)

  reply	other threads:[~2016-07-13 15:14 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-12 20:09 [PATCH v3 00/14] KVM: x86: break the xAPIC barrier Radim Krčmář
2016-07-12 20:09 ` [PATCH v3 01/14] KVM: x86: bump KVM_SOFT_MAX_VCPUS to 240 Radim Krčmář
2016-07-12 20:09 ` [PATCH v3 02/14] KVM: x86: add kvm_apic_map_get_dest_lapic Radim Krčmář
2016-07-12 20:09 ` [PATCH v3 03/14] KVM: x86: use physical LAPIC array for logical x2APIC Radim Krčmář
2016-08-02 13:46   ` Wanpeng Li
2016-08-02 14:22     ` Radim Krčmář
2016-08-02 16:40       ` Nadav Amit
2016-07-12 20:09 ` [PATCH v3 04/14] KVM: x86: dynamic kvm_apic_map Radim Krčmář
2016-07-13  8:29   ` Paolo Bonzini
2016-07-13 14:37     ` Radim Krčmář
2016-08-02 11:39   ` Wanpeng Li
2016-08-02 12:22     ` Radim Krčmář
2016-08-02 13:15       ` Wanpeng Li
2016-07-12 20:09 ` [PATCH v3 05/14] KVM: x86: use generic function for MSI parsing Radim Krčmář
2016-07-12 20:09 ` [PATCH v3 06/14] KVM: x86: use hardware-compatible format for APIC ID register Radim Krčmář
2016-07-12 20:09 ` [PATCH v3 07/14] KVM: x86: reset APIC ID when enabling LAPIC Radim Krčmář
2016-08-02 13:26   ` Wanpeng Li
2016-08-02 13:52     ` Radim Krčmář
2016-07-12 20:09 ` [PATCH v3 08/14] KVM: VMX: optimize APIC ID read with APICv Radim Krčmář
2016-07-12 20:09 ` [PATCH v3 09/14] KVM: x86: reset lapic base in kvm_lapic_reset Radim Krčmář
2016-07-12 20:09 ` [PATCH v3 10/14] KVM: pass struct kvm to kvm_set_routing_entry Radim Krčmář
2016-07-12 20:09 ` [PATCH v3 11/14] KVM: x86: add KVM_CAP_X2APIC_API Radim Krčmář
2016-07-13  8:41   ` Paolo Bonzini
2016-07-13 14:40     ` Radim Krčmář
2016-07-12 20:09 ` [PATCH v3 12/14] KVM: x86: add a flag to disable KVM x2apic broadcast quirk Radim Krčmář
2016-07-13  8:38   ` Paolo Bonzini
2016-07-13 15:14     ` Radim Krčmář [this message]
2016-07-13 15:30       ` Paolo Bonzini
2016-07-13 10:15   ` Paolo Bonzini
2016-07-13 14:52     ` Radim Krčmář
2016-07-12 20:09 ` [PATCH v3 13/14] KVM: x86: bump MAX_VCPUS to 288 Radim Krčmář
2016-07-12 20:09 ` [PATCH v3 14/14] KVM: x86: bump KVM_MAX_VCPU_ID to 1023 Radim Krčmář

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=20160713151413.GD22438@potion \
    --to=rkrcmar@redhat.com \
    --cc=imammedo@redhat.com \
    --cc=jan.kiszka@web.de \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=pbonzini@redhat.com \
    --cc=peterx@redhat.com \
    --cc=tianyu.lan@intel.com \
    --cc=yang.zhang.wz@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.