提交 605dc2b3 编写于 作者: F Frederic Weisbecker 提交者: Ingo Molnar

tsacct: Convert obsolete cputime type to nsecs

Use the new nsec based cputime accessors as part of the whole cputime
conversion from cputime_t to nsecs.
Signed-off-by: NFrederic Weisbecker <fweisbec@gmail.com>
Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Cc: Fenghua Yu <fenghua.yu@intel.com>
Cc: Heiko Carstens <heiko.carstens@de.ibm.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Martin Schwidefsky <schwidefsky@de.ibm.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Rik van Riel <riel@redhat.com>
Cc: Stanislaw Gruszka <sgruszka@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Tony Luck <tony.luck@intel.com>
Cc: Wanpeng Li <wanpeng.li@hotmail.com>
Link: http://lkml.kernel.org/r/1485832191-26889-15-git-send-email-fweisbec@gmail.comSigned-off-by: NIngo Molnar <mingo@kernel.org>
上级 dbf3da1c
...@@ -1815,7 +1815,7 @@ struct task_struct { ...@@ -1815,7 +1815,7 @@ struct task_struct {
#if defined(CONFIG_TASK_XACCT) #if defined(CONFIG_TASK_XACCT)
u64 acct_rss_mem1; /* accumulated rss usage */ u64 acct_rss_mem1; /* accumulated rss usage */
u64 acct_vm_mem1; /* accumulated virtual memory usage */ u64 acct_vm_mem1; /* accumulated virtual memory usage */
cputime_t acct_timexpd; /* stime + utime since last update */ u64 acct_timexpd; /* stime + utime since last update */
#endif #endif
#ifdef CONFIG_CPUSETS #ifdef CONFIG_CPUSETS
nodemask_t mems_allowed; /* Protected by alloc_lock */ nodemask_t mems_allowed; /* Protected by alloc_lock */
......
...@@ -31,7 +31,7 @@ void bacct_add_tsk(struct user_namespace *user_ns, ...@@ -31,7 +31,7 @@ void bacct_add_tsk(struct user_namespace *user_ns,
struct taskstats *stats, struct task_struct *tsk) struct taskstats *stats, struct task_struct *tsk)
{ {
const struct cred *tcred; const struct cred *tcred;
cputime_t utime, stime, utimescaled, stimescaled; u64 utime, stime, utimescaled, stimescaled;
u64 delta; u64 delta;
BUILD_BUG_ON(TS_COMM_LEN < TASK_COMM_LEN); BUILD_BUG_ON(TS_COMM_LEN < TASK_COMM_LEN);
...@@ -66,13 +66,13 @@ void bacct_add_tsk(struct user_namespace *user_ns, ...@@ -66,13 +66,13 @@ void bacct_add_tsk(struct user_namespace *user_ns,
task_tgid_nr_ns(rcu_dereference(tsk->real_parent), pid_ns) : 0; task_tgid_nr_ns(rcu_dereference(tsk->real_parent), pid_ns) : 0;
rcu_read_unlock(); rcu_read_unlock();
task_cputime_t(tsk, &utime, &stime); task_cputime(tsk, &utime, &stime);
stats->ac_utime = cputime_to_usecs(utime); stats->ac_utime = div_u64(utime, NSEC_PER_USEC);
stats->ac_stime = cputime_to_usecs(stime); stats->ac_stime = div_u64(stime, NSEC_PER_USEC);
task_cputime_t_scaled(tsk, &utimescaled, &stimescaled); task_cputime_scaled(tsk, &utimescaled, &stimescaled);
stats->ac_utimescaled = cputime_to_usecs(utimescaled); stats->ac_utimescaled = div_u64(utimescaled, NSEC_PER_USEC);
stats->ac_stimescaled = cputime_to_usecs(stimescaled); stats->ac_stimescaled = div_u64(stimescaled, NSEC_PER_USEC);
stats->ac_minflt = tsk->min_flt; stats->ac_minflt = tsk->min_flt;
stats->ac_majflt = tsk->maj_flt; stats->ac_majflt = tsk->maj_flt;
...@@ -123,18 +123,15 @@ void xacct_add_tsk(struct taskstats *stats, struct task_struct *p) ...@@ -123,18 +123,15 @@ void xacct_add_tsk(struct taskstats *stats, struct task_struct *p)
#undef MB #undef MB
static void __acct_update_integrals(struct task_struct *tsk, static void __acct_update_integrals(struct task_struct *tsk,
cputime_t utime, cputime_t stime) u64 utime, u64 stime)
{ {
cputime_t time, dtime; u64 time, delta;
u64 delta;
if (!likely(tsk->mm)) if (!likely(tsk->mm))
return; return;
time = stime + utime; time = stime + utime;
dtime = time - tsk->acct_timexpd; delta = time - tsk->acct_timexpd;
/* Avoid division: cputime_t is often in nanoseconds already. */
delta = cputime_to_nsecs(dtime);
if (delta < TICK_NSEC) if (delta < TICK_NSEC)
return; return;
...@@ -155,11 +152,11 @@ static void __acct_update_integrals(struct task_struct *tsk, ...@@ -155,11 +152,11 @@ static void __acct_update_integrals(struct task_struct *tsk,
*/ */
void acct_update_integrals(struct task_struct *tsk) void acct_update_integrals(struct task_struct *tsk)
{ {
cputime_t utime, stime; u64 utime, stime;
unsigned long flags; unsigned long flags;
local_irq_save(flags); local_irq_save(flags);
task_cputime_t(tsk, &utime, &stime); task_cputime(tsk, &utime, &stime);
__acct_update_integrals(tsk, utime, stime); __acct_update_integrals(tsk, utime, stime);
local_irq_restore(flags); local_irq_restore(flags);
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册