From mboxrd@z Thu Jan 1 00:00:00 1970 Date: Mon, 25 Sep 2000 10:52:47 -0600 From: yodaiken@fsmlabs.com Subject: Re: the new VMt Message-ID: <20000925105247.A13935@hq.fsmlabs.com> References: <20000925164249.G2615@redhat.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii In-Reply-To: <20000925164249.G2615@redhat.com>; from Stephen C. Tweedie on Mon, Sep 25, 2000 at 04:42:49PM +0100 Sender: owner-linux-mm@kvack.org Return-Path: To: "Stephen C. Tweedie" Cc: Alan Cox , mingo@elte.hu, Andrea Arcangeli , Marcelo Tosatti , Linus Torvalds , Rik van Riel , Roger Larsson , MM mailing list , linux-kernel@vger.kernel.org List-ID: On Mon, Sep 25, 2000 at 04:42:49PM +0100, Stephen C. Tweedie wrote: > Hi, > > On Mon, Sep 25, 2000 at 04:16:56PM +0100, Alan Cox wrote: > > > > Unless Im missing something here think about this case > > > > 2 active processes, no swap > > > > #1 #2 > > kmalloc 32K kmalloc 16K > > OK OK > > kmalloc 16K kmalloc 32K > > block block > > > > ... and we get two wakeup_kswapd()s. kswapd has PF_MEMALLOC and so is > able to eat memory which processes #1 and #2 are not allowed to touch. > Progress is made, clean pages are discarded and dirty ones queued for > write, memory becomes free again and the world is a better place. > > Or so goes the theory, at least. from fs/select.c walk = out; while(nfds > 0) { poll_table *tmp = (poll_table *) __get_free_page(GFP_KERNEL); if (!tmp) { while(out != NULL) { tmp = out->next; free_page((unsigned long)out); out = tmp; } return NULL; } tmp->nr = 0; tmp->entry = (struct poll_table_entry *)(tmp + 1); tmp->next = NULL; walk->next = tmp; walk = tmp; nfds -=__MAX_POLL_TABLE_ENTRIES; } > > --Stephen > - > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > Please read the FAQ at http://www.tux.org/lkml/ -- --------------------------------------------------------- Victor Yodaiken Finite State Machine Labs: The RTLinux Company. www.fsmlabs.com www.rtlinux.com -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@kvack.org. For more info on Linux MM, see: http://www.linux.eu.org/Linux-MM/