On 03/27/2013 06:30 PM, Vincent Guittot wrote:
Arguing the performance/power balance does no much sense without
detailed scenario. We just want to seek a flexible compromise way. But fixed buddy cpu is not flexible. and it may lose many possible powersaving fit scenarios on x86 system. Like if 2 SMT cpu can handle all tasks, we don't need to wake another core. or if 2 cores in one socket can handle tasks, we also don't need to wakeup another socket.
Using 2 SMT for all tasks implies to accept latency and to share resources like cache and memory bandwidth so it means that you also accept some potential performance decrease which implies that someone must select this mode with a knob. The primary goal of the patchset is not to select between powersaving and performance but to stay in performance mode. We pack the small tasks in one CPU so the performance will not decrease but the low load scenario will consume less power. Then, I can add another step which will be more power saving aggressive with a potential cost of performance and i this case the buddy CPU will be updated dynamically according to the system load
Predication of small task behavior is often wrong. so for performance purpose, packing task is a bad idea.