diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2017-02-20 15:52:55 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2017-02-20 15:52:55 -0500 |
commit | 828cad8ea05d194d8a9452e0793261c2024c23a2 (patch) | |
tree | 0ad7c7e044cdcfe75d78da0b52eb2358d4686e02 /arch/x86/kernel/cpu | |
parent | 60c906bab124a0627fba04c9ca5e61bba4747c0c (diff) | |
parent | bb3bac2ca9a3a5b7fa601781adf70167a0449d75 (diff) |
Merge branch 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull scheduler updates from Ingo Molnar:
"The main changes in this (fairly busy) cycle were:
- There was a class of scheduler bugs related to forgetting to update
the rq-clock timestamp which can cause weird and hard to debug
problems, so there's a new debug facility for this: which uncovered
a whole lot of bugs which convinced us that we want to keep the
debug facility.
(Peter Zijlstra, Matt Fleming)
- Various cputime related updates: eliminate cputime and use u64
nanoseconds directly, simplify and improve the arch interfaces,
implement delayed accounting more widely, etc. - (Frederic
Weisbecker)
- Move code around for better structure plus cleanups (Ingo Molnar)
- Move IO schedule accounting deeper into the scheduler plus related
changes to improve the situation (Tejun Heo)
- ... plus a round of sched/rt and sched/deadline fixes, plus other
fixes, updats and cleanups"
* 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (85 commits)
sched/core: Remove unlikely() annotation from sched_move_task()
sched/autogroup: Rename auto_group.[ch] to autogroup.[ch]
sched/topology: Split out scheduler topology code from core.c into topology.c
sched/core: Remove unnecessary #include headers
sched/rq_clock: Consolidate the ordering of the rq_clock methods
delayacct: Include <uapi/linux/taskstats.h>
sched/core: Clean up comments
sched/rt: Show the 'sched_rr_timeslice' SCHED_RR timeslice tuning knob in milliseconds
sched/clock: Add dummy clear_sched_clock_stable() stub function
sched/cputime: Remove generic asm headers
sched/cputime: Remove unused nsec_to_cputime()
s390, sched/cputime: Remove unused cputime definitions
powerpc, sched/cputime: Remove unused cputime definitions
s390, sched/cputime: Make arch_cpu_idle_time() to return nsecs
ia64, sched/cputime: Remove unused cputime definitions
ia64: Convert vtime to use nsec units directly
ia64, sched/cputime: Move the nsecs based cputime headers to the last arch using it
sched/cputime: Remove jiffies based cputime
sched/cputime, vtime: Return nsecs instead of cputime_t to account
sched/cputime: Complete nsec conversion of tick based accounting
...
Diffstat (limited to 'arch/x86/kernel/cpu')
-rw-r--r-- | arch/x86/kernel/cpu/amd.c | 6 | ||||
-rw-r--r-- | arch/x86/kernel/cpu/centaur.c | 6 | ||||
-rw-r--r-- | arch/x86/kernel/cpu/common.c | 3 | ||||
-rw-r--r-- | arch/x86/kernel/cpu/cyrix.c | 2 | ||||
-rw-r--r-- | arch/x86/kernel/cpu/intel.c | 6 | ||||
-rw-r--r-- | arch/x86/kernel/cpu/transmeta.c | 3 |
6 files changed, 20 insertions, 6 deletions
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c index 2b4cf04239b6..4e95b2e0d95f 100644 --- a/arch/x86/kernel/cpu/amd.c +++ b/arch/x86/kernel/cpu/amd.c | |||
@@ -555,8 +555,10 @@ static void early_init_amd(struct cpuinfo_x86 *c) | |||
555 | if (c->x86_power & (1 << 8)) { | 555 | if (c->x86_power & (1 << 8)) { |
556 | set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC); | 556 | set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC); |
557 | set_cpu_cap(c, X86_FEATURE_NONSTOP_TSC); | 557 | set_cpu_cap(c, X86_FEATURE_NONSTOP_TSC); |
558 | if (!check_tsc_unstable()) | 558 | if (check_tsc_unstable()) |
559 | set_sched_clock_stable(); | 559 | clear_sched_clock_stable(); |
560 | } else { | ||
561 | clear_sched_clock_stable(); | ||
560 | } | 562 | } |
561 | 563 | ||
562 | /* Bit 12 of 8000_0007 edx is accumulated power mechanism. */ | 564 | /* Bit 12 of 8000_0007 edx is accumulated power mechanism. */ |
diff --git a/arch/x86/kernel/cpu/centaur.c b/arch/x86/kernel/cpu/centaur.c index 1661d8ec9280..2c234a6d94c4 100644 --- a/arch/x86/kernel/cpu/centaur.c +++ b/arch/x86/kernel/cpu/centaur.c | |||
@@ -1,5 +1,5 @@ | |||
1 | #include <linux/bitops.h> | 1 | |
2 | #include <linux/kernel.h> | 2 | #include <linux/sched.h> |
3 | 3 | ||
4 | #include <asm/cpufeature.h> | 4 | #include <asm/cpufeature.h> |
5 | #include <asm/e820.h> | 5 | #include <asm/e820.h> |
@@ -104,6 +104,8 @@ static void early_init_centaur(struct cpuinfo_x86 *c) | |||
104 | #ifdef CONFIG_X86_64 | 104 | #ifdef CONFIG_X86_64 |
105 | set_cpu_cap(c, X86_FEATURE_SYSENTER32); | 105 | set_cpu_cap(c, X86_FEATURE_SYSENTER32); |
106 | #endif | 106 | #endif |
107 | |||
108 | clear_sched_clock_stable(); | ||
107 | } | 109 | } |
108 | 110 | ||
109 | static void init_centaur(struct cpuinfo_x86 *c) | 111 | static void init_centaur(struct cpuinfo_x86 *c) |
diff --git a/arch/x86/kernel/cpu/common.c b/arch/x86/kernel/cpu/common.c index ede03e849a8b..3bcf6d880611 100644 --- a/arch/x86/kernel/cpu/common.c +++ b/arch/x86/kernel/cpu/common.c | |||
@@ -83,6 +83,7 @@ static void default_init(struct cpuinfo_x86 *c) | |||
83 | strcpy(c->x86_model_id, "386"); | 83 | strcpy(c->x86_model_id, "386"); |
84 | } | 84 | } |
85 | #endif | 85 | #endif |
86 | clear_sched_clock_stable(); | ||
86 | } | 87 | } |
87 | 88 | ||
88 | static const struct cpu_dev default_cpu = { | 89 | static const struct cpu_dev default_cpu = { |
@@ -1056,6 +1057,8 @@ static void identify_cpu(struct cpuinfo_x86 *c) | |||
1056 | */ | 1057 | */ |
1057 | if (this_cpu->c_init) | 1058 | if (this_cpu->c_init) |
1058 | this_cpu->c_init(c); | 1059 | this_cpu->c_init(c); |
1060 | else | ||
1061 | clear_sched_clock_stable(); | ||
1059 | 1062 | ||
1060 | /* Disable the PN if appropriate */ | 1063 | /* Disable the PN if appropriate */ |
1061 | squash_the_stupid_serial_number(c); | 1064 | squash_the_stupid_serial_number(c); |
diff --git a/arch/x86/kernel/cpu/cyrix.c b/arch/x86/kernel/cpu/cyrix.c index bd9dcd6b712d..47416f959a48 100644 --- a/arch/x86/kernel/cpu/cyrix.c +++ b/arch/x86/kernel/cpu/cyrix.c | |||
@@ -9,6 +9,7 @@ | |||
9 | #include <asm/pci-direct.h> | 9 | #include <asm/pci-direct.h> |
10 | #include <asm/tsc.h> | 10 | #include <asm/tsc.h> |
11 | #include <asm/cpufeature.h> | 11 | #include <asm/cpufeature.h> |
12 | #include <linux/sched.h> | ||
12 | 13 | ||
13 | #include "cpu.h" | 14 | #include "cpu.h" |
14 | 15 | ||
@@ -183,6 +184,7 @@ static void early_init_cyrix(struct cpuinfo_x86 *c) | |||
183 | set_cpu_cap(c, X86_FEATURE_CYRIX_ARR); | 184 | set_cpu_cap(c, X86_FEATURE_CYRIX_ARR); |
184 | break; | 185 | break; |
185 | } | 186 | } |
187 | clear_sched_clock_stable(); | ||
186 | } | 188 | } |
187 | 189 | ||
188 | static void init_cyrix(struct cpuinfo_x86 *c) | 190 | static void init_cyrix(struct cpuinfo_x86 *c) |
diff --git a/arch/x86/kernel/cpu/intel.c b/arch/x86/kernel/cpu/intel.c index 203f860d2ab3..026c728d6ba7 100644 --- a/arch/x86/kernel/cpu/intel.c +++ b/arch/x86/kernel/cpu/intel.c | |||
@@ -119,8 +119,10 @@ static void early_init_intel(struct cpuinfo_x86 *c) | |||
119 | if (c->x86_power & (1 << 8)) { | 119 | if (c->x86_power & (1 << 8)) { |
120 | set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC); | 120 | set_cpu_cap(c, X86_FEATURE_CONSTANT_TSC); |
121 | set_cpu_cap(c, X86_FEATURE_NONSTOP_TSC); | 121 | set_cpu_cap(c, X86_FEATURE_NONSTOP_TSC); |
122 | if (!check_tsc_unstable()) | 122 | if (check_tsc_unstable()) |
123 | set_sched_clock_stable(); | 123 | clear_sched_clock_stable(); |
124 | } else { | ||
125 | clear_sched_clock_stable(); | ||
124 | } | 126 | } |
125 | 127 | ||
126 | /* Penwell and Cloverview have the TSC which doesn't sleep on S3 */ | 128 | /* Penwell and Cloverview have the TSC which doesn't sleep on S3 */ |
diff --git a/arch/x86/kernel/cpu/transmeta.c b/arch/x86/kernel/cpu/transmeta.c index 34178564be2a..c1ea5b999839 100644 --- a/arch/x86/kernel/cpu/transmeta.c +++ b/arch/x86/kernel/cpu/transmeta.c | |||
@@ -1,4 +1,5 @@ | |||
1 | #include <linux/kernel.h> | 1 | #include <linux/kernel.h> |
2 | #include <linux/sched.h> | ||
2 | #include <linux/mm.h> | 3 | #include <linux/mm.h> |
3 | #include <asm/cpufeature.h> | 4 | #include <asm/cpufeature.h> |
4 | #include <asm/msr.h> | 5 | #include <asm/msr.h> |
@@ -14,6 +15,8 @@ static void early_init_transmeta(struct cpuinfo_x86 *c) | |||
14 | if (xlvl >= 0x80860001) | 15 | if (xlvl >= 0x80860001) |
15 | c->x86_capability[CPUID_8086_0001_EDX] = cpuid_edx(0x80860001); | 16 | c->x86_capability[CPUID_8086_0001_EDX] = cpuid_edx(0x80860001); |
16 | } | 17 | } |
18 | |||
19 | clear_sched_clock_stable(); | ||
17 | } | 20 | } |
18 | 21 | ||
19 | static void init_transmeta(struct cpuinfo_x86 *c) | 22 | static void init_transmeta(struct cpuinfo_x86 *c) |