Re: the new VMt

Stephen C. Tweedie
2000-09-25T17:43:38Z

Hi,

On Mon, Sep 25, 2000 at 05:51:49PM +0100, Alan Cox wrote:
> > > 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.
>
> 'no swap'

kswapd is perfectly capable of evicting clean pages and triggering any
necessary writeback of dirty filesystem data at this point, even if
there is no swap. If there is truly nothing kswapd can do to recover
here, then we are truly OOM. Otherwise, kswapd should be able to free
the required memory, providing that the PF_MEMALLOC flag allows it to
eat into a reserved set of free pages which nobody else can allocate
once physical free pages gets below a certain threshold.

--Stephen