aboutsummaryrefslogtreecommitdiffstats
path: root/init
diff options
context:
space:
mode:
authorPranith Kumar <bobby.prani@gmail.com>2014-12-05 11:24:45 -0500
committerPaul E. McKenney <paulmck@linux.vnet.ibm.com>2015-01-06 14:04:29 -0500
commit83fe27ea531161a655f02dc7732d14cfaa27fd5d (patch)
tree1f81714c3b10b76f483eea380b0eafe7cf84e75b /init
parent9735af5c78599703be633c057af3faee26482028 (diff)
rcu: Make SRCU optional by using CONFIG_SRCU
SRCU is not necessary to be compiled by default in all cases. For tinification efforts not compiling SRCU unless necessary is desirable. The current patch tries to make compiling SRCU optional by introducing a new Kconfig option CONFIG_SRCU which is selected when any of the components making use of SRCU are selected. If we do not select CONFIG_SRCU, srcu.o will not be compiled at all. text data bss dec hex filename 2007 0 0 2007 7d7 kernel/rcu/srcu.o Size of arch/powerpc/boot/zImage changes from text data bss dec hex filename 831552 64180 23944 919676 e087c arch/powerpc/boot/zImage : before 829504 64180 23952 917636 e0084 arch/powerpc/boot/zImage : after so the savings are about ~2000 bytes. Signed-off-by: Pranith Kumar <bobby.prani@gmail.com> CC: Paul E. McKenney <paulmck@linux.vnet.ibm.com> CC: Josh Triplett <josh@joshtriplett.org> CC: Lai Jiangshan <laijs@cn.fujitsu.com> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com> [ paulmck: resolve conflict due to removal of arch/ia64/kvm/Kconfig. ]
Diffstat (limited to 'init')
-rw-r--r--init/Kconfig9
1 files changed, 9 insertions, 0 deletions
diff --git a/init/Kconfig b/init/Kconfig
index 9afb971497f4..f085969ba340 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -501,9 +501,17 @@ config TINY_RCU
501 501
502endchoice 502endchoice
503 503
504config SRCU
505 bool
506 help
507 This option selects the sleepable version of RCU. This version
508 permits arbitrary sleeping or blocking within RCU read-side critical
509 sections.
510
504config TASKS_RCU 511config TASKS_RCU
505 bool "Task_based RCU implementation using voluntary context switch" 512 bool "Task_based RCU implementation using voluntary context switch"
506 default n 513 default n
514 select SRCU
507 help 515 help
508 This option enables a task-based RCU implementation that uses 516 This option enables a task-based RCU implementation that uses
509 only voluntary context switch (not preemption!), idle, and 517 only voluntary context switch (not preemption!), idle, and
@@ -1595,6 +1603,7 @@ config PERF_EVENTS
1595 depends on HAVE_PERF_EVENTS 1603 depends on HAVE_PERF_EVENTS
1596 select ANON_INODES 1604 select ANON_INODES
1597 select IRQ_WORK 1605 select IRQ_WORK
1606 select SRCU
1598 help 1607 help
1599 Enable kernel support for various performance events provided 1608 Enable kernel support for various performance events provided
1600 by software and hardware. 1609 by software and hardware.