diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2018-01-12 13:23:59 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2018-01-12 13:23:59 -0500 |
commit | 67549d46d42eed58731028bebe304bc8cbd7af01 (patch) | |
tree | a0f5f7664ae96d3f0ce693f46987a820539dcae5 | |
parent | 02776b9b5399183f273fa898fef64b1e977a5f85 (diff) | |
parent | 541676078b52f365f53d46ee5517d305cd1b6350 (diff) |
Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull scheduler fixes from Ingo Molnar:
"A Kconfig fix, a build fix and a membarrier bug fix"
* 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
membarrier: Disable preemption when calling smp_call_function_many()
sched/isolation: Make CONFIG_CPU_ISOLATION=y depend on SMP or COMPILE_TEST
ia64, sched/cputime: Fix build error if CONFIG_VIRT_CPU_ACCOUNTING_NATIVE=y
-rw-r--r-- | arch/ia64/kernel/time.c | 2 | ||||
-rw-r--r-- | init/Kconfig | 1 | ||||
-rw-r--r-- | kernel/sched/membarrier.c | 2 |
3 files changed, 4 insertions, 1 deletions
diff --git a/arch/ia64/kernel/time.c b/arch/ia64/kernel/time.c index c6ecb97151a2..9025699049ca 100644 --- a/arch/ia64/kernel/time.c +++ b/arch/ia64/kernel/time.c | |||
@@ -88,7 +88,7 @@ void vtime_flush(struct task_struct *tsk) | |||
88 | } | 88 | } |
89 | 89 | ||
90 | if (ti->softirq_time) { | 90 | if (ti->softirq_time) { |
91 | delta = cycle_to_nsec(ti->softirq_time)); | 91 | delta = cycle_to_nsec(ti->softirq_time); |
92 | account_system_index_time(tsk, delta, CPUTIME_SOFTIRQ); | 92 | account_system_index_time(tsk, delta, CPUTIME_SOFTIRQ); |
93 | } | 93 | } |
94 | 94 | ||
diff --git a/init/Kconfig b/init/Kconfig index 19a6b845d834..a9a2e2c86671 100644 --- a/init/Kconfig +++ b/init/Kconfig | |||
@@ -461,6 +461,7 @@ endmenu # "CPU/Task time and stats accounting" | |||
461 | 461 | ||
462 | config CPU_ISOLATION | 462 | config CPU_ISOLATION |
463 | bool "CPU isolation" | 463 | bool "CPU isolation" |
464 | depends on SMP || COMPILE_TEST | ||
464 | default y | 465 | default y |
465 | help | 466 | help |
466 | Make sure that CPUs running critical tasks are not disturbed by | 467 | Make sure that CPUs running critical tasks are not disturbed by |
diff --git a/kernel/sched/membarrier.c b/kernel/sched/membarrier.c index dd7908743dab..9bcbacba82a8 100644 --- a/kernel/sched/membarrier.c +++ b/kernel/sched/membarrier.c | |||
@@ -89,7 +89,9 @@ static int membarrier_private_expedited(void) | |||
89 | rcu_read_unlock(); | 89 | rcu_read_unlock(); |
90 | } | 90 | } |
91 | if (!fallback) { | 91 | if (!fallback) { |
92 | preempt_disable(); | ||
92 | smp_call_function_many(tmpmask, ipi_mb, NULL, 1); | 93 | smp_call_function_many(tmpmask, ipi_mb, NULL, 1); |
94 | preempt_enable(); | ||
93 | free_cpumask_var(tmpmask); | 95 | free_cpumask_var(tmpmask); |
94 | } | 96 | } |
95 | cpus_read_unlock(); | 97 | cpus_read_unlock(); |