lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening linux-cve-announce PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Thu, 25 Dec 2008 10:46:12 -0800 From: "Paul E. McKenney" <paulmck@...ux.vnet.ibm.com> To: Ingo Molnar <mingo@...e.hu> Cc: linux-kernel@...r.kernel.org, tglx@...utronix.de, akpm@...ux-foundation.org, ralf@...ux-mips.org, kernel@...tstofly.org, hskinnemoen@...el.com, cooloney@...nel.org, tony.luck@...el.com, geert@...ux-m68k.org, zippel@...ux-m68k.org, jwboyer@...ux.vnet.ibm.com, mporter@...nel.crashing.org, grant.likely@...retlab.ca, paulus@...ba.org, benh@...nel.crashing.org, dhowells@...hat.com, yasutake.koichi@...panasonic.com, lethal@...ux-sh.org, hpa@...or.com Subject: Re: [PATCH -tip] Switch arm defconfig files from CONFIG_CLASSIC_RCU to CONFIG_TREE_RCU. On Thu, Dec 25, 2008 at 09:36:11AM +0100, Ingo Molnar wrote: > > below is the fix for another small buglet that hits architectures that do > not include kernel/Kconfig.preempt. Hmmm... Now that you mention it, I made a similar error some time back. You would think that I would learn. :-/ Thank you, and Merry Christmas!!! Thanx, Paul > Ingo > > ---------------> > >From 12d79bafb75639f406a9f71aab94808c414c836e Mon Sep 17 00:00:00 2001 > From: Ingo Molnar <mingo@...e.hu> > Date: Thu, 25 Dec 2008 09:31:28 +0100 > Subject: [PATCH] rcu: provide RCU options on non-preempt architectures too > > Impact: build fix > > Some old architectures still do not use kernel/Kconfig.preempt, so the > moving of the RCU options there broke their build: > > In file included from /home/mingo/tip/include/linux/sem.h:81, > from /home/mingo/tip/include/linux/sched.h:69, > from /home/mingo/tip/arch/alpha/kernel/asm-offsets.c:9: > /home/mingo/tip/include/linux/rcupdate.h:62:2: error: #error "Unknown RCU implementation specified to kernel configuration" > > Move these options back to init/Kconfig, which every architecture > includes. > > Signed-off-by: Ingo Molnar <mingo@...e.hu> > --- > init/Kconfig | 74 +++++++++++++++++++++++++++++++++++++++++++++++ > kernel/Kconfig.preempt | 75 ------------------------------------------------ > 2 files changed, 74 insertions(+), 75 deletions(-) > > diff --git a/init/Kconfig b/init/Kconfig > index 9dd7958..6b0fded 100644 > --- a/init/Kconfig > +++ b/init/Kconfig > @@ -928,6 +928,80 @@ source "block/Kconfig" > config PREEMPT_NOTIFIERS > bool > > +choice > + prompt "RCU Implementation" > + default CLASSIC_RCU > + > +config CLASSIC_RCU > + bool "Classic RCU" > + help > + This option selects the classic RCU implementation that is > + designed for best read-side performance on non-realtime > + systems. > + > + Select this option if you are unsure. > + > +config TREE_RCU > + bool "Tree-based hierarchical RCU" > + help > + This option selects the RCU implementation that is > + designed for very large SMP system with hundreds or > + thousands of CPUs. > + > +config PREEMPT_RCU > + bool "Preemptible RCU" > + depends on PREEMPT > + help > + This option reduces the latency of the kernel by making certain > + RCU sections preemptible. Normally RCU code is non-preemptible, if > + this option is selected then read-only RCU sections become > + preemptible. This helps latency, but may expose bugs due to > + now-naive assumptions about each RCU read-side critical section > + remaining on a given CPU through its execution. > + > +endchoice > + > +config RCU_TRACE > + bool "Enable tracing for RCU" > + depends on TREE_RCU || PREEMPT_RCU > + help > + This option provides tracing in RCU which presents stats > + in debugfs for debugging RCU implementation. > + > + Say Y here if you want to enable RCU tracing > + Say N if you are unsure. > + > +config RCU_FANOUT > + int "Tree-based hierarchical RCU fanout value" > + range 2 64 if 64BIT > + range 2 32 if !64BIT > + depends on TREE_RCU > + default 64 if 64BIT > + default 32 if !64BIT > + help > + This option controls the fanout of hierarchical implementations > + of RCU, allowing RCU to work efficiently on machines with > + large numbers of CPUs. This value must be at least the cube > + root of NR_CPUS, which allows NR_CPUS up to 32,768 for 32-bit > + systems and up to 262,144 for 64-bit systems. > + > + Select a specific number if testing RCU itself. > + Take the default if unsure. > + > +config RCU_FANOUT_EXACT > + bool "Disable tree-based hierarchical RCU auto-balancing" > + depends on TREE_RCU > + default n > + help > + This option forces use of the exact RCU_FANOUT value specified, > + regardless of imbalances in the hierarchy. This is useful for > + testing RCU itself, and might one day be useful on systems with > + strong NUMA behavior. > + > + Without RCU_FANOUT_EXACT, the code will balance the hierarchy. > + > + Say N if unsure. > + > config TREE_RCU_TRACE > def_bool RCU_TRACE && TREE_RCU > select DEBUG_FS > diff --git a/kernel/Kconfig.preempt b/kernel/Kconfig.preempt > index 463f297..bf987b9 100644 > --- a/kernel/Kconfig.preempt > +++ b/kernel/Kconfig.preempt > @@ -52,78 +52,3 @@ config PREEMPT > > endchoice > > -choice > - prompt "RCU Implementation" > - default CLASSIC_RCU > - > -config CLASSIC_RCU > - bool "Classic RCU" > - help > - This option selects the classic RCU implementation that is > - designed for best read-side performance on non-realtime > - systems. > - > - Select this option if you are unsure. > - > -config TREE_RCU > - bool "Tree-based hierarchical RCU" > - help > - This option selects the RCU implementation that is > - designed for very large SMP system with hundreds or > - thousands of CPUs. > - > -config PREEMPT_RCU > - bool "Preemptible RCU" > - depends on PREEMPT > - help > - This option reduces the latency of the kernel by making certain > - RCU sections preemptible. Normally RCU code is non-preemptible, if > - this option is selected then read-only RCU sections become > - preemptible. This helps latency, but may expose bugs due to > - now-naive assumptions about each RCU read-side critical section > - remaining on a given CPU through its execution. > - > -endchoice > - > -config RCU_TRACE > - bool "Enable tracing for RCU" > - depends on TREE_RCU || PREEMPT_RCU > - help > - This option provides tracing in RCU which presents stats > - in debugfs for debugging RCU implementation. > - > - Say Y here if you want to enable RCU tracing > - Say N if you are unsure. > - > -config RCU_FANOUT > - int "Tree-based hierarchical RCU fanout value" > - range 2 64 if 64BIT > - range 2 32 if !64BIT > - depends on TREE_RCU > - default 64 if 64BIT > - default 32 if !64BIT > - help > - This option controls the fanout of hierarchical implementations > - of RCU, allowing RCU to work efficiently on machines with > - large numbers of CPUs. This value must be at least the cube > - root of NR_CPUS, which allows NR_CPUS up to 32,768 for 32-bit > - systems and up to 262,144 for 64-bit systems. > - > - Select a specific number if testing RCU itself. > - Take the default if unsure. > - > -config RCU_FANOUT_EXACT > - bool "Disable tree-based hierarchical RCU auto-balancing" > - depends on TREE_RCU > - default n > - help > - This option forces use of the exact RCU_FANOUT value specified, > - regardless of imbalances in the hierarchy. This is useful for > - testing RCU itself, and might one day be useful on systems with > - strong NUMA behavior. > - > - Without RCU_FANOUT_EXACT, the code will balance the hierarchy. > - > - Say n if unsure. > - > - -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@...r.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists