summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorFrederic Weisbecker <fweisbec@gmail.com>2017-01-31 04:09:40 +0100
committerIngo Molnar <mingo@kernel.org>2017-02-01 09:13:58 +0100
commitfb8b049c988f1ff460b063b8a41ea9a3c79921c2 (patch)
treea2aad5cdf6dca86c9ce41b39a5f78e15fe537b8b /arch
parent18b43a9bd7ae91185e398dd983fb4fffb9e81b3a (diff)
sched/cputime: Push time to account_system_time() in nsecs
This is one more step toward converting cputime accounting to pure 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-25-git-send-email-fweisbec@gmail.com Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/ia64/kernel/time.c11
-rw-r--r--arch/powerpc/kernel/time.c15
-rw-r--r--arch/s390/kernel/idle.c2
-rw-r--r--arch/s390/kernel/vtime.c6
4 files changed, 18 insertions, 16 deletions
diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c
index 5dc801d97790..f15bca4776a7 100644
--- a/arch/ia64/kernel/time.c
+++ b/arch/ia64/kernel/time.c
@@ -21,6 +21,7 @@
#include <linux/timex.h>
#include <linux/timekeeper_internal.h>
#include <linux/platform_device.h>
+#include <linux/cputime.h>
#include <asm/machvec.h>
#include <asm/delay.h>
@@ -64,29 +65,29 @@ extern cputime_t cycle_to_cputime(u64 cyc);
void vtime_flush(struct task_struct *tsk)
{
struct thread_info *ti = task_thread_info(tsk);
- cputime_t delta;
+ u64 delta;
if (ti->utime)
account_user_time(tsk, cputime_to_nsecs(cycle_to_cputime(ti->utime)));
if (ti->gtime)
- account_guest_time(tsk, cycle_to_cputime(ti->gtime));
+ account_guest_time(tsk, cputime_to_nsecs(cycle_to_cputime(ti->gtime)));
if (ti->idle_time)
account_idle_time(cputime_to_nsecs(cycle_to_cputime(ti->idle_time)));
if (ti->stime) {
- delta = cycle_to_cputime(ti->stime);
+ delta = cputime_to_nsecs(cycle_to_cputime(ti->stime));
account_system_index_time(tsk, delta, CPUTIME_SYSTEM);
}
if (ti->hardirq_time) {
- delta = cycle_to_cputime(ti->hardirq_time);
+ delta = cputime_to_nsecs(cycle_to_cputime(ti->hardirq_time));
account_system_index_time(tsk, delta, CPUTIME_IRQ);
}
if (ti->softirq_time) {
- delta = cycle_to_cputime(ti->softirq_time);
+ delta = cputime_to_nsecs(cycle_to_cputime(ti->softirq_time));
account_system_index_time(tsk, delta, CPUTIME_SOFTIRQ);
}
diff --git a/arch/powerpc/kernel/time.c b/arch/powerpc/kernel/time.c
index 739897a10fd3..01f53bfe100b 100644
--- a/arch/powerpc/kernel/time.c
+++ b/arch/powerpc/kernel/time.c
@@ -57,6 +57,7 @@
#include <linux/clk-provider.h>
#include <linux/suspend.h>
#include <linux/rtc.h>
+#include <linux/cputime.h>
#include <asm/trace.h>
#include <asm/io.h>
@@ -72,7 +73,6 @@
#include <asm/smp.h>
#include <asm/vdso_datapage.h>
#include <asm/firmware.h>
-#include <asm/cputime.h>
#include <asm/asm-prototypes.h>
/* powerpc clocksource/clockevent code */
@@ -399,7 +399,7 @@ void vtime_flush(struct task_struct *tsk)
tsk->utimescaled += cputime_to_nsecs(acct->utime_scaled);
if (acct->gtime)
- account_guest_time(tsk, acct->gtime);
+ account_guest_time(tsk, cputime_to_nsecs(acct->gtime));
if (acct->steal_time)
account_steal_time(cputime_to_nsecs(acct->steal_time));
@@ -408,16 +408,17 @@ void vtime_flush(struct task_struct *tsk)
account_idle_time(cputime_to_nsecs(acct->idle_time));
if (acct->stime)
- account_system_index_time(tsk, acct->stime, CPUTIME_SYSTEM);
-
+ account_system_index_time(tsk, cputime_to_nsecs(acct->stime),
+ CPUTIME_SYSTEM);
if (acct->stime_scaled)
tsk->stimescaled += cputime_to_nsecs(acct->stime_scaled);
if (acct->hardirq_time)
- account_system_index_time(tsk, acct->hardirq_time, CPUTIME_IRQ);
-
+ account_system_index_time(tsk, cputime_to_nsecs(acct->hardirq_time),
+ CPUTIME_IRQ);
if (acct->softirq_time)
- account_system_index_time(tsk, acct->softirq_time, CPUTIME_SOFTIRQ);
+ account_system_index_time(tsk, cputime_to_nsecs(acct->softirq_time),
+ CPUTIME_SOFTIRQ);
acct->utime = 0;
acct->utime_scaled = 0;
diff --git a/arch/s390/kernel/idle.c b/arch/s390/kernel/idle.c
index 99f1d8185ae2..5c0e08e761c3 100644
--- a/arch/s390/kernel/idle.c
+++ b/arch/s390/kernel/idle.c
@@ -12,7 +12,7 @@
#include <linux/notifier.h>
#include <linux/init.h>
#include <linux/cpu.h>
-#include <asm/cputime.h>
+#include <linux/cputime.h>
#include <asm/nmi.h>
#include <asm/smp.h>
#include "entry.h"
diff --git a/arch/s390/kernel/vtime.c b/arch/s390/kernel/vtime.c
index 1e7023c6ef23..b4a3e9e06ef2 100644
--- a/arch/s390/kernel/vtime.c
+++ b/arch/s390/kernel/vtime.c
@@ -6,13 +6,13 @@
*/
#include <linux/kernel_stat.h>
+#include <linux/cputime.h>
#include <linux/export.h>
#include <linux/kernel.h>
#include <linux/timex.h>
#include <linux/types.h>
#include <linux/time.h>
-#include <asm/cputime.h>
#include <asm/vtimer.h>
#include <asm/vtime.h>
#include <asm/cpu_mf.h>
@@ -115,7 +115,7 @@ static void account_system_index_scaled(struct task_struct *p,
enum cpu_usage_stat index)
{
p->stimescaled += cputime_to_nsecs(scaled);
- account_system_index_time(p, cputime, index);
+ account_system_index_time(p, cputime_to_nsecs(cputime), index);
}
/*
@@ -171,7 +171,7 @@ static int do_account_vtime(struct task_struct *tsk)
}
if (guest) {
- account_guest_time(tsk, guest);
+ account_guest_time(tsk, cputime_to_nsecs(guest));
tsk->utimescaled += cputime_to_nsecs(scale_vtime(guest));
}