On Thu, 2011-08-11 at 12:54 -0700, Mike Turquette wrote:
On some platforms it is possible to have some CPUs which support CPU hotplug and some which do not. Currently the prescence of an 'online' sysfs entry in userspace is adequate for applications to know that a CPU supports hotplug, but there is no convenient way to make the same determination in the kernel.
To better model this relationship this patch introduces a new cpumask to track CPUs that support CPU hotplug operations.
This new cpumask is populated at boot-time and remains static for the life of the machine. Bits set in the mask indicate a CPU which supports hotplug, but make no guarantees about whether that CPU is currently online or not. Likewise a cleared bit in the mask indicates either a CPU which cannot hotplug or a lack of a populated CPU.
The purpose of this new cpumask is to aid kernel code which uses CPU to take CPUs online and offline. Possible uses are as a thermal event mitigation technique or as a power capping mechanism.
Nacked-by: Peter Zijlstra a.p.zijlstra@chello.nl
the kernel really shouldn't be using hotplug for this (nor should userspace really). hot-unplugging random cpus wrecks things like cpusets. Furthermore hotplug does way too much work to use as a simple means to idle a cpu.
Even the availability of this mask is wrong, since that implies the information is useful, which per the above it is not, the kernel shouldn't care about this full-stop.
The only reason for the OS to unplug a CPU is imminent and unavoidable hardware failure. Thermal capping is not that (and yes ACPI-4.0 is a broken piece of shit).