Re: [PATCH] x86, apic: Enable x2APIC physical when cpu < 256 native

From: Ingo Molnar
Date: Sat Aug 17 2013 - 03:45:21 EST



* Youquan Song <youquan.song@xxxxxxxxxxxxxxx> wrote:

> > No problem - you might want to send another patch adding some comments to
> > the code, explaining why we don't switch to physical mode, quoting from
> > the SDM and so.
>
> Here is the revert patch.
>
> Subject: [PATCH] Revert "x86/apic: Enable x2APIC physical mode on native hardware too, when there are fewer than 256 CPUs"
>
> x2APIC without interrupt remapping is not architecture and no guarantee it
> will work in future.
> There are some words in SDM3, 10.12.7 Initialization by System
> Software Routing of device interrupts to local APIC units operating in
> x2APIC mode requires use of the interrupt-remapping architecture
> specified in the Intel Virtualization Technology for Directed I/O,
> Revision 1.3. Because of this, BIOS must enumerate support for and
> software must enable this interrupt remapping with Extended Interrupt
> Mode Enabled before it enabling x2APIC mode in the local APIC units.
>
> This reverts commit 3d1acb49d22fbbae96524040e9e2d4cbbb3adbef, do not use
> x2apic_pysical mode if interrupt remapping is not enabled even at CPU
> number fewer than 256.
>
> Signed-off-by: Youquan Song <youquan.song@xxxxxxxxx>
> ---
> arch/x86/kernel/apic/apic.c | 7 +++++--
> 1 files changed, 5 insertions(+), 2 deletions(-)
>
> diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
> index d9dd5a6..eca89c5 100644
> --- a/arch/x86/kernel/apic/apic.c
> +++ b/arch/x86/kernel/apic/apic.c
> @@ -1622,8 +1622,11 @@ void __init enable_IR_x2apic(void)
> goto skip_x2apic;
>
> if (ret < 0) {
> - /* IR is required if there is APIC ID > 255 */
> - if (max_physical_apicid > 255) {
> + /* IR is required if there is APIC ID > 255 even when running
> + * under KVM
> + */
> + if (max_physical_apicid > 255 ||
> + !hypervisor_x2apic_available()) {

Firstly, please use the customary (multi-line) comment
style:

/*
* Comment .....
* ...... goes here.
*/

specified in Documentation/CodingStyle.

Secondly, please send a patch against a vanilla (e.g.
v3.11-rc5) kernel, as I've already zapped your previous
patch from tip:x86/apic per your request.

Thanks,

Ingo
--
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/