2014-02-07 00:52:42

by Jon DeVree

[permalink] [raw]
Subject: [PROBLEM] x86: result of verify_local_APIC() is ignored

In arch/x86/kernel/apic/apic.c there is a function called
verify_local_APIC() that does some APIC checks. The part where it writes
to the APIC ID register can cause CPU #15 to not come online under
VMware ESXi on 32-bit kernels if the virtual hardware version is 8.

I noticed that Ingo actually removed this exact chunk of code from
arch/i386/kernel/apic.c in 2.6.4, but since it was left in the x86_64
copy it came back when the two were merged.
http://permalink.gmane.org/gmane.linux.kernel.commits.head/27538

The Intel architecture manuals seem to agree and notes that the recent
Intel CPUs do not allow writing to the register which means that
machines are actually failing this check... which doesn't matter becuase
none of the callers are checking the return value of this function
anyway.

--
Jon
X(7): A program for managing terminal windows. See also screen(1).


2014-02-09 12:39:12

by Ingo Molnar

[permalink] [raw]
Subject: Re: [PROBLEM] x86: result of verify_local_APIC() is ignored


* Jon <[email protected]> wrote:

> In arch/x86/kernel/apic/apic.c there is a function called
> verify_local_APIC() that does some APIC checks. The part where it writes
> to the APIC ID register can cause CPU #15 to not come online under
> VMware ESXi on 32-bit kernels if the virtual hardware version is 8.
>
> I noticed that Ingo actually removed this exact chunk of code from
> arch/i386/kernel/apic.c in 2.6.4, but since it was left in the x86_64
> copy it came back when the two were merged.
> http://permalink.gmane.org/gmane.linux.kernel.commits.head/27538
>
> The Intel architecture manuals seem to agree and notes that the recent
> Intel CPUs do not allow writing to the register which means that
> machines are actually failing this check... which doesn't matter becuase
> none of the callers are checking the return value of this function
> anyway.

I guess we could remove that from the 64-bit code too. Would you like
to send a tested patch?

Thanks,

Ingo