MIPS: smp-cps: hotplug support
authorPaul Burton <paul.burton@imgtec.com>
Mon, 14 Apr 2014 13:13:57 +0000 (14:13 +0100)
committerPaul Burton <paul.burton@imgtec.com>
Wed, 28 May 2014 15:20:31 +0000 (16:20 +0100)
commit1d8f1f5a780abe51257f7d2e33142f33d983a9ed
tree6f4be0e00ccd7e7c22c94222ea7da3521500560d
parent3179d37ee1ed602770a8b8ed975bd30faa85b4a3
MIPS: smp-cps: hotplug support

This patch adds support for offlining CPUs via hotplug when using the
CONFIG_MIPS_CPS SMP implementation. When a CPU is offlined one of 2
things will happen:

  - If the CPU is part of a core which implements the MT ASE and there
    is at least one other VPE online within that core then the VPE will
    be halted by settings its TCHalt bit.

  - Otherwise if supported the core will be powered down via the CPC.

  - Otherwise the CPU will hang by executing an infinite loop.

Bringing CPUs back online is then a process of either clearing the
appropriate VPEs TCHalt bit or powering up the appropriate core via the
CPC. Throughout the process the struct core_boot_config vpe_mask field
must be maintained such that mips_cps_boot_vpes will start & stop the
correct VPEs.

Signed-off-by: Paul Burton <paul.burton@imgtec.com>
arch/mips/Kconfig
arch/mips/kernel/smp-cps.c