From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754525AbYE3URn (ORCPT ); Fri, 30 May 2008 16:17:43 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id S1752787AbYE3URf (ORCPT ); Fri, 30 May 2008 16:17:35 -0400 Received: from saeurebad.de ([85.214.36.134]:32888 "EHLO saeurebad.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752465AbYE3URf (ORCPT ); Fri, 30 May 2008 16:17:35 -0400 From: Johannes Weiner To: Andrew Morton Cc: Ingo Molnar , Yinghai Lu , Andi Kleen , linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH -mm 11/14] bootmem: respect goal more likely References: <20080530194220.286976884@saeurebad.de> <20080530194739.417271003@saeurebad.de> Date: Fri, 30 May 2008 22:16:56 +0200 In-Reply-To: <20080530194739.417271003@saeurebad.de> (Johannes Weiner's message of "Fri, 30 May 2008 21:42:31 +0200") Message-ID: <87lk1rmts7.fsf@saeurebad.de> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.0.60 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.1.3 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, Johannes Weiner writes: > The old node-agnostic code tried allocating on all nodes starting from > the one with the lowest range. alloc_bootmem_core retried without the > goal if it could not satisfy it and so the goal was only respected at > all when it happened to be on the first (lowest page numbers) node (or > theoretically if allocations failed on all nodes before to the one > holding the goal). > > Introduce a non-panicking helper that starts allocating from the node > holding the goal and falls back only after all thes tries failed. > > Make all other allocation helpers benefit from this new helper. > > Signed-off-by: Johannes Weiner > CC: Ingo Molnar > CC: Yinghai Lu > CC: Andi Kleen > --- > > mm/bootmem.c | 77 +++++++++++++++++++++++++++++++---------------------------- > 1 file changed, 41 insertions(+), 36 deletions(-) > > --- a/mm/bootmem.c > +++ b/mm/bootmem.c > @@ -487,11 +487,33 @@ find_block: > memset(region, 0, size); > return region; > } > + return NULL; > +} Sorry, forgot to update ->last_success handling here. Update coming soon. Hannes