On 08/02/2010 01:53 PM, Suresh Siddha wrote: > On Mon, 2010-08-02 at 13:18 -0700, Yinghai Lu wrote: >> On Mon, Aug 2, 2010 at 12:06 PM, Suresh Siddha >> <suresh.b.siddha@xxxxxxxxx> wrote: >>> On Sat, 2010-07-31 at 07:51 +0100, Yinghai Lu wrote: >>>> According to Intel x2apic spec page 46 >>>> >>>> " The hand-off to >>>> OSPM will have processor IDs in the range of 0 to 254 for xAPIC/x2APIC and 0 to 255 >>>> for SAPIC declared as either Processor() or Device() objects, but not both. Processor >>>> IDs outside these ranges must be declared as Device() objects." >>>> >>>> So only check if Device is used when acpi_id >=255. >>>> >>>> that will help system with less 255 cpus, but some cpus apic id > 255, >>>> still can use Processor statement instead of Device() objects. >>> >>> But the entries with apic_id < 255 are supposed to use local APIC >>> structure and not local x2apic structure. So entries with apic id < 255 >>> must be processed using map_lapic_id() which doesn't have any >>> device_declaration checks. >>> >>> Only for apic ids > 255, we use map_x2apic_id() which needs device >>> declaration. So this patch is not needed. or Am I missing something? >> >> it is acpi_id aka Processor id. >> >> the system has less than 255 cpus, but some cpus apic_id > 255. >> BIOS have apic entries for apic_id < 255, and some x2apic entries for >> apic_id > 255. >> >> but BIOS still use Processor statement for all cpus. > > Ok. I think there might be some confusion or mis-interpretation of the > words here. You referred to x2apic spec page 46, perhaps this is an > older version. Newer x2apic version leaves all the ACPI definitions to > the ACPI 4.0 spec. > > And here is what ACPI 4.0 spec says: > > In Table5-33 for processor local x2apic structure: > > ACPI Processor UID > 4 > 12 > OSPM associates the X2APIC Structure with a processor object declared in > the namespace using the Device statement, when the _UID child object of > the processor device evaluates to a numeric value, by matching the > numeric value with this field > > And in page 312: > > <snip> > The platform may declare processors with IDs in the range of 0-254 for > APIC/x2APIC implementations and 0-255 for SAPIC implementations using > either the ASL Processor statement or the ASL Device statement but not > both. Processors with IDs outside these ranges must be declared using > the ASL Device statement. > </snip> > > And in the above paragraph "processors with IDs" are APIC id's and not > ACPI Id's. > > So I think your bios need to implement ACPI device objects for the > x2apic entries. that is confusing. thanks. I will ask BIOS to fix that. Yinghai -- To unsubscribe from this list: send the line "unsubscribe linux-acpi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html