aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/tsacct.c
diff options
context:
space:
mode:
authorFrederic Weisbecker <fweisbec@gmail.com>2017-01-30 22:09:30 -0500
committerIngo Molnar <mingo@kernel.org>2017-02-01 03:13:52 -0500
commit605dc2b31a2ab235570107cb650036b41e741165 (patch)
tree6facf89d8471a488e9ddf2e3960fe1d5dc471c37 /kernel/tsacct.c
parentdbf3da1c2d14a6b0b9bac76a3f9912aff48487e7 (diff)
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: Frederic 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.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/tsacct.c')
-rw-r--r--kernel/tsacct.c27
1 files changed, 12 insertions, 15 deletions
diff --git a/kernel/tsacct.c b/kernel/tsacct.c
index 040d0a64d0d1..5c21f0535056 100644
--- a/kernel/tsacct.c
+++ b/kernel/tsacct.c
@@ -31,7 +31,7 @@ void bacct_add_tsk(struct user_namespace *user_ns,
31 struct taskstats *stats, struct task_struct *tsk) 31 struct taskstats *stats, struct task_struct *tsk)
32{ 32{
33 const struct cred *tcred; 33 const struct cred *tcred;
34 cputime_t utime, stime, utimescaled, stimescaled; 34 u64 utime, stime, utimescaled, stimescaled;
35 u64 delta; 35 u64 delta;
36 36
37 BUILD_BUG_ON(TS_COMM_LEN < TASK_COMM_LEN); 37 BUILD_BUG_ON(TS_COMM_LEN < TASK_COMM_LEN);
@@ -66,13 +66,13 @@ void bacct_add_tsk(struct user_namespace *user_ns,
66 task_tgid_nr_ns(rcu_dereference(tsk->real_parent), pid_ns) : 0; 66 task_tgid_nr_ns(rcu_dereference(tsk->real_parent), pid_ns) : 0;
67 rcu_read_unlock(); 67 rcu_read_unlock();
68 68
69 task_cputime_t(tsk, &utime, &stime); 69 task_cputime(tsk, &utime, &stime);
70 stats->ac_utime = cputime_to_usecs(utime); 70 stats->ac_utime = div_u64(utime, NSEC_PER_USEC);
71 stats->ac_stime = cputime_to_usecs(stime); 71 stats->ac_stime = div_u64(stime, NSEC_PER_USEC);
72 72
73 task_cputime_t_scaled(tsk, &utimescaled, &stimescaled); 73 task_cputime_scaled(tsk, &utimescaled, &stimescaled);
74 stats->ac_utimescaled = cputime_to_usecs(utimescaled); 74 stats->ac_utimescaled = div_u64(utimescaled, NSEC_PER_USEC);
75 stats->ac_stimescaled = cputime_to_usecs(stimescaled); 75 stats->ac_stimescaled = div_u64(stimescaled, NSEC_PER_USEC);
76 76
77 stats->ac_minflt = tsk->min_flt; 77 stats->ac_minflt = tsk->min_flt;
78 stats->ac_majflt = tsk->maj_flt; 78 stats->ac_majflt = tsk->maj_flt;
@@ -123,18 +123,15 @@ void xacct_add_tsk(struct taskstats *stats, struct task_struct *p)
123#undef MB 123#undef MB
124 124
125static void __acct_update_integrals(struct task_struct *tsk, 125static void __acct_update_integrals(struct task_struct *tsk,
126 cputime_t utime, cputime_t stime) 126 u64 utime, u64 stime)
127{ 127{
128 cputime_t time, dtime; 128 u64 time, delta;
129 u64 delta;
130 129
131 if (!likely(tsk->mm)) 130 if (!likely(tsk->mm))
132 return; 131 return;
133 132
134 time = stime + utime; 133 time = stime + utime;
135 dtime = time - tsk->acct_timexpd; 134 delta = time - tsk->acct_timexpd;
136 /* Avoid division: cputime_t is often in nanoseconds already. */
137 delta = cputime_to_nsecs(dtime);
138 135
139 if (delta < TICK_NSEC) 136 if (delta < TICK_NSEC)
140 return; 137 return;
@@ -155,11 +152,11 @@ static void __acct_update_integrals(struct task_struct *tsk,
155 */ 152 */
156void acct_update_integrals(struct task_struct *tsk) 153void acct_update_integrals(struct task_struct *tsk)
157{ 154{
158 cputime_t utime, stime; 155 u64 utime, stime;
159 unsigned long flags; 156 unsigned long flags;
160 157
161 local_irq_save(flags); 158 local_irq_save(flags);
162 task_cputime_t(tsk, &utime, &stime); 159 task_cputime(tsk, &utime, &stime);
163 __acct_update_integrals(tsk, utime, stime); 160 __acct_update_integrals(tsk, utime, stime);
164 local_irq_restore(flags); 161 local_irq_restore(flags);
165} 162}