[PATCH] ARM: call disable_nonboot_cpus() from machine_shutdown()
Russell King - ARM Linux
linux at arm.linux.org.uk
Thu Jan 3 07:21:00 EST 2013
On Thu, Jan 03, 2013 at 12:02:59PM +0000, Will Deacon wrote:
> You need the smp_send_stop call in order to send the cpu_kill (looks like
> tegra needs die and then kill). So you really need hotplug support as well
> as suspend for this to do much (if not, the secondaries end up spinning
> with interrupts disabled which is probably the best we can do anyway).
>
> We could add SUSPEND as a KEXEC dependency if SMP (we already have HOTPLUG
> there) if you like?
Or we could look into bringing in the code to do this when KEXEC is
enabled - which would mean an amount of restructuring of the Kconfig
files.
In other words, go from this:
config SUSPEND
bool "Suspend to RAM and standby"
depends on ARCH_SUSPEND_POSSIBLE
default y
config HIBERNATE_CALLBACKS
bool
config PM_SLEEP
def_bool y
depends on SUSPEND || HIBERNATE_CALLBACKS
config PM_SLEEP_SMP
def_bool y
depends on SMP
depends on ARCH_SUSPEND_POSSIBLE || ARCH_HIBERNATION_POSSIBLE
depends on PM_SLEEP
select HOTPLUG
select HOTPLUG_CPU
to:
config SUSPEND
bool...
depends on ARCH_SUSPEND_POSSIBLE
default y
select PM_SLEEP
config HIBERNATE_CALLBACKS
bool
select PM_SLEEP
config PM_SLEEP
bool
select PM_SLEEP_SMP if SMP && (ARCH_SUSPEND_POSSIBLE || ARCH_HIBERNATION_POSSIBLE)
config PM_SLEEP_SMP
bool
select HOTPLUG
select HOTPLUG_CPU
This means we could have KEXEC select PM_SLEEP_SMP (and maybe PM_SLEEP) as
required, rather than bringing in the entire suspend support just to have
working kexec.
However, how many platforms don't have suspend support enabled?
More information about the kexec
mailing list