hrtimer: create a "timer_slack" field in the task struct
authorArjan van de Ven <arjan@linux.intel.com>
Mon, 1 Sep 2008 22:52:40 +0000 (15:52 -0700)
committerArjan van de Ven <arjan@linux.intel.com>
Sat, 6 Sep 2008 04:35:30 +0000 (21:35 -0700)
commit6976675d94042fbd446231d1bd8b7de71a980ada
tree2d2acebb8078dd373115ecbdac5423f7d4fa7d72
parent654c8e0b1c623b156c5b92f28d914ab38c9c2c90
hrtimer: create a "timer_slack" field in the task struct

We want to be able to control the default "rounding" that is used by
select() and poll() and friends. This is a per process property
(so that we can have a "nice" like program to start certain programs with
a looser or stricter rounding) that can be set/get via a prctl().

For this purpose, a field called "timer_slack_ns" is added to the task
struct. In addition, a field called "default_timer_slack"ns" is added
so that tasks easily can temporarily to a more/less accurate slack and then
back to the default.

The default value of the slack is set to 50 usec; this is significantly less
than 2.6.27's average select() and poll() timing error but still allows
the kernel to group timers somewhat to preserve power behavior. Applications
and admins can override this via the prctl()

Signed-off-by: Arjan van de Ven <arjan@linux.intel.com>
include/linux/init_task.h
include/linux/prctl.h
include/linux/sched.h
kernel/fork.c
kernel/sys.c