[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <4ECCC407.3040700@kernel.dk>
Date: Wed, 23 Nov 2011 10:59:35 +0100
From: Jens Axboe <axboe@...nel.dk>
To: David Rientjes <rientjes@...gle.com>
CC: Mike Snitzer <snitzer@...hat.com>,
Linus Torvalds <torvalds@...ux-foundation.org>,
Vivek Goyal <vgoyal@...hat.com>,
Dave Young <dyoung@...hat.com>, linux-kernel@...r.kernel.org,
linux-mm@...ck.org, kexec@...ts.infradead.org,
stable@...r.kernel.org
Subject: Re: [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@...hat.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
--
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