diff options
author | Frederic Weisbecker <fweisbec@gmail.com> | 2017-01-30 22:09:30 -0500 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2017-02-01 03:13:52 -0500 |
commit | 605dc2b31a2ab235570107cb650036b41e741165 (patch) | |
tree | 6facf89d8471a488e9ddf2e3960fe1d5dc471c37 /kernel/tsacct.c | |
parent | dbf3da1c2d14a6b0b9bac76a3f9912aff48487e7 (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.c | 27 |
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 | ||
125 | static void __acct_update_integrals(struct task_struct *tsk, | 125 | static 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 | */ |
156 | void acct_update_integrals(struct task_struct *tsk) | 153 | void 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 | } |