public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Commit 911af505 introduced a bootmem warning.
@ 2013-05-15  7:57 Robin Holt
  2013-05-15 14:32 ` Paul E. McKenney
  0 siblings, 1 reply; 4+ messages in thread
From: Robin Holt @ 2013-05-15  7:57 UTC (permalink / raw)
  To: Paul E. McKenney; +Cc: linux-kernel

Paul,

When we boot Linus' current kernel we get the following warning early
in boot:

----------------------------------------------------------------------
[    0.000000] Memory: 63081268k/99598336k available (4832k kernel code, 34651396k absent, 1865672k reserved, 6269k data,
1672k init)
[    0.000000] Hierarchical RCU implementation.
[    0.000000]  RCU dyntick-idle grace-period acceleration is enabled.
[    0.000000]  RCU restricting CPUs from NR_CPUS=4096 to nr_cpu_ids=32.
[    0.000000] ------------[ cut here ]------------
[    0.000000] WARNING: at mm/nobootmem.c:215 ___alloc_bootmem_nopanic+0x79/0x82()
[    0.000000] Modules linked in:
[    0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.10.0-rc1-uv-hz100-rja+ #3
[    0.000000] Hardware name: SGI UV2000/ROMLEY, BIOS SGI UV 2000/3000 series BIOS 01/15/2013
[    0.000000]  00000000000000d7 ffffffff81a01e38 ffffffff814a873c ffffffff81a01e78
[    0.000000]  ffffffff81045a7b ffffffff81ced5a2 0000000000000000 ffffffffffffffff
[    0.000000]  0000000000000040 0000000000000200 0000000067da2bfc ffffffff81a01e88
[    0.000000] Call Trace:
[    0.000000]  [<ffffffff814a873c>] dump_stack+0x19/0x1d
[    0.000000]  [<ffffffff81045a7b>] warn_slowpath_common+0x6b/0xa0
[    0.000000]  [<ffffffff81045ac5>] warn_slowpath_null+0x15/0x20
[    0.000000]  [<ffffffff81b1793a>] ___alloc_bootmem_nopanic+0x79/0x82
[    0.000000]  [<ffffffff81b17a59>] ___alloc_bootmem+0x11/0x3c
[    0.000000]  [<ffffffff81b17aa4>] __alloc_bootmem+0x10/0x12
[    0.000000]  [<ffffffff81b233a7>] alloc_bootmem_cpumask_var+0x1d/0x27
[    0.000000]  [<ffffffff81b1119b>] rcu_bootup_announce_oddness+0xd0/0x153
[    0.000000]  [<ffffffff81b11735>] rcu_init+0x1e/0x1e6
[    0.000000]  [<ffffffff81aedf2f>] start_kernel+0x1e6/0x43c
[    0.000000]  [<ffffffff81aedb3b>] ? repair_env_string+0x58/0x58
[    0.000000]  [<ffffffff81aed4d1>] x86_64_start_reservations+0x1b/0x32
[    0.000000]  [<ffffffff81aed612>] x86_64_start_kernel+0x12a/0x131
[    0.000000] ---[ end trace c8b13488e92fad65 ]---
[    0.000000]  Experimental no-CBs for all CPUs
[    0.000000]  Experimental no-CBs CPUs: 0-31.
[    0.000000] NO_HZ: Full dynticks CPUs: 1-31.

$ grep RCU .config
# RCU Subsystem
CONFIG_TREE_RCU=y
# CONFIG_PREEMPT_RCU is not set
CONFIG_RCU_STALL_COMMON=y
CONFIG_RCU_USER_QS=y
CONFIG_RCU_FANOUT=64
CONFIG_RCU_FANOUT_LEAF=16
# CONFIG_RCU_FANOUT_EXACT is not set
CONFIG_RCU_FAST_NO_HZ=y
# CONFIG_TREE_RCU_TRACE is not set
CONFIG_RCU_NOCB_CPU=y
CONFIG_RCU_NOCB_CPU_ALL=y
# RCU Debugging
# CONFIG_SPARSE_RCU_POINTER is not set
# CONFIG_RCU_TORTURE_TEST is not set
CONFIG_RCU_CPU_STALL_TIMEOUT=60
# CONFIG_RCU_CPU_STALL_INFO is not set
# CONFIG_RCU_TRACE is not set

$ git rev-parse HEAD
1f638766ffcd9f08209afcabb3e2df961552fe18

cca6f3931 (Paul E. McKenney    2012-05-08 21:00:28 -0700   86)  if (nr_cpu_ids != NR_CPUS)
cca6f3931 (Paul E. McKenney    2012-05-08 21:00:28 -0700   87)          printk(KERN_INFO "\tRCU restricting CPUs from NR_C
PUS=%d to nr_cpu_ids=%d.\n", NR_CPUS, nr_cpu_ids);
3fbfbf7a3 (Paul E. McKenney    2012-08-19 21:35:53 -0700   88) #ifdef CONFIG_RCU_NOCB_CPU
911af505e (Paul E. McKenney    2013-02-11 10:23:27 -0800   89) #ifndef CONFIG_RCU_NOCB_CPU_NONE
911af505e (Paul E. McKenney    2013-02-11 10:23:27 -0800   90)  if (!have_rcu_nocb_mask) {
911af505e (Paul E. McKenney    2013-02-11 10:23:27 -0800   91)          alloc_bootmem_cpumask_var(&rcu_nocb_mask);
911af505e (Paul E. McKenney    2013-02-11 10:23:27 -0800   92)          have_rcu_nocb_mask = true;
911af505e (Paul E. McKenney    2013-02-11 10:23:27 -0800   93)  }
911af505e (Paul E. McKenney    2013-02-11 10:23:27 -0800   94) #ifdef CONFIG_RCU_NOCB_CPU_ZERO
911af505e (Paul E. McKenney    2013-02-11 10:23:27 -0800   95)  pr_info("\tExperimental no-CBs CPU 0\n");
911af505e (Paul E. McKenney    2013-02-11 10:23:27 -0800   96)  cpumask_set_cpu(0, rcu_nocb_mask);
911af505e (Paul E. McKenney    2013-02-11 10:23:27 -0800   97) #endif /* #ifdef CONFIG_RCU_NOCB_CPU_ZERO */
911af505e (Paul E. McKenney    2013-02-11 10:23:27 -0800   98) #ifdef CONFIG_RCU_NOCB_CPU_ALL
911af505e (Paul E. McKenney    2013-02-11 10:23:27 -0800   99)  pr_info("\tExperimental no-CBs for all CPUs\n");
911af505e (Paul E. McKenney    2013-02-11 10:23:27 -0800  100)  cpumask_setall(rcu_nocb_mask);
911af505e (Paul E. McKenney    2013-02-11 10:23:27 -0800  101) #endif /* #ifdef CONFIG_RCU_NOCB_CPU_ALL */
911af505e (Paul E. McKenney    2013-02-11 10:23:27 -0800  102) #endif /* #ifndef CONFIG_RCU_NOCB_CPU_NONE */


Thanks,
Robin Holt

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Commit 911af505 introduced a bootmem warning.
  2013-05-15  7:57 Commit 911af505 introduced a bootmem warning Robin Holt
@ 2013-05-15 14:32 ` Paul E. McKenney
  2013-05-15 15:33   ` Robin Holt
  0 siblings, 1 reply; 4+ messages in thread
From: Paul E. McKenney @ 2013-05-15 14:32 UTC (permalink / raw)
  To: Robin Holt; +Cc: Paul E. McKenney, linux-kernel

On Wed, May 15, 2013 at 02:57:42AM -0500, Robin Holt wrote:
> Paul,
> 
> When we boot Linus' current kernel we get the following warning early
> in boot:
> 
> ----------------------------------------------------------------------
> [    0.000000] Memory: 63081268k/99598336k available (4832k kernel code, 34651396k absent, 1865672k reserved, 6269k data,
> 1672k init)
> [    0.000000] Hierarchical RCU implementation.
> [    0.000000]  RCU dyntick-idle grace-period acceleration is enabled.
> [    0.000000]  RCU restricting CPUs from NR_CPUS=4096 to nr_cpu_ids=32.
> [    0.000000] ------------[ cut here ]------------
> [    0.000000] WARNING: at mm/nobootmem.c:215 ___alloc_bootmem_nopanic+0x79/0x82()
> [    0.000000] Modules linked in:
> [    0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.10.0-rc1-uv-hz100-rja+ #3
> [    0.000000] Hardware name: SGI UV2000/ROMLEY, BIOS SGI UV 2000/3000 series BIOS 01/15/2013
> [    0.000000]  00000000000000d7 ffffffff81a01e38 ffffffff814a873c ffffffff81a01e78
> [    0.000000]  ffffffff81045a7b ffffffff81ced5a2 0000000000000000 ffffffffffffffff
> [    0.000000]  0000000000000040 0000000000000200 0000000067da2bfc ffffffff81a01e88
> [    0.000000] Call Trace:
> [    0.000000]  [<ffffffff814a873c>] dump_stack+0x19/0x1d
> [    0.000000]  [<ffffffff81045a7b>] warn_slowpath_common+0x6b/0xa0
> [    0.000000]  [<ffffffff81045ac5>] warn_slowpath_null+0x15/0x20
> [    0.000000]  [<ffffffff81b1793a>] ___alloc_bootmem_nopanic+0x79/0x82
> [    0.000000]  [<ffffffff81b17a59>] ___alloc_bootmem+0x11/0x3c
> [    0.000000]  [<ffffffff81b17aa4>] __alloc_bootmem+0x10/0x12
> [    0.000000]  [<ffffffff81b233a7>] alloc_bootmem_cpumask_var+0x1d/0x27
> [    0.000000]  [<ffffffff81b1119b>] rcu_bootup_announce_oddness+0xd0/0x153
> [    0.000000]  [<ffffffff81b11735>] rcu_init+0x1e/0x1e6
> [    0.000000]  [<ffffffff81aedf2f>] start_kernel+0x1e6/0x43c
> [    0.000000]  [<ffffffff81aedb3b>] ? repair_env_string+0x58/0x58
> [    0.000000]  [<ffffffff81aed4d1>] x86_64_start_reservations+0x1b/0x32
> [    0.000000]  [<ffffffff81aed612>] x86_64_start_kernel+0x12a/0x131
> [    0.000000] ---[ end trace c8b13488e92fad65 ]---
> [    0.000000]  Experimental no-CBs for all CPUs
> [    0.000000]  Experimental no-CBs CPUs: 0-31.
> [    0.000000] NO_HZ: Full dynticks CPUs: 1-31.

Could you please try the following patch and let me know if it helps?

								Thanx, Paul

------------------------------------------------------------------------

rcu: Don't allocate bootmem from rcu_init()

When rcu_init() is called we already have slab working, allocating
bootmem at that point results in warnings and an allocation from
slab.  This commit therefore changes alloc_bootmem_cpumask_var() to
alloc_cpumask_var() in rcu_bootup_announce_oddness(), which is called
from rcu_init().

Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
Reviewed-by: Josh Triplett <josh@joshtriplett.org>

[paulmck: convert to zalloc_cpumask_var(), as suggested by Yinghai Lu.]

diff --git a/kernel/rcutree_plugin.h b/kernel/rcutree_plugin.h
index a8c39c7..207844e 100644
--- a/kernel/rcutree_plugin.h
+++ b/kernel/rcutree_plugin.h
@@ -87,7 +87,7 @@ static void __init rcu_bootup_announce_oddness(void)
 #ifdef CONFIG_RCU_NOCB_CPU
 #ifndef CONFIG_RCU_NOCB_CPU_NONE
 	if (!have_rcu_nocb_mask) {
-		alloc_bootmem_cpumask_var(&rcu_nocb_mask);
+		zalloc_cpumask_var(&rcu_nocb_mask, GFP_KERNEL);
 		have_rcu_nocb_mask = true;
 	}
 #ifdef CONFIG_RCU_NOCB_CPU_ZERO


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: Commit 911af505 introduced a bootmem warning.
  2013-05-15 14:32 ` Paul E. McKenney
@ 2013-05-15 15:33   ` Robin Holt
  2013-05-15 17:58     ` Paul E. McKenney
  0 siblings, 1 reply; 4+ messages in thread
From: Robin Holt @ 2013-05-15 15:33 UTC (permalink / raw)
  To: Paul E. McKenney; +Cc: Robin Holt, Paul E. McKenney, linux-kernel

On Wed, May 15, 2013 at 07:32:49AM -0700, Paul E. McKenney wrote:
> On Wed, May 15, 2013 at 02:57:42AM -0500, Robin Holt wrote:
> > Paul,
> > 
> > When we boot Linus' current kernel we get the following warning early
> > in boot:
> > 
> > ----------------------------------------------------------------------
> > [    0.000000] Memory: 63081268k/99598336k available (4832k kernel code, 34651396k absent, 1865672k reserved, 6269k data,
> > 1672k init)
> > [    0.000000] Hierarchical RCU implementation.
> > [    0.000000]  RCU dyntick-idle grace-period acceleration is enabled.
> > [    0.000000]  RCU restricting CPUs from NR_CPUS=4096 to nr_cpu_ids=32.
> > [    0.000000] ------------[ cut here ]------------
> > [    0.000000] WARNING: at mm/nobootmem.c:215 ___alloc_bootmem_nopanic+0x79/0x82()
> > [    0.000000] Modules linked in:
> > [    0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.10.0-rc1-uv-hz100-rja+ #3
> > [    0.000000] Hardware name: SGI UV2000/ROMLEY, BIOS SGI UV 2000/3000 series BIOS 01/15/2013
> > [    0.000000]  00000000000000d7 ffffffff81a01e38 ffffffff814a873c ffffffff81a01e78
> > [    0.000000]  ffffffff81045a7b ffffffff81ced5a2 0000000000000000 ffffffffffffffff
> > [    0.000000]  0000000000000040 0000000000000200 0000000067da2bfc ffffffff81a01e88
> > [    0.000000] Call Trace:
> > [    0.000000]  [<ffffffff814a873c>] dump_stack+0x19/0x1d
> > [    0.000000]  [<ffffffff81045a7b>] warn_slowpath_common+0x6b/0xa0
> > [    0.000000]  [<ffffffff81045ac5>] warn_slowpath_null+0x15/0x20
> > [    0.000000]  [<ffffffff81b1793a>] ___alloc_bootmem_nopanic+0x79/0x82
> > [    0.000000]  [<ffffffff81b17a59>] ___alloc_bootmem+0x11/0x3c
> > [    0.000000]  [<ffffffff81b17aa4>] __alloc_bootmem+0x10/0x12
> > [    0.000000]  [<ffffffff81b233a7>] alloc_bootmem_cpumask_var+0x1d/0x27
> > [    0.000000]  [<ffffffff81b1119b>] rcu_bootup_announce_oddness+0xd0/0x153
> > [    0.000000]  [<ffffffff81b11735>] rcu_init+0x1e/0x1e6
> > [    0.000000]  [<ffffffff81aedf2f>] start_kernel+0x1e6/0x43c
> > [    0.000000]  [<ffffffff81aedb3b>] ? repair_env_string+0x58/0x58
> > [    0.000000]  [<ffffffff81aed4d1>] x86_64_start_reservations+0x1b/0x32
> > [    0.000000]  [<ffffffff81aed612>] x86_64_start_kernel+0x12a/0x131
> > [    0.000000] ---[ end trace c8b13488e92fad65 ]---
> > [    0.000000]  Experimental no-CBs for all CPUs
> > [    0.000000]  Experimental no-CBs CPUs: 0-31.
> > [    0.000000] NO_HZ: Full dynticks CPUs: 1-31.
> 
> Could you please try the following patch and let me know if it helps?
> 
> 								Thanx, Paul
> 
> ------------------------------------------------------------------------
> 
> rcu: Don't allocate bootmem from rcu_init()
> 
> When rcu_init() is called we already have slab working, allocating
> bootmem at that point results in warnings and an allocation from
> slab.  This commit therefore changes alloc_bootmem_cpumask_var() to
> alloc_cpumask_var() in rcu_bootup_announce_oddness(), which is called
> from rcu_init().
> 
> Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
> Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> Reviewed-by: Josh Triplett <josh@joshtriplett.org>

Tested-by: Robin Holt <holt@sgi.com>

Works great.

Robin

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Commit 911af505 introduced a bootmem warning.
  2013-05-15 15:33   ` Robin Holt
@ 2013-05-15 17:58     ` Paul E. McKenney
  0 siblings, 0 replies; 4+ messages in thread
From: Paul E. McKenney @ 2013-05-15 17:58 UTC (permalink / raw)
  To: Robin Holt; +Cc: Paul E. McKenney, linux-kernel

On Wed, May 15, 2013 at 10:33:48AM -0500, Robin Holt wrote:
> On Wed, May 15, 2013 at 07:32:49AM -0700, Paul E. McKenney wrote:
> > On Wed, May 15, 2013 at 02:57:42AM -0500, Robin Holt wrote:
> > > Paul,
> > > 
> > > When we boot Linus' current kernel we get the following warning early
> > > in boot:
> > > 
> > > ----------------------------------------------------------------------
> > > [    0.000000] Memory: 63081268k/99598336k available (4832k kernel code, 34651396k absent, 1865672k reserved, 6269k data,
> > > 1672k init)
> > > [    0.000000] Hierarchical RCU implementation.
> > > [    0.000000]  RCU dyntick-idle grace-period acceleration is enabled.
> > > [    0.000000]  RCU restricting CPUs from NR_CPUS=4096 to nr_cpu_ids=32.
> > > [    0.000000] ------------[ cut here ]------------
> > > [    0.000000] WARNING: at mm/nobootmem.c:215 ___alloc_bootmem_nopanic+0x79/0x82()
> > > [    0.000000] Modules linked in:
> > > [    0.000000] CPU: 0 PID: 0 Comm: swapper/0 Not tainted 3.10.0-rc1-uv-hz100-rja+ #3
> > > [    0.000000] Hardware name: SGI UV2000/ROMLEY, BIOS SGI UV 2000/3000 series BIOS 01/15/2013
> > > [    0.000000]  00000000000000d7 ffffffff81a01e38 ffffffff814a873c ffffffff81a01e78
> > > [    0.000000]  ffffffff81045a7b ffffffff81ced5a2 0000000000000000 ffffffffffffffff
> > > [    0.000000]  0000000000000040 0000000000000200 0000000067da2bfc ffffffff81a01e88
> > > [    0.000000] Call Trace:
> > > [    0.000000]  [<ffffffff814a873c>] dump_stack+0x19/0x1d
> > > [    0.000000]  [<ffffffff81045a7b>] warn_slowpath_common+0x6b/0xa0
> > > [    0.000000]  [<ffffffff81045ac5>] warn_slowpath_null+0x15/0x20
> > > [    0.000000]  [<ffffffff81b1793a>] ___alloc_bootmem_nopanic+0x79/0x82
> > > [    0.000000]  [<ffffffff81b17a59>] ___alloc_bootmem+0x11/0x3c
> > > [    0.000000]  [<ffffffff81b17aa4>] __alloc_bootmem+0x10/0x12
> > > [    0.000000]  [<ffffffff81b233a7>] alloc_bootmem_cpumask_var+0x1d/0x27
> > > [    0.000000]  [<ffffffff81b1119b>] rcu_bootup_announce_oddness+0xd0/0x153
> > > [    0.000000]  [<ffffffff81b11735>] rcu_init+0x1e/0x1e6
> > > [    0.000000]  [<ffffffff81aedf2f>] start_kernel+0x1e6/0x43c
> > > [    0.000000]  [<ffffffff81aedb3b>] ? repair_env_string+0x58/0x58
> > > [    0.000000]  [<ffffffff81aed4d1>] x86_64_start_reservations+0x1b/0x32
> > > [    0.000000]  [<ffffffff81aed612>] x86_64_start_kernel+0x12a/0x131
> > > [    0.000000] ---[ end trace c8b13488e92fad65 ]---
> > > [    0.000000]  Experimental no-CBs for all CPUs
> > > [    0.000000]  Experimental no-CBs CPUs: 0-31.
> > > [    0.000000] NO_HZ: Full dynticks CPUs: 1-31.
> > 
> > Could you please try the following patch and let me know if it helps?
> > 
> > 								Thanx, Paul
> > 
> > ------------------------------------------------------------------------
> > 
> > rcu: Don't allocate bootmem from rcu_init()
> > 
> > When rcu_init() is called we already have slab working, allocating
> > bootmem at that point results in warnings and an allocation from
> > slab.  This commit therefore changes alloc_bootmem_cpumask_var() to
> > alloc_cpumask_var() in rcu_bootup_announce_oddness(), which is called
> > from rcu_init().
> > 
> > Signed-off-by: Sasha Levin <sasha.levin@oracle.com>
> > Signed-off-by: Paul E. McKenney <paulmck@linux.vnet.ibm.com>
> > Reviewed-by: Josh Triplett <josh@joshtriplett.org>
> 
> Tested-by: Robin Holt <holt@sgi.com>
> 
> Works great.

Thank you, queued for 3.10 as a regression.

								Thanx, Paul


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2013-05-15 21:11 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-05-15  7:57 Commit 911af505 introduced a bootmem warning Robin Holt
2013-05-15 14:32 ` Paul E. McKenney
2013-05-15 15:33   ` Robin Holt
2013-05-15 17:58     ` Paul E. McKenney

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox