diff options
author | Andrew Morton <akpm@linux-foundation.org> | 2017-03-19 21:01:47 +1100 |
---|---|---|
committer | Stephen Rothwell <sfr@canb.auug.org.au> | 2017-03-19 21:01:47 +1100 |
commit | d76a8eb39493af206aec0049e8dd1c5b5c6ed539 (patch) | |
tree | 8b3b48fdb2f92720c124026182169e7b54438ae0 /kernel | |
parent | 4300beae6bb046da820e2366f9de131f7bac670f (diff) |
taskstats-add-e-u-stime-for-tgid-command-fix
run ktime_get_ns() a single time
Cc: Balbir Singh <bsingharora@gmail.com>
Cc: Oleg Nesterov <oleg@redhat.com>
Cc: Zhang Xiao <xiao.zhang@windriver.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/taskstats.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/kernel/taskstats.c b/kernel/taskstats.c index 802a2bb7ccb9..1247db3ff002 100644 --- a/kernel/taskstats.c +++ b/kernel/taskstats.c @@ -211,6 +211,7 @@ static int fill_stats_for_tgid(pid_t tgid, struct taskstats *stats) unsigned long flags; int rc = -ESRCH; u64 delta, utime, stime; + u64 start_time; /* * Add additional stats from live tasks except zombie thread group @@ -228,6 +229,7 @@ static int fill_stats_for_tgid(pid_t tgid, struct taskstats *stats) memset(stats, 0, sizeof(*stats)); tsk = first; + start_time = ktime_get_ns(); do { if (tsk->exit_state) continue; @@ -240,7 +242,7 @@ static int fill_stats_for_tgid(pid_t tgid, struct taskstats *stats) delayacct_add_tsk(stats, tsk); /* calculate task elapsed time in nsec */ - delta = ktime_get_ns() - tsk->start_time; + delta = start_time - tsk->start_time; /* Convert to micro seconds */ do_div(delta, NSEC_PER_USEC); stats->ac_etime += delta; |