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
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
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

Powered by Openwall GNU/*/Linux Powered by OpenVZ