Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754529AbYKXVx6 (ORCPT ); Mon, 24 Nov 2008 16:53:58 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752987AbYKXVxo (ORCPT ); Mon, 24 Nov 2008 16:53:44 -0500 Received: from fxip-0047f.externet.hu ([88.209.222.127]:54534 "EHLO pomaz-ex.szeredi.hu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753889AbYKXVxn (ORCPT ); Mon, 24 Nov 2008 16:53:43 -0500 To: linux-mm@kvack.org CC: cl@linux-foundation.org, penberg@cs.helsinki.fi, david@fromorbit.com, peterz@infradead.org, linux-kernel@vger.kernel.org Subject: [RFC PATCH] slab: __GFP_NOWARN not being propagated from mempool_alloc() Message-Id: From: Miklos Szeredi Date: Mon, 24 Nov 2008 22:53:19 +0100 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1268 Lines: 37 We see page allocation failure warnings on the mempool_alloc() path. See this lkml posting for example: http://lkml.org/lkml/2008/10/27/100 The cause is that on NUMA, alloc_slabmgmt() clears __GFP_NOWARN, together with __GFP_THISNODE and __GFP_NORETRY. But AFAICS it really only wants to clear __GFP_THISNODE. Does this patch looks good? Warning: it's completely untested. Miklos --- mm/slab.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) Index: linux-2.6/mm/slab.c =================================================================== --- linux-2.6.orig/mm/slab.c 2008-10-24 12:40:34.000000000 +0200 +++ linux-2.6/mm/slab.c 2008-11-24 22:17:04.000000000 +0100 @@ -2609,7 +2609,8 @@ static struct slab *alloc_slabmgmt(struc if (OFF_SLAB(cachep)) { /* Slab management obj is off-slab. */ slabp = kmem_cache_alloc_node(cachep->slabp_cache, - local_flags & ~GFP_THISNODE, nodeid); + local_flags & ~__GFP_THISNODE, + nodeid); if (!slabp) return NULL; } else { -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/