Messages in this thread | | | Date | Mon, 23 Nov 2015 09:59:02 -0800 | From | Jacob Pan <> | Subject | Re: [PATCH 3/4] sched: introduce synchronized idle injection |
| |
On Thu, 19 Nov 2015 17:24:07 +0000 Morten Rasmussen <morten.rasmussen@arm.com> wrote:
> I could see this technique being useful within the SoC as well. > Synchronized idle injection on all cpus in a cluster would allow us to > reach cluster idle states where resources shared within the cluster > can be gated or powered off as well. But yes, shutting down > everything is more efficient if you are en serious trouble. > > I was hoping this could be a good alternative to hotplugging cpus out > for thermal management in non-critical situations, but it isn't that > appealing if you have to throttle all the cpus. I would consider it an > emergency-only mechanism (as in emergency brake) that isn't really > suitable for normal thermal management. In which case: Does this sort > of mechanism belong in the scheduler code? I would think this is not an emergency-only mechanism. I know shutting down all CPUs at the same time sounds bad but here are advantage of having this in the scheduler in that we can still have certain QoS. e.g. we yeild softirq, RT. etc. There are other workload info readily available in the scheduler to better use this knob. e.g. sync with other input timers such as media.
For normal thermal conditions, Skylake for example, the max efficient frequency is ~900MHz. If thermal restriction happens (e.g. you want to do fanless), would you like to lose energy efficiency by further lowering frequency to 500Mhz? or do idle injection and take 5ms latency for normal tasks? Idle injection gives you near linear performance-power scaling.
Thanks,
Jacob
| |