Re: [git pull request] ACPI Processor Aggregator Driver for 2.6.32-rc1

Balbir Singh
2009-10-05T03:33:41Z

* Len Brown <lenb@kernel.org> [2009-10-03 01:56:32]:

> This driver does not use the kernel's CPU hot-plug mechanism
> because after the transient emergency is over, the system must
> be returned to its normal state, and hotplug would permanently
> break both cpusets and binding.
>

Why does hotplug break cpusets and binding?

> So to force idle, the driver creates a power saving thread.
> The scheduler will migrate the thread to the preferred CPU.
> The thread has max priority and has SCHED_RR policy,
> so it can occupy one CPU. To save power, the thread will
> invoke the deep C-state entry instructions.
>
> To avoid starvation, the thread will sleep 5% of the time
> time for every second (current RT scheduler has threshold
> to avoid starvation, but if other CPUs are idle,
> the CPU can borrow CPU timer from other,
> which makes the mechanism not work here)
>
> Vaidyanathan Srinivasan has proposed scheduler enhancements
> to allow injecting idle time into the system. This driver doesn't
> depend on those enhancements, but could cut over to them
> when they are available.
>
> Peter Z. does not favor upstreaming this driver until
> the those scheduler enhancements are in place. However,
> we favor upstreaming this driver now because it is useful
> now, and can be enhanced over time.
>
> Signed-off-by: Shaohua Li <shaohua.li@intel.com>
> NACKed-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
> Cc: Vaidyanathan Srinivasan <svaidy@linux.vnet.ibm.com>
> Signed-off-by: Len Brown <len.brown@intel.com>

This is a first a patch with a NACKed-by, could we please have more
discussion on the proposed design.

--
Balbir