浏览代码

cputime: Default implementation of nsecs -> cputime conversion

The architectures that override cputime_t (s390, ppc) don't provide
any version of nsecs_to_cputime(). Indeed this cputime_t implementation
by backend only happens when CONFIG_VIRT_CPU_ACCOUNTING_NATIVE=y under
which the core code doesn't make any use of nsecs_to_cputime().

At least for now.

We are going to make a broader use of it so lets provide a default
version with a per usecs granularity. It should be good enough for most
usecases.

Cc: Ingo Molnar <mingo@kernel.org>
Cc: Marcelo Tosatti <mtosatti@redhat.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Rik van Riel <riel@redhat.com>
Signed-off-by: Frederic Weisbecker <fweisbec@gmail.com>
Frederic Weisbecker 11 年之前
父节点
当前提交
bfc3f0281e
共有 7 个文件被更改,包括 17 次插入6 次删除
  1. 1 1
      drivers/cpufreq/cpufreq_stats.c
  2. 1 1
      drivers/s390/cio/cio.c
  3. 1 1
      fs/proc/stat.c
  4. 1 1
      fs/proc/uptime.c
  5. 11 0
      include/linux/cputime.h
  6. 1 1
      include/linux/kernel_stat.h
  7. 1 1
      include/linux/sched.h

+ 1 - 1
drivers/cpufreq/cpufreq_stats.c

@@ -13,7 +13,7 @@
 #include <linux/cpufreq.h>
 #include <linux/cpufreq.h>
 #include <linux/module.h>
 #include <linux/module.h>
 #include <linux/slab.h>
 #include <linux/slab.h>
-#include <asm/cputime.h>
+#include <linux/cputime.h>
 
 
 static spinlock_t cpufreq_stats_lock;
 static spinlock_t cpufreq_stats_lock;
 
 

+ 1 - 1
drivers/s390/cio/cio.c

@@ -28,7 +28,7 @@
 #include <asm/chpid.h>
 #include <asm/chpid.h>
 #include <asm/airq.h>
 #include <asm/airq.h>
 #include <asm/isc.h>
 #include <asm/isc.h>
-#include <asm/cputime.h>
+#include <linux/cputime.h>
 #include <asm/fcx.h>
 #include <asm/fcx.h>
 #include <asm/nmi.h>
 #include <asm/nmi.h>
 #include <asm/crw.h>
 #include <asm/crw.h>

+ 1 - 1
fs/proc/stat.c

@@ -9,7 +9,7 @@
 #include <linux/slab.h>
 #include <linux/slab.h>
 #include <linux/time.h>
 #include <linux/time.h>
 #include <linux/irqnr.h>
 #include <linux/irqnr.h>
-#include <asm/cputime.h>
+#include <linux/cputime.h>
 #include <linux/tick.h>
 #include <linux/tick.h>
 
 
 #ifndef arch_irq_stat_cpu
 #ifndef arch_irq_stat_cpu

+ 1 - 1
fs/proc/uptime.c

@@ -5,7 +5,7 @@
 #include <linux/seq_file.h>
 #include <linux/seq_file.h>
 #include <linux/time.h>
 #include <linux/time.h>
 #include <linux/kernel_stat.h>
 #include <linux/kernel_stat.h>
-#include <asm/cputime.h>
+#include <linux/cputime.h>
 
 
 static int uptime_proc_show(struct seq_file *m, void *v)
 static int uptime_proc_show(struct seq_file *m, void *v)
 {
 {

+ 11 - 0
include/linux/cputime.h

@@ -0,0 +1,11 @@
+#ifndef __LINUX_CPUTIME_H
+#define __LINUX_CPUTIME_H
+
+#include <asm/cputime.h>
+
+#ifndef nsecs_to_cputime
+# define nsecs_to_cputime(__nsecs)	\
+	usecs_to_cputime((__nsecs) / NSEC_PER_USEC)
+#endif
+
+#endif /* __LINUX_CPUTIME_H */

+ 1 - 1
include/linux/kernel_stat.h

@@ -9,7 +9,7 @@
 #include <linux/sched.h>
 #include <linux/sched.h>
 #include <linux/vtime.h>
 #include <linux/vtime.h>
 #include <asm/irq.h>
 #include <asm/irq.h>
-#include <asm/cputime.h>
+#include <linux/cputime.h>
 
 
 /*
 /*
  * 'kernel_stat.h' contains the definitions needed for doing
  * 'kernel_stat.h' contains the definitions needed for doing

+ 1 - 1
include/linux/sched.h

@@ -27,7 +27,7 @@ struct sched_param {
 
 
 #include <asm/page.h>
 #include <asm/page.h>
 #include <asm/ptrace.h>
 #include <asm/ptrace.h>
-#include <asm/cputime.h>
+#include <linux/cputime.h>
 
 
 #include <linux/smp.h>
 #include <linux/smp.h>
 #include <linux/sem.h>
 #include <linux/sem.h>