Messages in this thread | | | Date | Wed, 19 Aug 2009 20:15:00 +0400 | From | Cyrill Gorcunov <> | Subject | Re: [RFC -tip] x86,apic: set cpu_has_apic manually for discrete apic |
| |
[Cyrill Gorcunov - Sun, Aug 16, 2009 at 11:57:36PM +0400] | | In case of discrete apic (due to hardware or firmware reason) | cpuid may not retrieve cpu_has_apic bit. But we rely on this | bit in SMP compiled kernels. So instead of long condition checking | we set cpu_has_apic bit manually and check it only in further | code flow. | | Note that the case is applied to x86-32 pretty old machines only. | Also verify_local_APIC is the only place where such a trick | could be done. We can't do it earlier since there could be | a BIOS bug and other checks which we are to pass to ensure | that APIC is functional. | | The patch also make lapic_shutdown, disable_IO_APIC callable | which should take place even on discrete apics. | | As a side effect it makes lapic sysfs device available | for such machines so lets check for apic being integrated | since we don't support suspend/resume for disrete apics. | | Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org> | ---
Please drop this RFC now as to eliminate side effects a number of quirks (MCE,MSI) would be needed. I didn't trigger problems because not all interrupt types were covered with qemu. The simpliest (and more safe) approach will be just to fix lapic_shutdown and disable_IO_APIC for discrete apic case. Will cook a patch.
-- Cyrill
| |