Re: [PATCH, v10 3/3] cgroups: introduce timer slack controller
From: Andrew Morton <hidden>
Date: 2011-10-14 22:43:53
Also in:
lkml
On Tue, 11 Oct 2011 19:15:29 +0300 "Kirill A. Shutemov" [off-list ref] wrote:
Every task_struct has timer_slack_ns value. This value uses to round up poll() and select() timeout values. This feature can be useful in mobile environment where combined wakeups are desired. Originally, prctl() was the only way to change timer slack value of a process. So you was not able change timer slack value of another process. cgroup subsys "timer_slack" implements timer slack controller. It provides a way to set minimal timer slack value for a group of tasks. If a task belongs to a cgroup with minimal timer slack value higher than task's value, cgroup's value will be applied. Timer slack controller allows to implement setting timer slack value of a process based on a policy. For example, you can create foreground and background cgroups and move tasks between them based on system state.
I'm having trouble understanding the value of this feature. Users can presently control the timer-slack of a group of processes via inherit-over-fork. Perhaps there's a case for providing a way for process A to set process B's slack. And perhaps B's children. That would be a simpler patch and would have the considerable advantage that it doesn't require cgroups. So.... why should we merge this?