Messages in this thread | | | Date | Wed, 23 Nov 2011 10:59:35 +0100 | From | Jens Axboe <> | 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@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
| |