Re: [PATCH] Use x2apic_supported() in the default_apic_id_valid() function.
From: Yinghai Lu
Date: Thu Mar 15 2012 - 23:03:14 EST
On Thu, Mar 15, 2012 at 7:08 PM, Yinghai Lu <yinghai@xxxxxxxxxx> wrote:
> On Thu, Mar 15, 2012 at 2:21 PM, Suresh Siddha
> <suresh.b.siddha@xxxxxxxxx> wrote:
>> On Thu, 2012-03-15 at 13:23 -0700, Yinghai Lu wrote:
>>> On Thu, Mar 15, 2012 at 11:03 AM, Steffen Persvold <sp@xxxxxxxxxxxxx> wrote:
>>> > Use x2apic_supported() in the default_apic_id_valid() function. If x2apic mode is disabled (via nox2apic for example), x2apic_supported() will return false.
>>> >
>>> > This allows us to substitute the check in arch/x86/kernel/acpi/boot.c::acpi_parse_x2apic and avoid feigning the x2apic cpu feature in the NumaChip apic code.
>>> >
>>> > Signed-off-by: Steffen Persvold <sp@xxxxxxxxxxxxx>
>>> > Reviewed-by: Daniel J Blueman <daniel@xxxxxxxxxxxxxxxxxx>
>>>
>>> I double checked on system with x2apic preenabled,
>>> nox2apic in boot command line still works well and it
>>> skips starting APs with apic id > 255.
>>>
>>> Acked-by: Yinghai Lu <yinghai@xxxxxxxxxx>
>>
>> This breaks the smpboot check if enabling interrupt-remapping/x2apic
>> fails on a platform. We will be in xapic mode and we don't clear the
>> x2apic cpufeature bit in this case and as such smpboot check will fail.
>
> two cases:
> A: x2apic is pre-enabled, and some apic id > 255
> B: x2apic is not pre-enabled, but x2apic capable, suppose all apic id < 255.
>
> in case A: if nox2apic is passed, or dmar table is not there or
> intr-remap can not be enabled.
> that feature bit will be cleared. So check cpu_has_x2apic is enough there.
>
> in case B: if can not enable x2apic, the feature is not cleared, but
> apic id already < 255.
> so that check will pass too.
>
> So it should not break the smpboot check.
>
>>
>> So this change breaks the commit
>> c284b42abadbb22083bfde24d308899c08d44ffa.
Actually before I sent out acked-by, I did test the patch on my 8
sockets x2apic pre-enabled system with nox2apic.
It booted well while skipping all cpu with apic id > 255.
Thanks
Yinghai
--
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/