Messages in this thread | | | Date | Tue, 18 Dec 2012 09:49:18 -0800 | Subject | Re: Why Linux kernel forced to enter X2APIC mode( just because of booting cpu has supported x2apic) without depending on BIOS' setting in MSR->x2apic enablement bit ? | From | Yinghai Lu <> |
| |
On Tue, Dec 18, 2012 at 1:50 AM, Zhang, Lin-Bao (Linux Kernel R&D) <linbao.zhang@hp.com> wrote: > Hi Suresh and other guys , > > In 3.4.4/3.6.6 ,I found a x2apic issue . if I am wrong , sorry first , and welcome your correction . thanks for your forwarding other maintainers. > I am testing a server , its BIOS is like this: > a) If BIOS think the system is of x2apic , it will set x2apic enablement bit in MSR and create x2apic ACPI tables and pass control to OS with x2apic mode
kernel will check if DMAR table is right or not, if intr-remapping could be enabled, kernel will stay with x2apic. if intr-remapping can not be enabled (bad dmar table), kernel will switch back to xapic mode, but if BSP's X2APIC is bigger than 255, then you will get kernel panic.
> b) If BIOS feel the system doesn't meet x2apic conditions , it will not set x2apic enablement bit in MSR ,and pass control to OS with xapic mode.
kernel will check if cpuid support x2apic, if it supports x2apic, it will check if DMAR/intr-remapping could be enabled, if so kernel will switch to x2apic. otherwise it will stay with xapic.
So you need to make cpuid show does not support x2apic --- check with intel they have way to do that. or you can pass "nox2apic" in boot command line.
Yinghai
| |