On 07/14/2013 12:14 AM, Arjan van de Ven wrote:
on thinking more about the short running task thing; there is an optimization we currently don't do, mostly for hyperthreading. (and HT is just one out of a set of cases with similar power behavior) If we know a task runs briefly AND is not performance critical, it's much much better to place it on a hyperthreading buddy of an already busy core than it is to place it on an empty core (or to delay it). Yes a HT pair isn't the same performance as a full core, but in terms of power the 2nd half of a HT pair is nearly free... so if there's a task that's not performance sensitive (and won't disturb the other task too much, e.g. runs briefly enough)... it's better to pack onto a core than to spread. you can generalize this to a class of systems where adding work to a core (read: group of cpus that share resources) is significantly cheaper than running on a full empty core.
Right! That is one of purpose that my old power sheduling's wanna do: https://lkml.org/lkml/2013/4/3/747 Vincent's patchset also target at this.