Skip to contentSkip to conversation

timers updates for 3.15

GIT PULL In review Frederic Weisbecker 2 participants 12 messages Mar 12, 2014

Subsystems (9)
lore
Share & tools
lore
#0 lore raw

Ingo, Thomas,

Please pull the timers/cputime-fix-steal-v2 branch that can be found at:

git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks.git
timers/cputime-fix-steal-v2

It's based on tip:timers/core. The patches are essentially unchanged since the last version (https://lkml.org/lkml/2014/3/6/376). I only added a small comment in 4/6 and acks from Rik.

---
The main purpose of this set is to fix a bug on full dynticks configs where steal time accounting appears to be zero in /proc/stat even after a few seconds of competing guests running busy loops in a same host CPU. It's not a regression though as it was there since the beginning with full dynticks.

So patch [4/6] ("cputime: Fix jiffies based cputime assumption on steal accounting") is the most important patch of the series. The rest is mostly preparatory work to fix the bug plus various cleanups.

Thanks,
Frederic
---

Frederic Weisbecker (6):
cputime: Fix nsecs_to_cputime() return type cast
cputime: Default implementation of nsecs -> cputime conversion
cputime: Bring cputime -> nsecs conversion
cputime: Fix jiffies based cputime assumption on steal accounting
sched: Remove needless round trip nsecs <-> tick conversion of steal time
arch: Remove stub cputime.h headers

 arch/alpha/include/asm/Kbuild         |  1 +
 arch/alpha/include/asm/cputime.h      |  6 ------
 arch/cris/include/asm/Kbuild          |  1 +
 arch/cris/include/asm/cputime.h       |  6 ------
 arch/frv/include/asm/Kbuild           |  1 +
 arch/frv/include/asm/cputime.h        |  6 ------
 arch/m32r/include/asm/Kbuild          |  1 +
 arch/m32r/include/asm/cputime.h       |  6 ------
 arch/microblaze/include/asm/Kbuild    |  1 +
 arch/microblaze/include/asm/cputime.h |  1 -
 arch/mn10300/include/asm/Kbuild       |  1 +
 arch/mn10300/include/asm/cputime.h    |  1 -
 arch/score/include/asm/Kbuild         |  2 +-
 arch/score/include/asm/cputime.h      |  6 ------
 arch/x86/include/asm/Kbuild           |  1 +
 arch/x86/include/asm/cputime.h        |  1 -
 drivers/cpufreq/cpufreq_stats.c       |  2 +-
 drivers/s390/cio/cio.c                |  2 +-
 fs/proc/stat.c                        |  2 +-
 fs/proc/uptime.c                      |  2 +-
 include/asm-generic/cputime_jiffies.h |  4 +++-
 include/asm-generic/cputime_nsecs.h   |  5 ++++-
 include/linux/cputime.h               | 16 ++++++++++++++++
 include/linux/kernel_stat.h           |  2 +-
 include/linux/sched.h                 |  2 +-
 kernel/sched/core.c                   |  6 ------
 kernel/sched/cputime.c                | 16 +++++++++++-----
 kernel/sched/sched.h                  | 10 ----------
 28 files changed, 48 insertions(+), 63 deletions(-)
#1 lore raw

PATCH 1/6 cputime: Fix nsecs_to_cputime() return type cast

Even though nsec based cputime_t maps to u64, nsecs_to_cputime() must return a cputime_t value. We want to enforce this kind of cast in order to track down buggy manipulations of cputime_t such as direct access of its values under wrong assumptions on its backend type (nsecs, jiffies, etc...) by core code.

Cc Ingo Molnar <[email protected]>
Cc Marcelo Tosatti <[email protected]>
Cc Peter Zijlstra <[email protected]>
Cc Thomas Gleixner <[email protected]>
---
 include/asm-generic/cputime_nsecs.h | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
include/asm-generic/cputime_nsecs.h +2 -1
index 2c9e62c..768294f 100644
@@ -44,7 +44,8 @@ typedef u64 __nocast cputime64_t;
 /*
  * Convert cputime <-> nanoseconds
  */
-#define nsecs_to_cputime(__nsecs)	((__force u64)(__nsecs))
+#define nsecs_to_cputime(__nsecs)	\
+	(__force cputime_t)(__nsecs)
 
 
 /*
Signature · 1 line
1.8.3.1
#2 lore raw

PATCH 2/6 cputime: Default implementation of nsecs -> cputime conversion

In reply to Frederic Weisbecker

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 <[email protected]>
Cc Marcelo Tosatti <[email protected]>
Cc Peter Zijlstra <[email protected]>
Cc Thomas Gleixner <[email protected]>
---
 drivers/cpufreq/cpufreq_stats.c |  2 +-
 drivers/s390/cio/cio.c          |  2 +-
 fs/proc/stat.c                  |  2 +-
 fs/proc/uptime.c                |  2 +-
 include/linux/cputime.h         | 11 +++++++++++
 include/linux/kernel_stat.h     |  2 +-
 include/linux/sched.h           |  2 +-
 7 files changed, 17 insertions(+), 6 deletions(-)
 create mode 100644 include/linux/cputime.h
drivers/cpufreq/cpufreq_stats.c +1 -1
index 5793e14..79911a2 100644
@@ -13,7 +13,7 @@
 #include <linux/cpufreq.h>
 #include <linux/module.h>
 #include <linux/slab.h>
-#include <asm/cputime.h>
+#include <linux/cputime.h>
 
 static spinlock_t cpufreq_stats_lock;
 
drivers/s390/cio/cio.c +1 -1
index 88e35d8..5154513 100644
@@ -28,7 +28,7 @@
 #include <asm/chpid.h>
 #include <asm/airq.h>
 #include <asm/isc.h>
-#include <asm/cputime.h>
+#include <linux/cputime.h>
 #include <asm/fcx.h>
 #include <asm/nmi.h>
 #include <asm/crw.h>
fs/proc/stat.c +1 -1
index 6f599c6..9d231e9 100644
@@ -9,7 +9,7 @@
 #include <linux/slab.h>
 #include <linux/time.h>
 #include <linux/irqnr.h>
-#include <asm/cputime.h>
+#include <linux/cputime.h>
 #include <linux/tick.h>
 
 #ifndef arch_irq_stat_cpu
fs/proc/uptime.c +1 -1
index 7141b8d..33de567 100644
@@ -5,7 +5,7 @@
 #include <linux/seq_file.h>
 #include <linux/time.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)
 {
include/linux/cputime.h new file +11 -0
new file mode 100644
index 0000000..2842ebe
@@ -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 */
include/linux/kernel_stat.h +1 -1
index 51c72be..d7c6131 100644
@@ -9,7 +9,7 @@
 #include <linux/sched.h>
 #include <linux/vtime.h>
 #include <asm/irq.h>
-#include <asm/cputime.h>
+#include <linux/cputime.h>
 
 /*
  * 'kernel_stat.h' contains the definitions needed for doing
include/linux/sched.h +1 -1
index 68a0e84..1ac566c 100644
@@ -27,7 +27,7 @@ struct sched_param {
 
 #include <asm/page.h>
 #include <asm/ptrace.h>
-#include <asm/cputime.h>
+#include <linux/cputime.h>
 
 #include <linux/smp.h>
 #include <linux/sem.h>
Signature · 1 line
1.8.3.1
#3 lore raw

PATCH 3/6 cputime: Bring cputime -> nsecs conversion

In reply to Frederic Weisbecker

We already have nsecs_to_cputime(). Now we need to be able to convert the other way around in order to fix a bug on steal time accounting.

Cc Ingo Molnar <[email protected]>
Cc Marcelo Tosatti <[email protected]>
Cc Peter Zijlstra <[email protected]>
Cc Thomas Gleixner <[email protected]>
---
 include/asm-generic/cputime_jiffies.h | 4 +++-
 include/asm-generic/cputime_nsecs.h   | 2 ++
 include/linux/cputime.h               | 5 +++++
 3 files changed, 10 insertions(+), 1 deletion(-)
include/asm-generic/cputime_jiffies.h +3 -1
index 272ecba..d5cb78f5 100644
@@ -15,8 +15,10 @@ typedef u64 __nocast cputime64_t;
 
 
 /*
- * Convert nanoseconds to cputime
+ * Convert nanoseconds <-> cputime
  */
+#define cputime_to_nsecs(__ct)		\
+	jiffies_to_nsecs(cputime_to_jiffies(__ct))
 #define nsecs_to_cputime64(__nsec)	\
 	jiffies64_to_cputime64(nsecs_to_jiffies64(__nsec))
 #define nsecs_to_cputime(__nsec)	\
include/asm-generic/cputime_nsecs.h +2 -0
index 768294f..4e81760 100644
@@ -44,6 +44,8 @@ typedef u64 __nocast cputime64_t;
 /*
  * Convert cputime <-> nanoseconds
  */
+#define cputime_to_nsecs(__ct)		\
+	(__force u64)(__ct)
 #define nsecs_to_cputime(__nsecs)	\
 	(__force cputime_t)(__nsecs)
 
include/linux/cputime.h +5 -0
index 2842ebe..f2eb2ee 100644
@@ -3,6 +3,11 @@
 
 #include <asm/cputime.h>
 
+#ifndef cputime_to_nsecs
+# define cputime_to_nsecs(__ct)	\
+	(cputime_to_usecs(__ct) * NSEC_PER_USEC)
+#endif
+
 #ifndef nsecs_to_cputime
 # define nsecs_to_cputime(__nsecs)	\
 	usecs_to_cputime((__nsecs) / NSEC_PER_USEC)
Signature · 1 line
1.8.3.1
#4 lore raw

PATCH 4/6 cputime: Fix jiffies based cputime assumption on steal accounting

In reply to Frederic Weisbecker

The steal guest time accounting code assumes that cputime_t is based on jiffies. So when CONFIG_NO_HZ_FULL=y, which implies that cputime_t is based on nsecs, steal_account_process_tick() passes the delta in jiffies to account_steal_time() which then accounts it as if it's a value in nsecs.

As a result, accounting 1 second of steal time (with HZ=100 that would be 100 jiffies) is spuriously accounted as 100 nsecs.

As such /proc/stat may report 0 values of steal time even when two guests have run concurrently for a few seconds on the same host and same CPU.

In order to fix this, lets convert the nsecs based steal delta to cputime instead of jiffies by using the right conversion API.

Given that the steal time is stored in cputime_t and this type can have a smaller granularity than nsecs, we only account the rounded converted value and leave the remaining nsecs for the next deltas.

---
 kernel/sched/cputime.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)
kernel/sched/cputime.c +11 -5
index 9994791..c91b097 100644
@@ -258,16 +258,22 @@ static __always_inline bool steal_account_process_tick(void)
 {
 #ifdef CONFIG_PARAVIRT
 	if (static_key_false(&paravirt_steal_enabled)) {
-		u64 steal, st = 0;
+		u64 steal;
+		cputime_t steal_ct;
 
 		steal = paravirt_steal_clock(smp_processor_id());
 		steal -= this_rq()->prev_steal_time;
 
-		st = steal_ticks(steal);
-		this_rq()->prev_steal_time += st * TICK_NSEC;
+		/*
+		 * cputime_t may be less precise than nsecs (eg: if it's
+		 * based on jiffies). Lets cast the result to cputime
+		 * granularity and account the rest on the next rounds.
+		 */
+		steal_ct = nsecs_to_cputime(steal);
+		this_rq()->prev_steal_time += cputime_to_nsecs(steal_ct);
 
-		account_steal_time(st);
-		return st;
+		account_steal_time(steal_ct);
+		return steal_ct;
 	}
 #endif
 	return false;
Signature · 1 line
1.8.3.1
#5 lore raw

PATCH 5/6 sched: Remove needless round trip nsecs <-> tick conversion of steal time

In reply to Frederic Weisbecker

When update_rq_clock_task() accounts the pending steal time for a task, it converts the steal delta from nsecs to tick then from tick to nsecs.

There is no apparent good reason for doing that though because both the task clock and the prev steal delta are u64 and store values in nsecs.

So lets remove the needless conversion.

Cc Ingo Molnar <[email protected]>
Cc Marcelo Tosatti <[email protected]>
Cc Peter Zijlstra <[email protected]>
Cc Thomas Gleixner <[email protected]>
---
 kernel/sched/core.c  |  6 ------
 kernel/sched/sched.h | 10 ----------
 2 files changed, 16 deletions(-)
kernel/sched/core.c +0 -6
index b46131e..b14a188 100644
@@ -823,19 +823,13 @@ static void update_rq_clock_task(struct rq *rq, s64 delta)
 #endif
 #ifdef CONFIG_PARAVIRT_TIME_ACCOUNTING
 	if (static_key_false((&paravirt_steal_rq_enabled))) {
-		u64 st;
-
 		steal = paravirt_steal_clock(cpu_of(rq));
 		steal -= rq->prev_steal_time_rq;
 
 		if (unlikely(steal > delta))
 			steal = delta;
 
-		st = steal_ticks(steal);
-		steal = st * TICK_NSEC;
-
 		rq->prev_steal_time_rq += steal;
-
 		delta -= steal;
 	}
 #endif
kernel/sched/sched.h +0 -10
index c2119fd..5ec9910 100644
@@ -1214,16 +1214,6 @@ extern void update_idle_cpu_load(struct rq *this_rq);
 
 extern void init_task_runnable_average(struct task_struct *p);
 
-#ifdef CONFIG_PARAVIRT
-static inline u64 steal_ticks(u64 steal)
-{
-	if (unlikely(steal > NSEC_PER_SEC))
-		return div_u64(steal, TICK_NSEC);
-
-	return __iter_div_u64_rem(steal, TICK_NSEC, &steal);
-}
-#endif
-
 static inline void inc_nr_running(struct rq *rq)
 {
 	rq->nr_running++;
Signature · 1 line
1.8.3.1
#6 lore raw

PATCH 6/6 arch: Remove stub cputime.h headers

In reply to Frederic Weisbecker

Many architectures have a stub cputime.h that only include the default cputime.h

Lets remove the useless headers, we only need to mention that we want the default headers on the Kbuild files.

Cc Ingo Molnar <[email protected]>
Cc Marcelo Tosatti <[email protected]>
Cc Peter Zijlstra <[email protected]>
Cc Thomas Gleixner <[email protected]>
---
 arch/alpha/include/asm/Kbuild         | 1 +
 arch/alpha/include/asm/cputime.h      | 6 ------
 arch/cris/include/asm/Kbuild          | 1 +
 arch/cris/include/asm/cputime.h       | 6 ------
 arch/frv/include/asm/Kbuild           | 1 +
 arch/frv/include/asm/cputime.h        | 6 ------
 arch/m32r/include/asm/Kbuild          | 1 +
 arch/m32r/include/asm/cputime.h       | 6 ------
 arch/microblaze/include/asm/Kbuild    | 1 +
 arch/microblaze/include/asm/cputime.h | 1 -
 arch/mn10300/include/asm/Kbuild       | 1 +
 arch/mn10300/include/asm/cputime.h    | 1 -
 arch/score/include/asm/Kbuild         | 2 +-
 arch/score/include/asm/cputime.h      | 6 ------
 arch/x86/include/asm/Kbuild           | 1 +
 arch/x86/include/asm/cputime.h        | 1 -
 16 files changed, 8 insertions(+), 34 deletions(-)
 delete mode 100644 arch/alpha/include/asm/cputime.h
 delete mode 100644 arch/cris/include/asm/cputime.h
 delete mode 100644 arch/frv/include/asm/cputime.h
 delete mode 100644 arch/m32r/include/asm/cputime.h
 delete mode 100644 arch/microblaze/include/asm/cputime.h
 delete mode 100644 arch/mn10300/include/asm/cputime.h
 delete mode 100644 arch/score/include/asm/cputime.h
 delete mode 100644 arch/x86/include/asm/cputime.h
arch/alpha/include/asm/Kbuild +1 -0
index a73a8e2..1a81a8b 100644
@@ -5,3 +5,4 @@ generic-y += exec.h
 generic-y += trace_clock.h
 generic-y += preempt.h
 generic-y += hash.h
+generic-y += cputime.h
\ No newline at end of file
arch/alpha/include/asm/cputime.h deleted +0 -6
deleted file mode 100644
index 19577fd..0000000
@@ -1,6 +0,0 @@
-#ifndef __ALPHA_CPUTIME_H
-#define __ALPHA_CPUTIME_H
-
-#include <asm-generic/cputime.h>
-
-#endif /* __ALPHA_CPUTIME_H */
arch/cris/include/asm/Kbuild +1 -0
index f3fd876..9d02b45 100644
@@ -14,3 +14,4 @@ generic-y += trace_clock.h
 generic-y += vga.h
 generic-y += xor.h
 generic-y += preempt.h
+generic-y += cputime.h
\ No newline at end of file
arch/cris/include/asm/cputime.h deleted +0 -6
deleted file mode 100644
index 4446a65..0000000
@@ -1,6 +0,0 @@
-#ifndef __CRIS_CPUTIME_H
-#define __CRIS_CPUTIME_H
-
-#include <asm-generic/cputime.h>
-
-#endif /* __CRIS_CPUTIME_H */
arch/frv/include/asm/Kbuild +1 -0
index bc42f14..c5eca98 100644
@@ -4,3 +4,4 @@ generic-y += exec.h
 generic-y += trace_clock.h
 generic-y += preempt.h
 generic-y += hash.h
+generic-y += cputime.h
arch/frv/include/asm/cputime.h deleted +0 -6
deleted file mode 100644
index f6c373a..0000000
@@ -1,6 +0,0 @@
-#ifndef _ASM_CPUTIME_H
-#define _ASM_CPUTIME_H
-
-#include <asm-generic/cputime.h>
-
-#endif /* _ASM_CPUTIME_H */
arch/m32r/include/asm/Kbuild +1 -0
index 932435a..fda061d 100644
@@ -5,3 +5,4 @@ generic-y += module.h
 generic-y += trace_clock.h
 generic-y += preempt.h
 generic-y += hash.h
+generic-y += cputime.h
\ No newline at end of file
arch/m32r/include/asm/cputime.h deleted +0 -6
deleted file mode 100644
index 0a47550..0000000
@@ -1,6 +0,0 @@
-#ifndef __M32R_CPUTIME_H
-#define __M32R_CPUTIME_H
-
-#include <asm-generic/cputime.h>
-
-#endif /* __M32R_CPUTIME_H */
arch/microblaze/include/asm/Kbuild +1 -0
index 2b98bc7..da88738a 100644
@@ -6,3 +6,4 @@ generic-y += hash.h
 generic-y += trace_clock.h
 generic-y += syscalls.h
 generic-y += preempt.h
+generic-y += cputime.h
arch/microblaze/include/asm/cputime.h deleted +0 -1
deleted file mode 100644
index 6d68ad7..0000000
@@ -1 +0,0 @@
-#include <asm-generic/cputime.h>
arch/mn10300/include/asm/Kbuild +1 -0
index 992e989..e076269 100644
@@ -5,3 +5,4 @@ generic-y += exec.h
 generic-y += hash.h
 generic-y += trace_clock.h
 generic-y += preempt.h
+generic-y += cputime.h
\ No newline at end of file
arch/mn10300/include/asm/cputime.h deleted +0 -1
deleted file mode 100644
index 6d68ad7..0000000
@@ -1 +0,0 @@
-#include <asm-generic/cputime.h>
arch/score/include/asm/Kbuild +1 -1
index 146b9d5..1274e7a 100644
@@ -7,4 +7,4 @@ generic-y += hash.h
 generic-y += trace_clock.h
 generic-y += xor.h
 generic-y += preempt.h
-
+generic-y += cputime.h
arch/score/include/asm/cputime.h deleted +0 -6
deleted file mode 100644
index 1fced99..0000000
@@ -1,6 +0,0 @@
-#ifndef _ASM_SCORE_CPUTIME_H
-#define _ASM_SCORE_CPUTIME_H
-
-#include <asm-generic/cputime.h>
-
-#endif /* _ASM_SCORE_CPUTIME_H */
arch/x86/include/asm/Kbuild +1 -0
index 7f66985..875f34e 100644
@@ -5,3 +5,4 @@ genhdr-y += unistd_64.h
 genhdr-y += unistd_x32.h
 
 generic-y += clkdev.h
+generic-y += cputime.h
arch/x86/include/asm/cputime.h deleted +0 -1
deleted file mode 100644
index 6d68ad7..0000000
@@ -1 +0,0 @@
-#include <asm-generic/cputime.h>
Signature · 1 line
1.8.3.1
maintainer
#7 lore raw

Re: [PATCH 6/6] arch: Remove stub cputime.h headers

arch/alpha/include/asm/Kbuild generic-y += exec.h · line 8

Quoted 10 lines · Frederic Weisbecker
arch/alpha/include/asm/Kbuild +1 -0
index a73a8e2..1a81a8b 100644
@@ -5,3 +5,4 @@ generic-y += exec.h
 generic-y += trace_clock.h
 generic-y += preempt.h
 generic-y += hash.h
+generic-y += cputime.h
\ No newline at end of file

That's a double fail there, not sorted and no EOL.

Please run the script from commit: b119fa61d440f after you touch the asm/Kbuild files.

#8 lore raw

Re: [PATCH 6/6] arch: Remove stub cputime.h headers

Quoted 14 lines · Peter Zijlstra

arch/alpha/include/asm/Kbuild generic-y += exec.h · line 8

Quoted 10 lines · Frederic Weisbecker
arch/alpha/include/asm/Kbuild +1 -0
index a73a8e2..1a81a8b 100644
@@ -5,3 +5,4 @@ generic-y += exec.h
 generic-y += trace_clock.h
 generic-y += preempt.h
 generic-y += hash.h
+generic-y += cputime.h
\ No newline at end of file

That's a double fail there, not sorted and no EOL.

Quoted 2 lines

Please run the script from commit: b119fa61d440f after you touch the asm/Kbuild files.

I don't see why we need to sort them. But I'm running the script anyway. Will resend, thanks.

maintainer
#9 lore raw

Re: [PATCH 6/6] arch: Remove stub cputime.h headers

Quoted 15 lines · Frederic Weisbecker
Quoted 14 lines · Peter Zijlstra

arch/alpha/include/asm/Kbuild generic-y += exec.h · line 8

Quoted 10 lines · Frederic Weisbecker
arch/alpha/include/asm/Kbuild +1 -0
index a73a8e2..1a81a8b 100644
@@ -5,3 +5,4 @@ generic-y += exec.h
 generic-y += trace_clock.h
 generic-y += preempt.h
 generic-y += hash.h
+generic-y += cputime.h
\ No newline at end of file

That's a double fail there, not sorted and no EOL.

Quoted 5 lines
Quoted 2 lines

Please run the script from commit: b119fa61d440f after you touch the asm/Kbuild files.

I don't see why we need to sort them. But I'm running the script anyway. Will resend, thanks.

sfr gets real grumpy if we don't, at one point I gave in and wrote that script, because I sure as hell wasn't going to manually sort all those files every time I did a automated addition.

#10 lore raw

Re: [PATCH 6/6] arch: Remove stub cputime.h headers

Quoted 19 lines · Peter Zijlstra
Quoted 18 lines · Frederic Weisbecker
Quoted 16 lines · Peter Zijlstra

arch/alpha/include/asm/Kbuild generic-y += exec.h · line 8

Quoted 10 lines · Frederic Weisbecker
arch/alpha/include/asm/Kbuild +1 -0
index a73a8e2..1a81a8b 100644
@@ -5,3 +5,4 @@ generic-y += exec.h
 generic-y += trace_clock.h
 generic-y += preempt.h
 generic-y += hash.h
+generic-y += cputime.h
\ No newline at end of file

That's a double fail there, not sorted and no EOL.

Please run the script from commit: b119fa61d440f after you touch the asm/Kbuild files.

Quoted 6 lines
Quoted 2 lines

I don't see why we need to sort them. But I'm running the script anyway. Will resend, thanks.

sfr gets real grumpy if we don't, at one point I gave in and wrote that script, because I sure as hell wasn't going to manually sort all those files every time I did a automated addition.

I see, it's to avoid merge conflicts then. Granted.

#11 lore raw

PATCH v2 1/1 arch: Remove stub cputime.h headers

In reply to Peter Zijlstra

Many architectures have a stub cputime.h that only include the default cputime.h

Lets remove the useless headers, we only need to mention that we want the default headers on the Kbuild files.

While at it, resort alphabetically the entries in arch/*/include/asm/Kbuild for those that have been touched. For this we use the script in commit b119fa61d440f as suggested by Peter Zijlstra.

Cc Ingo Molnar <[email protected]>
Cc Marcelo Tosatti <[email protected]>
Cc Peter Zijlstra <[email protected]>
Cc Thomas Gleixner <[email protected]>
---
 arch/alpha/include/asm/Kbuild         | 7 ++++---
 arch/alpha/include/asm/cputime.h      | 6 ------
 arch/cris/include/asm/Kbuild          | 3 ++-
 arch/cris/include/asm/cputime.h       | 6 ------
 arch/frv/include/asm/Kbuild           | 5 +++--
 arch/frv/include/asm/cputime.h        | 6 ------
 arch/m32r/include/asm/Kbuild          | 5 +++--
 arch/m32r/include/asm/cputime.h       | 6 ------
 arch/microblaze/include/asm/Kbuild    | 5 +++--
 arch/microblaze/include/asm/cputime.h | 1 -
 arch/mn10300/include/asm/Kbuild       | 3 ++-
 arch/mn10300/include/asm/cputime.h    | 1 -
 arch/score/include/asm/Kbuild         | 4 ++--
 arch/score/include/asm/cputime.h      | 6 ------
 arch/x86/include/asm/Kbuild           | 1 +
 arch/x86/include/asm/cputime.h        | 1 -
 16 files changed, 20 insertions(+), 46 deletions(-)
 delete mode 100644 arch/alpha/include/asm/cputime.h
 delete mode 100644 arch/cris/include/asm/cputime.h
 delete mode 100644 arch/frv/include/asm/cputime.h
 delete mode 100644 arch/m32r/include/asm/cputime.h
 delete mode 100644 arch/microblaze/include/asm/cputime.h
 delete mode 100644 arch/mn10300/include/asm/cputime.h
 delete mode 100644 arch/score/include/asm/cputime.h
 delete mode 100644 arch/x86/include/asm/cputime.h
arch/alpha/include/asm/Kbuild +4 -3
index a73a8e2..2d960be 100644
@@ -1,7 +1,8 @@
 
-generic-y += clkdev.h
 
+generic-y += clkdev.h
+generic-y += cputime.h
 generic-y += exec.h
-generic-y += trace_clock.h
-generic-y += preempt.h
 generic-y += hash.h
+generic-y += preempt.h
+generic-y += trace_clock.h
arch/alpha/include/asm/cputime.h deleted +0 -6
deleted file mode 100644
index 19577fd..0000000
@@ -1,6 +0,0 @@
-#ifndef __ALPHA_CPUTIME_H
-#define __ALPHA_CPUTIME_H
-
-#include <asm-generic/cputime.h>
-
-#endif /* __ALPHA_CPUTIME_H */
arch/cris/include/asm/Kbuild +2 -1
index f3fd876..197199e 100644
@@ -5,12 +5,13 @@ header-y += arch-v32/
 
 generic-y += barrier.h
 generic-y += clkdev.h
+generic-y += cputime.h
 generic-y += exec.h
 generic-y += hash.h
 generic-y += kvm_para.h
 generic-y += linkage.h
 generic-y += module.h
+generic-y += preempt.h
 generic-y += trace_clock.h
 generic-y += vga.h
 generic-y += xor.h
-generic-y += preempt.h
arch/cris/include/asm/cputime.h deleted +0 -6
deleted file mode 100644
index 4446a65..0000000
@@ -1,6 +0,0 @@
-#ifndef __CRIS_CPUTIME_H
-#define __CRIS_CPUTIME_H
-
-#include <asm-generic/cputime.h>
-
-#endif /* __CRIS_CPUTIME_H */
arch/frv/include/asm/Kbuild +3 -2
index bc42f14..7b0940e 100644
@@ -1,6 +1,7 @@
 
 generic-y += clkdev.h
+generic-y += cputime.h
 generic-y += exec.h
-generic-y += trace_clock.h
-generic-y += preempt.h
 generic-y += hash.h
+generic-y += preempt.h
+generic-y += trace_clock.h
arch/frv/include/asm/cputime.h deleted +0 -6
deleted file mode 100644
index f6c373a..0000000
@@ -1,6 +0,0 @@
-#ifndef _ASM_CPUTIME_H
-#define _ASM_CPUTIME_H
-
-#include <asm-generic/cputime.h>
-
-#endif /* _ASM_CPUTIME_H */
arch/m32r/include/asm/Kbuild +3 -2
index 932435a..a46ff18 100644
@@ -1,7 +1,8 @@
 
 generic-y += clkdev.h
+generic-y += cputime.h
 generic-y += exec.h
+generic-y += hash.h
 generic-y += module.h
-generic-y += trace_clock.h
 generic-y += preempt.h
-generic-y += hash.h
+generic-y += trace_clock.h
arch/m32r/include/asm/cputime.h deleted +0 -6
deleted file mode 100644
index 0a47550..0000000
@@ -1,6 +0,0 @@
-#ifndef __M32R_CPUTIME_H
-#define __M32R_CPUTIME_H
-
-#include <asm-generic/cputime.h>
-
-#endif /* __M32R_CPUTIME_H */
arch/microblaze/include/asm/Kbuild +3 -2
index 2b98bc7..12c7194 100644
@@ -1,8 +1,9 @@
 
 generic-y += barrier.h
 generic-y += clkdev.h
+generic-y += cputime.h
 generic-y += exec.h
 generic-y += hash.h
-generic-y += trace_clock.h
-generic-y += syscalls.h
 generic-y += preempt.h
+generic-y += syscalls.h
+generic-y += trace_clock.h
arch/microblaze/include/asm/cputime.h deleted +0 -1
deleted file mode 100644
index 6d68ad7..0000000
@@ -1 +0,0 @@
-#include <asm-generic/cputime.h>
arch/mn10300/include/asm/Kbuild +2 -1
index 992e989..b25a7d5 100644
@@ -1,7 +1,8 @@
 
 generic-y += barrier.h
 generic-y += clkdev.h
+generic-y += cputime.h
 generic-y += exec.h
 generic-y += hash.h
-generic-y += trace_clock.h
 generic-y += preempt.h
+generic-y += trace_clock.h
arch/mn10300/include/asm/cputime.h deleted +0 -1
deleted file mode 100644
index 6d68ad7..0000000
@@ -1 +0,0 @@
-#include <asm-generic/cputime.h>
arch/score/include/asm/Kbuild +2 -2
index 146b9d5..f1361618 100644
@@ -3,8 +3,8 @@ header-y +=
 
 generic-y += barrier.h
 generic-y += clkdev.h
+generic-y += cputime.h
 generic-y += hash.h
+generic-y += preempt.h
 generic-y += trace_clock.h
 generic-y += xor.h
-generic-y += preempt.h
-
arch/score/include/asm/cputime.h deleted +0 -6
deleted file mode 100644
index 1fced99..0000000
@@ -1,6 +0,0 @@
-#ifndef _ASM_SCORE_CPUTIME_H
-#define _ASM_SCORE_CPUTIME_H
-
-#include <asm-generic/cputime.h>
-
-#endif /* _ASM_SCORE_CPUTIME_H */
arch/x86/include/asm/Kbuild +1 -0
index 7f66985..875f34e 100644
@@ -5,3 +5,4 @@ genhdr-y += unistd_64.h
 genhdr-y += unistd_x32.h
 
 generic-y += clkdev.h
+generic-y += cputime.h
arch/x86/include/asm/cputime.h deleted +0 -1
deleted file mode 100644
index 6d68ad7..0000000
@@ -1 +0,0 @@
-#include <asm-generic/cputime.h>
Signature · 1 line
1.8.3.1