Re: [patch] make siginfo_t si_utime + si_sstime report times in USER_HZ, not HZ

From: Michael Kerrisk
Date: Thu Jun 26 2008 - 11:10:04 EST


On Wed, Jun 25, 2008 at 5:38 PM, Oleg Nesterov <oleg@xxxxxxxxxx> wrote:
> On 06/25, Michael Kerrisk wrote:
>>
>> --- /home/mtk/ARCHIVE/KERNEL/linux-2.6.26-rc7/kernel/signal.c.orig 2008-06-24
>> 16:20:39.000000000 +0200
>> +++ /home/mtk/ARCHIVE/KERNEL/linux-2.6.26-rc7/kernel/signal.c 2008-06-24
>> 16:22:17.000000000 +0200
>> @@ -1379,10 +1379,9 @@
>>
>> info.si_uid = tsk->uid;
>>
>> - /* FIXME: find out whether or not this is supposed to be c*time. */
>> - info.si_utime = cputime_to_jiffies(cputime_add(tsk->utime,
>> + info.si_utime = cputime_to_clock_t(cputime_add(tsk->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));
>>
>> info.si_status = tsk->exit_code & 0x7f;
>> @@ -1450,9 +1449,8 @@
>>
>> info.si_uid = tsk->uid;
>>
>> - /* FIXME: find out whether or not this is supposed to be c*time. */
>> - info.si_utime = cputime_to_jiffies(tsk->utime);
>> - info.si_stime = cputime_to_jiffies(tsk->stime);
>> + info.si_utime = cputime_to_clock_t(tsk->utime);
>> + info.si_stime = cputime_to_clock_t(tsk->stime);
>>
>> info.si_code = why;
>> switch (why) {
>
> This looks like the obviously good fix to me.

Tested now, and it does what I expect.

> The patch also deletes the comment about signal_struct->cXtime,
> this also looks right: why should we use cutime/cstime ?

Hmmm -- maybe I was wrong to delete that comment. I think the point
of the comment was: should the time returned vie these fields of the
signinfo structure also include the times for (grand)children of the
process that had terminated and been wait()ed for. My first take on
that was "no". But now I'm not 100% sure. A quick test on Solaris 8
suggests that these fields *do* include the times of waited for
children. (None of this is specified in POSIX.1, which doesn't
specify si_utime and si_stime.) I've not yet tested FreeBSD (not sure
if it supports these fields or not).

--
Michael Kerrisk
Linux man-pages maintainer; http://www.kernel.org/doc/man-pages/
man-pages online: http://www.kernel.org/doc/man-pages/online_pages.html
Found a bug? http://www.kernel.org/doc/man-pages/reporting_bugs.html
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/