Re: [PATCH] proc: let task status file print utime and stime.

From: Amerigo Wang
Date: Sun Aug 16 2009 - 22:36:39 EST


On Sat, Aug 15, 2009 at 11:36:41PM +0900, KOSAKI Motohiro wrote:
>From: Tatsuhiro Aoshima <tatsu.pc@xxxxxxxxx>
>Subject: [PATCH] proc: let task status file print utime and stime.
>
>The task status file in proc file system did not contain
>user-time and system-time. Thus, users could not get
>those information of running task easily. I think
>these values should be provived in human readable format.
>By this patch, users can get stime and utime very easily.


Why? /proc/<pid>/stat already has these.


>
>Signed-off-by: Tatsuhiro Aoshima <tatsu.pc@xxxxxxxxx>
>Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@xxxxxxxxxxxxxx>
>Signed-off-by: KOSAKI Motohiro <kosaki.motohiro@xxxxxxxxxxxxxx>
>---
> fs/proc/array.c | 11 +++++++++--
> 1 files changed, 9 insertions(+), 2 deletions(-)
>
>diff --git a/fs/proc/array.c b/fs/proc/array.c
>index 725a650..29afa68 100644
>--- a/fs/proc/array.c
>+++ b/fs/proc/array.c
>@@ -162,6 +162,7 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns,
> struct fdtable *fdt = NULL;
> const struct cred *cred;
> pid_t ppid, tpid;
>+ struct timeval utime, stime;
>
> rcu_read_lock();
> ppid = pid_alive(p) ?
>@@ -173,6 +174,8 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns,
> tpid = task_pid_nr_ns(tracer, ns);
> }
> cred = get_cred((struct cred *) __task_cred(p));
>+ cputime_to_timeval(task_utime(p), &utime);
>+ cputime_to_timeval(task_stime(p), &stime);
> seq_printf(m,
> "State:\t%s\n"
> "Tgid:\t%d\n"
>@@ -180,13 +183,17 @@ static inline void task_state(struct seq_file *m, struct pid_namespace *ns,
> "PPid:\t%d\n"
> "TracerPid:\t%d\n"
> "Uid:\t%d\t%d\t%d\t%d\n"
>- "Gid:\t%d\t%d\t%d\t%d\n",
>+ "Gid:\t%d\t%d\t%d\t%d\n"
>+ "Utime:\t%lu.%06lu\n"
>+ "Stime:\t%lu.%06lu\n",
> get_task_state(p),
> task_tgid_nr_ns(p, ns),
> pid_nr_ns(pid, ns),
> ppid, tpid,
> cred->uid, cred->euid, cred->suid, cred->fsuid,
>- cred->gid, cred->egid, cred->sgid, cred->fsgid);
>+ cred->gid, cred->egid, cred->sgid, cred->fsgid,
>+ (unsigned long) utime.tv_sec, (unsigned long) utime.tv_usec,
>+ (unsigned long) stime.tv_sec, (unsigned long) stime.tv_usec);
>
> task_lock(p);
> if (p->files)
>--
>1.4.4.4
>
>
>
>--
>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/
--
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/