Re: [PATCH] Use x2apic_supported() in the default_apic_id_valid()function.

From: Steffen Persvold
Date: Fri Mar 16 2012 - 02:56:42 EST


On 3/16/2012 05:19, Yinghai Lu wrote:
On Thu, Mar 15, 2012 at 7:08 PM, Yinghai Lu<yinghai@xxxxxxxxxx> wrote:
So this change breaks the commit
c284b42abadbb22083bfde24d308899c08d44ffa.

I think the right thing is to have two different apid_id_valid checks
one for xapic driver (apic_flat_64.c) and another for x2apic driver
(x2apic_phys/cluster.c) and that way, x2apic MADT entries will be parsed
only if bios has handed over the OS in x2apic mode or if we have
selected the numachip model.

that looks like more clear.

after more thinking, I think We should still use cpu_has_x2apic checking.

one maybe invalid case:

System have some cpus apic id< 255, and some cpu apic id> 255.
BSP apic id< 255.
those cpus apic id< 255 will be put into xapic mode, cpus> 255 will
be put into x2apic mode.
and DMAR table intr-remapping will be working.

Hmm, I didn't know you could have two apic drivers (e.g. apic_flat_64 and x2apic_*) available at the same time ? Or did I read the above wrong ?


So if we check x2apic_mode early, will skip cpu with apic id> 255,
even switch to x2apic later.


Which one of the two patches I sent, do you (Suresh/Yinghai/others) believe is the best/cleanest and works in all cases. I, unfortunately, can't test the Intel case as I don't have any available to test on :/

Either patch works fine for NumaChip enabled systems.

If desired I will re-post the patch with the approach you find best, but add the apic->apic_id_valid() check in the SRAT code aswell.

Cheers,
--
Steffen Persvold, Chief Architect NumaChip
Numascale AS - www.numascale.com
Tel: +47 92 49 25 54 Skype: spersvold
--
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/