linux-mm.kvack.org archive mirror
 help / color / mirror / Atom feed
From: Sasha Levin <sasha.levin@oracle.com>
To: David Rientjes <rientjes@google.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
	Johannes Weiner <hannes@cmpxchg.org>,
	"David S. Miller" <davem@davemloft.net>,
	Tejun Heo <tj@kernel.org>, Joonsoo Kim <js1304@gmail.com>,
	Yinghai Lu <yinghai@kernel.org>,
	linux-mm@kvack.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH 2/3] mm, bootmem: panic in bootmem alloc functions even if slab is available
Date: Thu, 27 Dec 2012 17:40:26 -0500	[thread overview]
Message-ID: <50DCCE5A.4000805@oracle.com> (raw)
In-Reply-To: <alpine.DEB.2.00.1212271423210.18214@chino.kir.corp.google.com>

On 12/27/2012 05:25 PM, David Rientjes wrote:
> On Sun, 23 Dec 2012, Sasha Levin wrote:
> 
>> diff --git a/mm/bootmem.c b/mm/bootmem.c
>> index 1324cd7..198a92f 100644
>> --- a/mm/bootmem.c
>> +++ b/mm/bootmem.c
>> @@ -763,9 +763,6 @@ void * __init ___alloc_bootmem_node(pg_data_t *pgdat, unsigned long size,
>>  void * __init __alloc_bootmem_node(pg_data_t *pgdat, unsigned long size,
>>  				   unsigned long align, unsigned long goal)
>>  {
>> -	if (WARN_ON_ONCE(slab_is_available()))
>> -		return kzalloc_node(size, GFP_NOWAIT, pgdat->node_id);
>> -
>>  	return  ___alloc_bootmem_node(pgdat, size, align, goal, 0);
>>  }
>>  
> 
> All you're doing is removing the fallback if this happens to be called 
> with slab_is_available().  It's still possible that the slab allocator can 
> successfully allocate the memory, though.  So it would be rather 
> unfortunate to start panicking in a situation that used to only emit a 
> warning.
> 
> Why can't you panic only kzalloc_node() returns NULL and otherwise just 
> return the allocated memory?

That's exactly what happens with the patch. Note that in the current upstream
version there are several slab checks scattered all over.

In this case for example, I'm removing it from __alloc_bootmem_node(), but the
first code line of__alloc_bootmem_node_nopanic() is:

        if (WARN_ON_ONCE(slab_is_available()))
                return kzalloc(size, GFP_NOWAIT);

So the current behaviour is still preserved, but the code is simplified to
have only one place that allocates memory (both from the slab and from bootmem),
instead of having slab allocations sprinkled all over.


Thanks,
Sasha

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  parent reply	other threads:[~2012-12-27 22:41 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-12-23 20:15 [PATCH 1/3] mm, sparse: allocate bootmem without panicing in sparse_mem_maps_populate_node Sasha Levin
2012-12-23 20:15 ` [PATCH 2/3] mm, bootmem: panic in bootmem alloc functions even if slab is available Sasha Levin
2012-12-27 22:25   ` David Rientjes
2012-12-27 22:27     ` Pekka Enberg
2012-12-27 22:31       ` David Rientjes
2012-12-27 22:38         ` Pekka Enberg
2012-12-27 22:40     ` Sasha Levin [this message]
2012-12-27 23:04       ` David Rientjes
2012-12-27 23:07         ` Sasha Levin
2012-12-28 14:42           ` JoonSoo Kim
2012-12-28 19:16             ` Yinghai Lu
2012-12-23 20:15 ` [PATCH 3/3] mm, sparse: don't check return value of alloc_bootmem calls Sasha Levin
2012-12-27 22:28   ` David Rientjes
2012-12-27 22:23 ` [PATCH 1/3] mm, sparse: allocate bootmem without panicing in sparse_mem_maps_populate_node David Rientjes
2012-12-27 22:41   ` Sasha Levin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50DCCE5A.4000805@oracle.com \
    --to=sasha.levin@oracle.com \
    --cc=akpm@linux-foundation.org \
    --cc=davem@davemloft.net \
    --cc=hannes@cmpxchg.org \
    --cc=js1304@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=rientjes@google.com \
    --cc=tj@kernel.org \
    --cc=yinghai@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).