Re: [PATCH] x86: enable x2apic early at the first point

From: Yinghai Lu
Date: Sat Feb 21 2009 - 17:44:48 EST


Suresh Siddha wrote:
> On Fri, 2009-02-20 at 01:55 -0800, Ingo Molnar wrote:
>> * Ingo Molnar <mingo@xxxxxxx> wrote:
>>
>>>> arch/x86/kernel/apic/apic.c | 3 +--
>>>> arch/x86/kernel/apic/x2apic_cluster.c | 5 ++++-
>>>> arch/x86/kernel/apic/x2apic_phys.c | 5 ++++-
>>>> arch/x86/kernel/apic/x2apic_uv_x.c | 4 +++-
>>>> drivers/pci/dmar.c | 3 ++-
>>>> 5 files changed, 14 insertions(+), 6 deletions(-)
>>> I've applied it because it fixes a real bug, but this code
>>> really needs a cleanup. Look at the repeat patterns:
>> unapplied it again as it breaks the build:
>>
>> arch/x86/kernel/apic/x2apic_cluster.c: In function 'x2apic_acpi_madt_oem_check':
>> arch/x86/kernel/apic/x2apic_cluster.c:17: error: 'disable_x2apic' undeclared (first use in this function)
>> arch/x86/kernel/apic/x2apic_cluster.c:17: error: (Each undeclared identifier is reported only once
>> arch/x86/kernel/apic/x2apic_cluster.c:17: error: for each function it appears in.)
>>
>> so please resend the fixed and cleaned up version.
>
> From: Suresh Siddha <suresh.b.siddha@xxxxxxxxx>
> Subject: x86: select x2apic ops in early apic probe only if x2apic mode is enabled
>
> If BIOS hands over the control to OS in legacy xapic mode, select legacy xapic
> related ops in the early apic probe and shift to x2apic ops later in the boot
> sequence, only after enabling x2apic mode.
>
> If BIOS hands over the control in x2apic mode, select x2apic related ops
> in the early apic probe.
>
> This fixes the early boot panic, where we were selecting x2apic ops,
> while the cpu is still in legacy xapic mode.

good, other than that.

for x2apic preenabled system,
when nox2apic is used, cpu_has_x2apic will be cleared, apic will be xapic phys_flat or flat.
is that expected?

should
1. ignore nox2apic
2. or try to disable x2apic?

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