Re: [tip:x86/apic] x86: read apic ID in the !acpi_lapic case

Cyrill Gorcunov
2009-05-11T18:05:39Z

[Yinghai Lu - Mon, May 11, 2009 at 10:43:33AM -0700]
...
| >>
| >> x86: apic - fixmap apic address even if apic disabled
| >>
| >> In case if apic were disabled by boot option
| >> we still need read_apic operation. So fixmap
| >> a fake apic area if needed.
| >>
| >> Signed-off-by: Cyrill Gorcunov <gorcunov@openvz.org>
| >> ---
| >> arch/x86/kernel/apic/apic.c | 17 +++++++++--------
| >> 1 file changed, 9 insertions(+), 8 deletions(-)
| >>
| >> Index: linux-2.6.git/arch/x86/kernel/apic/apic.c
| >> =====================================================================
| >> --- linux-2.6.git.orig/arch/x86/kernel/apic/apic.c
| >> +++ linux-2.6.git/arch/x86/kernel/apic/apic.c
| >> @@ -1591,13 +1591,6 @@ void __init init_apic_mappings(void)
| >> } else
| >> apic_phys = mp_lapic_addr;
| >>
| >> - /* lets check if we may NOP'ify apic operations */
| >> - if (!cpu_has_apic) {
| >> - pr_info("APIC: disable apic facility\n");
| >> - apic_disable();
| >> - return;
| >> - }
| >> -
| >> /*
| >> * acpi lapic path already maps that address in
| >> * acpi_register_lapic_address()
| >> @@ -1606,7 +1599,15 @@ void __init init_apic_mappings(void)
| >> set_fixmap_nocache(FIX_APIC_BASE, apic_phys);
| >>
| >> apic_printk(APIC_VERBOSE, "mapped APIC to %08lx (%08lx)\n",
| >> - APIC_BASE, apic_phys);
| >> + APIC_BASE, apic_phys);
| >> +
| >> + /* lets check if we may NOP'ify apic operations */
| >> + if (!cpu_has_apic) {
| >> + pr_info("APIC: disable apic facility\n");
| >> + apic_disable();
| >> + return;
| >> + }
| >> +
| >
| > Will check this - thanks.
| >
|
| please check this one instead.
|
| [PATCH] x86: add native_apic_read_dummy
|
| when apic is not used ( not there, or disable_apic ), try to install
| dummy read too.
|
| could save 4k in that case.
|
| [ Impact: fix bug when try to dump APIC reg ]
|
| Signed-off-by: Yinghai Lu <yinghai@kernel.org>
| Cc: Cyrill Gorcunov <gorcunov@openvz.org>
|

Thanks Yinghai, looks really attractive!

But would need a good testing (seems we
rely on read_apic heavily in smp environment
even if it was disabled or not supported).

(btw comment about disable_apic now should
contain apic->read as well or should be dropped
completely since all is selfevidence from code
though this is not that important i believe)

-- Cyrill