cputime_t is being obsolete and replaced by nsecs units in order to make
internal timestamps less opaque and more granular.

Cc: Benjamin Herrenschmidt <b...@kernel.crashing.org>
Cc: Paul Mackerras <pau...@samba.org>
Cc: Michael Ellerman <m...@ellerman.id.au>
Cc: Heiko Carstens <heiko.carst...@de.ibm.com>
Cc: Martin Schwidefsky <schwidef...@de.ibm.com>
Cc: Tony Luck <tony.l...@intel.com>
Cc: Fenghua Yu <fenghua...@intel.com>
Cc: Peter Zijlstra <pet...@infradead.org>
Cc: Rik van Riel <r...@redhat.com>
Cc: Thomas Gleixner <t...@linutronix.de>
Cc: Ingo Molnar <mi...@kernel.org>
Cc: Stanislaw Gruszka <sgrus...@redhat.com>
Cc: Wanpeng Li <wanpeng...@hotmail.com>
Signed-off-by: Frederic Weisbecker <fweis...@gmail.com>
---
 fs/proc/array.c        |  6 +++---
 include/linux/sched.h  | 10 +++++-----
 kernel/sched/cputime.c |  8 ++++----
 3 files changed, 12 insertions(+), 12 deletions(-)

diff --git a/fs/proc/array.c b/fs/proc/array.c
index 81818ad..2a7b0ed 100644
--- a/fs/proc/array.c
+++ b/fs/proc/array.c
@@ -401,7 +401,7 @@ static int do_task_stat(struct seq_file *m, struct 
pid_namespace *ns,
        unsigned long cmin_flt = 0, cmaj_flt = 0;
        unsigned long  min_flt = 0,  maj_flt = 0;
        cputime_t cutime, cstime, utime, stime;
-       cputime_t cgtime, gtime;
+       u64 cgtime, gtime;
        unsigned long rsslim = 0;
        char tcomm[sizeof(task->comm)];
        unsigned long flags;
@@ -541,8 +541,8 @@ static int do_task_stat(struct seq_file *m, struct 
pid_namespace *ns,
        seq_put_decimal_ull(m, " ", task->rt_priority);
        seq_put_decimal_ull(m, " ", task->policy);
        seq_put_decimal_ull(m, " ", delayacct_blkio_ticks(task));
-       seq_put_decimal_ull(m, " ", cputime_to_clock_t(gtime));
-       seq_put_decimal_ll(m, " ", cputime_to_clock_t(cgtime));
+       seq_put_decimal_ull(m, " ", nsec_to_clock_t(gtime));
+       seq_put_decimal_ll(m, " ", nsec_to_clock_t(cgtime));
 
        if (mm && permitted) {
                seq_put_decimal_ull(m, " ", mm->start_data);
diff --git a/include/linux/sched.h b/include/linux/sched.h
index 7ccdf01..5854e70 100644
--- a/include/linux/sched.h
+++ b/include/linux/sched.h
@@ -772,8 +772,8 @@ struct signal_struct {
         */
        seqlock_t stats_lock;
        cputime_t utime, stime, cutime, cstime;
-       cputime_t gtime;
-       cputime_t cgtime;
+       u64 gtime;
+       u64 cgtime;
        struct prev_cputime prev_cputime;
        unsigned long nvcsw, nivcsw, cnvcsw, cnivcsw;
        unsigned long min_flt, maj_flt, cmin_flt, cmaj_flt;
@@ -1644,7 +1644,7 @@ struct task_struct {
 #ifdef CONFIG_ARCH_HAS_SCALED_CPUTIME
        cputime_t utimescaled, stimescaled;
 #endif
-       cputime_t gtime;
+       u64 gtime;
        struct prev_cputime prev_cputime;
 #ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN
        seqcount_t vtime_seqcount;
@@ -2236,7 +2236,7 @@ struct task_struct *try_get_task_struct(struct 
task_struct **ptask);
 #ifdef CONFIG_VIRT_CPU_ACCOUNTING_GEN
 extern void task_cputime(struct task_struct *t,
                         cputime_t *utime, cputime_t *stime);
-extern cputime_t task_gtime(struct task_struct *t);
+extern u64 task_gtime(struct task_struct *t);
 #else
 static inline void task_cputime(struct task_struct *t,
                                cputime_t *utime, cputime_t *stime)
@@ -2245,7 +2245,7 @@ static inline void task_cputime(struct task_struct *t,
        *stime = t->stime;
 }
 
-static inline cputime_t task_gtime(struct task_struct *t)
+static inline u64 task_gtime(struct task_struct *t)
 {
        return t->gtime;
 }
diff --git a/kernel/sched/cputime.c b/kernel/sched/cputime.c
index 470c137..647c0fc 100644
--- a/kernel/sched/cputime.c
+++ b/kernel/sched/cputime.c
@@ -158,7 +158,7 @@ static void account_guest_time(struct task_struct *p, 
cputime_t cputime)
        /* Add guest time to process. */
        p->utime += cputime;
        account_group_user_time(p, cputime);
-       p->gtime += cputime;
+       p->gtime += cputime_to_nsecs(cputime);
 
        /* Add guest time to cpustat. */
        if (task_nice(p) > 0) {
@@ -826,10 +826,10 @@ void vtime_init_idle(struct task_struct *t, int cpu)
        local_irq_restore(flags);
 }
 
-cputime_t task_gtime(struct task_struct *t)
+u64 task_gtime(struct task_struct *t)
 {
        unsigned int seq;
-       cputime_t gtime;
+       u64 gtime;
 
        if (!vtime_accounting_enabled())
                return t->gtime;
@@ -839,7 +839,7 @@ cputime_t task_gtime(struct task_struct *t)
 
                gtime = t->gtime;
                if (t->vtime_snap_whence == VTIME_SYS && t->flags & PF_VCPU)
-                       gtime += vtime_delta(t);
+                       gtime += cputime_to_nsecs(vtime_delta(t));
 
        } while (read_seqcount_retry(&t->vtime_seqcount, seq));
 
-- 
2.7.4

Reply via email to