Re: [PATCH] Add all thread stats for TASKSTATS_CMD_ATTR_TGID

From: Jonathan Lim
Date: Thu Aug 30 2007 - 23:02:23 EST


On Sat Aug 25 21:58:44 2007, balbir@xxxxxxxxxxxxxxxxxx wrote:
>
> > Also, I don't understand why the code to update btime:
> >
> > /* calculate task elapsed time in timespec */
> > do_posix_clock_monotonic_gettime(&uptime);
> > ts = timespec_sub(uptime, tsk->start_time);
> > ...
> > stats->ac_btime = get_seconds() - ts.tv_sec;
> >
> > does not simply use tsk->start_time or tsk->real_start_time without
> > comparing it to the current time.
>
> From what I understand, task->start_time and task->real_start_time
> are taken from the realtime clock. The accounting in CSA seems
> to be very similar to the accounting done in do_acct_process()
> (kernel/acct.c).

In CSA 3.0 ...

csa_acct_eop(int exitcode, struct task_struct *p)

csa->ac_btime = boottime +
((p->start_time.tv_nsec < NSEC_PER_SEC/2) ?
p->start_time.tv_sec :
p->start_time.tv_sec +1);

where

do_posix_clock_monotonic_gettime(&uptime);
boottime = xtime.tv_sec - uptime.tv_sec;

In an upcoming version of CSA ...

csa_acct_eop(struct taskstats *p)

csa->ac_btime = p->ac_btime;

where

do_posix_clock_monotonic_gettime(&uptime);
ts = uptime - tsk->start_time;
p->ac_btime = get_seconds() - ts.tv_sec;
= xtime.tv_sec - (uptime - tsk->start_time);
= (xtime.tv_sec - uptime) + tsk->start_time;

So they're basically equivalent.

Jonathan
-
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/