RE: [PATCH][2.4] generic support for systems with more than 8 CP

Protasevich, Natalie (Natalie.Protasevich@UNISYS.com)
Sun, 22 Dec 2002 14:21:15 -0600


>> 2/2 : switching to physical mode APIC setup in case of more than 8 CPU
system
[...]
>> - printk("Enabling APIC mode: ");
>> - if(clustered_apic_mode == CLUSTERED_APIC_NUMAQ)
>> - printk("Clustered Logical. ");
>> - else if(clustered_apic_mode == CLUSTERED_APIC_XAPIC)
>> - printk("Physical. ");
>> - else
>> - printk("Flat. ");
>> - printk("Using %d I/O APICs\n",nr_ioapics);

>IIRC NUMA-Q can be dynamically detected at boot by means of an MP OEM
>table's presence, in particular if there's a matching string in the 8B
>OEM record in the OEM table, with a value of "IBM NUMA" IIRC. This is
>probably a line or two's worth of change to mpparse.c and declaring a
>variable for clustered_apic_mode. If it were difficult to detect, I
>wouldn't have suggested implementing it (though do so at your leisure). =)

The format for the OEM table is pretty much freelance. ES7000 uses it in the
most informal way. However, we need information from this table to switch to
APIC mode, start CPUs, etc. To have the hook for OEM tables in MP parsing
(and in ACPI, for that matter) seems pretty natural. Or if reading of the
OEM table could also be done in more generic way so other platforms had
chance to read their tables seamlessly...

Also, could the clustered_logical and clustered_physical modes be
implemented as a primary item, with NUMA being a secondary with the set of
its unique features on top of the certain APIC mode? This way, a clustered
mode for the APIC could be selectable without NUMA. CLUSTERED_APIC_NUMAQ
could be still an option with an appropriate clustered mode defined.

--Natalie

>I still think this is 2.5 material + backport once it gets testing there.

>Bill
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/