Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d84d27a4 authored by Frederic Weisbecker's avatar Frederic Weisbecker
Browse files

context_tracking: Remove full dynticks' hacky dependency on wide context tracking



Now that the full dynticks subsystem only enables the context tracking
on full dynticks CPUs, lets remove the dependency on CONTEXT_TRACKING_FORCE

This dependency was a hack to enable the context tracking widely for the
full dynticks susbsystem until the latter becomes able to enable it in a
more CPU-finegrained fashion.

Now CONTEXT_TRACKING_FORCE only stands for testing on archs that
work on support for the context tracking while full dynticks can't be
used yet due to unmet dependencies. It simulates a system where all CPUs
are full dynticks so that RCU user extended quiescent states and dynticks
cputime accounting can be tested on the given arch.

Signed-off-by: default avatarFrederic Weisbecker <fweisbec@gmail.com>
Cc: Steven Rostedt <rostedt@goodmis.org>
Cc: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Li Zhong <zhong@linux.vnet.ibm.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Kevin Hilman <khilman@linaro.org>
parent 2e709338
Loading
Loading
Loading
Loading
+22 −6
Original line number Diff line number Diff line
@@ -527,13 +527,29 @@ config RCU_USER_QS
config CONTEXT_TRACKING_FORCE
	bool "Force context tracking"
	depends on CONTEXT_TRACKING
	default CONTEXT_TRACKING
	default y if !NO_HZ_FULL
	help
	  Probe on user/kernel boundaries by default in order to
	  test the features that rely on it such as userspace RCU extended
	  quiescent states.
	  This test is there for debugging until we have a real user like the
	  full dynticks mode.
	  The major pre-requirement for full dynticks to work is to
	  support the context tracking subsystem. But there are also
	  other dependencies to provide in order to make the full
	  dynticks working.

	  This option stands for testing when an arch implements the
	  context tracking backend but doesn't yet fullfill all the
	  requirements to make the full dynticks feature working.
	  Without the full dynticks, there is no way to test the support
	  for context tracking and the subsystems that rely on it: RCU
	  userspace extended quiescent state and tickless cputime
	  accounting. This option copes with the absence of the full
	  dynticks subsystem by forcing the context tracking on all
	  CPUs in the system.

	  Say Y only if you're working on the developpement of an
	  architecture backend for the context tracking.

	  Say N otherwise, this option brings an overhead that you
	  don't want in production.


config RCU_FANOUT
	int "Tree-based hierarchical RCU fanout value"
+0 −1
Original line number Diff line number Diff line
@@ -105,7 +105,6 @@ config NO_HZ_FULL
	select RCU_USER_QS
	select RCU_NOCB_CPU
	select VIRT_CPU_ACCOUNTING_GEN
	select CONTEXT_TRACKING_FORCE
	select IRQ_WORK
	help
	 Adaptively try to shutdown the tick whenever possible, even when