Hi,
I am trying to figure the following code chunk out:
if (x2apic_mode) {
boot_cpu_physical_apicid = read_apic_id();
return;
}
As my understanding, even in x2APIC mode, boot_cpu_physical_apicid is
also got via early_acpi_process_madt --> ... --> register_lapic_address,
so, is it for any corner case I am not aware?
--
Sincerely,
Cao jin
Cao jin <[email protected]> writes:
> Hi,
>
> I am trying to figure the following code chunk out:
>
> if (x2apic_mode) {
> boot_cpu_physical_apicid = read_apic_id();
> return;
> }
>
> As my understanding, even in x2APIC mode, boot_cpu_physical_apicid is
> also got via early_acpi_process_madt --> ... --> register_lapic_address,
> so, is it for any corner case I am not aware?
The case when there are neither ACPI nor valid mptables. Unlikely, but
possible in theory.
Thanks,
tglx
On 3/7/20 7:27 PM, Thomas Gleixner wrote:
> Cao jin <[email protected]> writes:
>> Hi,
>>
>> I am trying to figure the following code chunk out:
>>
>> if (x2apic_mode) {
>> boot_cpu_physical_apicid = read_apic_id();
>> return;
>> }
>>
>> As my understanding, even in x2APIC mode, boot_cpu_physical_apicid is
>> also got via early_acpi_process_madt --> ... --> register_lapic_address,
>> so, is it for any corner case I am not aware?
>
> The case when there are neither ACPI nor valid mptables. Unlikely, but
> possible in theory.
>
I noticed this case in its calling comments, but failed to associate it
with a x2APIC...
So init_apic_mapping() is for 2 corner cases that doesn't map APIC
register before: one you mentioned here, and MP default configuration
the other.
Thanks Thomas.
--
Sincerely,
Cao jin