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

Ingo Molnar
2009-04-12T18:03:05Z

* 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