浏览代码

Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull scheduler fixes from Thomas Gleixner:
 "Three patches addressing the fallout of the CPU_ISOLATION changes
  especially with NO_HZ_FULL plus documentation of boot parameter
  dependency"

* 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip:
  sched/isolation: Document boot parameters dependency on CONFIG_CPU_ISOLATION=y
  sched/isolation: Enable CONFIG_CPU_ISOLATION=y by default
  sched/isolation: Make CONFIG_NO_HZ_FULL select CONFIG_CPU_ISOLATION
Linus Torvalds 7 年之前
父节点
当前提交
4c470317f9

+ 1 - 0
Documentation/admin-guide/kernel-parameters.rst

@@ -109,6 +109,7 @@ parameter is applicable::
 	IPV6	IPv6 support is enabled.
 	IPV6	IPv6 support is enabled.
 	ISAPNP	ISA PnP code is enabled.
 	ISAPNP	ISA PnP code is enabled.
 	ISDN	Appropriate ISDN support is enabled.
 	ISDN	Appropriate ISDN support is enabled.
+	ISOL	CPU Isolation is enabled.
 	JOY	Appropriate joystick support is enabled.
 	JOY	Appropriate joystick support is enabled.
 	KGDB	Kernel debugger support is enabled.
 	KGDB	Kernel debugger support is enabled.
 	KVM	Kernel Virtual Machine support is enabled.
 	KVM	Kernel Virtual Machine support is enabled.

+ 2 - 2
Documentation/admin-guide/kernel-parameters.txt

@@ -1737,7 +1737,7 @@
 	isapnp=		[ISAPNP]
 	isapnp=		[ISAPNP]
 			Format: <RDP>,<reset>,<pci_scan>,<verbosity>
 			Format: <RDP>,<reset>,<pci_scan>,<verbosity>
 
 
-	isolcpus=	[KNL,SMP] Isolate a given set of CPUs from disturbance.
+	isolcpus=	[KNL,SMP,ISOL] Isolate a given set of CPUs from disturbance.
 			[Deprecated - use cpusets instead]
 			[Deprecated - use cpusets instead]
 			Format: [flag-list,]<cpu-list>
 			Format: [flag-list,]<cpu-list>
 
 
@@ -2662,7 +2662,7 @@
 			Valid arguments: on, off
 			Valid arguments: on, off
 			Default: on
 			Default: on
 
 
-	nohz_full=	[KNL,BOOT]
+	nohz_full=	[KNL,BOOT,SMP,ISOL]
 			The argument is a cpu list, as described above.
 			The argument is a cpu list, as described above.
 			In kernels built with CONFIG_NO_HZ_FULL=y, set
 			In kernels built with CONFIG_NO_HZ_FULL=y, set
 			the specified list of CPUs whose tick will be stopped
 			the specified list of CPUs whose tick will be stopped

+ 5 - 1
init/Kconfig

@@ -461,10 +461,14 @@ endmenu # "CPU/Task time and stats accounting"
 
 
 config CPU_ISOLATION
 config CPU_ISOLATION
 	bool "CPU isolation"
 	bool "CPU isolation"
+	default y
 	help
 	help
 	  Make sure that CPUs running critical tasks are not disturbed by
 	  Make sure that CPUs running critical tasks are not disturbed by
 	  any source of "noise" such as unbound workqueues, timers, kthreads...
 	  any source of "noise" such as unbound workqueues, timers, kthreads...
-	  Unbound jobs get offloaded to housekeeping CPUs.
+	  Unbound jobs get offloaded to housekeeping CPUs. This is driven by
+	  the "isolcpus=" boot parameter.
+
+	  Say Y if unsure.
 
 
 source "kernel/rcu/Kconfig"
 source "kernel/rcu/Kconfig"
 
 

+ 1 - 0
kernel/time/Kconfig

@@ -95,6 +95,7 @@ config NO_HZ_FULL
 	select RCU_NOCB_CPU
 	select RCU_NOCB_CPU
 	select VIRT_CPU_ACCOUNTING_GEN
 	select VIRT_CPU_ACCOUNTING_GEN
 	select IRQ_WORK
 	select IRQ_WORK
+	select CPU_ISOLATION
 	help
 	help
 	 Adaptively try to shutdown the tick whenever possible, even when
 	 Adaptively try to shutdown the tick whenever possible, even when
 	 the CPU is running tasks. Typically this requires running a single
 	 the CPU is running tasks. Typically this requires running a single