Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Thu, 12 Apr 2001 12:49:59 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Thu, 12 Apr 2001 12:49:49 -0400 Received: from perninha.conectiva.com.br ([200.250.58.156]:61711 "HELO perninha.conectiva.com.br") by vger.kernel.org with SMTP id ; Thu, 12 Apr 2001 12:49:30 -0400 Date: Thu, 12 Apr 2001 12:08:00 -0300 (BRT) From: Marcelo Tosatti To: Rik van Riel Cc: Alan Cox , Hugh Dickins , Valdis.Kletnieks@vt.edu, linux-kernel@vger.kernel.org Subject: Re: scheduler went mad? In-Reply-To: Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org On Thu, 12 Apr 2001, Rik van Riel wrote: > On Thu, 12 Apr 2001, Alan Cox wrote: > > > > 2.4.3-pre6 quietly made a very significant change there: > > > it used to say "if (!order) goto try_again;" and now just > > > says "goto try_again;". Which seems very sensible since > > > __GFP_WAIT is set, but I do wonder if it was a safe change. > > > We have mechanisms for freeing pages (order 0), but whether > > > any higher orders come out of that is a matter of chance. > > > > The fundamental problem is that it should say > > > > wait_for_mm_progress(); > > goto try_again; > > > > and we dont have that facility right now. > > >From mm/page_alloc.c, around line 453: > > if (gfp_mask & __GFP_WAIT) { > memory_pressure++; > try_to_free_pages(gfp_mask); > wakeup_bdflush(0); > goto try_again; > } > > I guess we should remove the wakeup_bdflush(0) ... who put it > there anyway ? I did :) This should fix it --- mm/page_alloc.c.orig Thu Apr 12 13:47:53 2001 +++ mm/page_alloc.c Thu Apr 12 13:48:06 2001 @@ -454,7 +454,7 @@ if (gfp_mask & __GFP_WAIT) { memory_pressure++; try_to_free_pages(gfp_mask); - wakeup_bdflush(0); + balance_dirty(NODEV); goto try_again; } - 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/