lkml.org 
[lkml]   [2011]   [Nov]   [23]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [patch v2 for-3.2] block: initialize request_queue's numa node during allocation
On 2011-11-23 02:14, David Rientjes wrote:
> From: Mike Snitzer <snitzer@redhat.com>
>
> struct request_queue is allocated with __GFP_ZERO so its "node" field is
> zero before initialization. This causes an oops if node 0 is offline in
> the page allocator because its zonelists are not initialized. From Dave
> Young's dmesg:
>
> SRAT: Node 1 PXM 2 0-d0000000
> SRAT: Node 1 PXM 2 100000000-330000000
> SRAT: Node 0 PXM 1 330000000-630000000
> Initmem setup node 1 0000000000000000-000000000affb000
> ...
> Built 1 zonelists in Node order, mobility grouping on.
> ...
> BUG: unable to handle kernel paging request at 0000000000001c08
> IP: [<ffffffff8111c355>] __alloc_pages_nodemask+0xb5/0x870
>
> and __alloc_pages_nodemask+0xb5 translates to a NULL pointer on
> zonelist->_zonerefs.
>
> The fix is to initialize q->node at the time of allocation so the correct
> node is passed to the slab allocator later.
>
> Since blk_init_allocated_queue_node() is no longer needed, merge it with
> blk_init_allocated_queue().

Thanks, queued for current release.

--
Jens Axboe



\
 
 \ /
  Last update: 2011-11-23 11:01    [W:0.040 / U:0.152 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site