Skip to content
Snippets Groups Projects
Commit d8878ba3 authored by Michael Kerrisk's avatar Michael Kerrisk Committed by Linus Torvalds
Browse files

signals: make siginfo_t si_utime + si_sstime report times in USER_HZ, not HZ


In the switch to configurable HZ in 2.6, the treatment of the si_utime and
si_stime fields that are exposed to userland via the siginfo structure
looks to have been botched.  As things stand, these fields report times in
units of HZ, so that userland gets information that varies depending on
the HZ that the kernel was configured with.  This patch changes the
reported values to use USER_HZ units.

Signed-off-by: default avatarMichael Kerrisk <mtk.manpages@gmail.com>
Acked-by: default avatarOleg Nesterov <oleg@tv-sign.ru>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Roland McGrath <roland@redhat.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent e4901f92
No related branches found
No related tags found
No related merge requests found
...@@ -1370,10 +1370,9 @@ void do_notify_parent(struct task_struct *tsk, int sig) ...@@ -1370,10 +1370,9 @@ void do_notify_parent(struct task_struct *tsk, int sig)
info.si_uid = tsk->uid; info.si_uid = tsk->uid;
/* FIXME: find out whether or not this is supposed to be c*time. */ info.si_utime = cputime_to_clock_t(cputime_add(tsk->utime,
info.si_utime = cputime_to_jiffies(cputime_add(tsk->utime,
tsk->signal->utime)); tsk->signal->utime));
info.si_stime = cputime_to_jiffies(cputime_add(tsk->stime, info.si_stime = cputime_to_clock_t(cputime_add(tsk->stime,
tsk->signal->stime)); tsk->signal->stime));
info.si_status = tsk->exit_code & 0x7f; info.si_status = tsk->exit_code & 0x7f;
...@@ -1441,9 +1440,8 @@ static void do_notify_parent_cldstop(struct task_struct *tsk, int why) ...@@ -1441,9 +1440,8 @@ static void do_notify_parent_cldstop(struct task_struct *tsk, int why)
info.si_uid = tsk->uid; info.si_uid = tsk->uid;
/* FIXME: find out whether or not this is supposed to be c*time. */ info.si_utime = cputime_to_clock_t(tsk->utime);
info.si_utime = cputime_to_jiffies(tsk->utime); info.si_stime = cputime_to_clock_t(tsk->stime);
info.si_stime = cputime_to_jiffies(tsk->stime);
info.si_code = why; info.si_code = why;
switch (why) { switch (why) {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment