Re: [rfc 0/4] x86 - apic dummy ops with cleanups

Cyrill Gorcunov
2009-04-12T18:12:54Z

[Ingo Molnar - Sun, Apr 12, 2009 at 08:02:39PM +0200]
|
| * Cyrill Gorcunov <gorcunov@gmail.com> wrote:
|
| > Thanks, Ingo!
| >
| > Actually I found one a bit suspicious thing (not sure if it was
| > initially designed to behave like that).
| >
| > Suppose we have SMP compiled kernel and even supported on HW level
| > but then we disable apic thru kernel option. And then when system
| > startup it should be working fine since we go to uniprocessor
| > mode. Then the machine going for reboot and we have:
| >
| > Starting from arch/x86/kernel/reboot.c
| >
| > native_machine_shutdown
| > smp_send_stop
| > smp_ops.smp_send_stop
| > native_smp_send_stop
| > disable_local_APIC
| > apic_write(APIC_SPIV, value);
| >
| > Since we have reserved APIC memory mapped area (in _anycase_) it
| > doesn't cause any problems but was it initially supposed?
|
| i dont think that was supposed so. If the APIC wasnt even enabled
| then we shouldnt try to disable it. Note that there are a few
| unusual paths to APIC enablement: for example by twiddling the
| nmi_watchdog knob in /proc/sys - or in theory through a CPU hotplug
| event.
|
| Ingo
|

Ugh... I expected something like "No, look at that code! You've
missed this snippet!". Which would make me happy :-)

I'll take a look.

Cyrill