lkml.org 
[lkml]   [1999]   [Jan]   [26]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: MM deadlock [was: Re: arca-vm-8...]
On Tue, 26 Jan 1999, Andrea Arcangeli wrote:

> On Mon, 25 Jan 1999, Stephen C. Tweedie wrote:
>
> > --- mm/filemap.c.~1~ Thu Jan 21 10:26:41 1999
> > +++ mm/filemap.c Mon Jan 25 12:59:38 1999
> > @@ -125,7 +125,7 @@
> > struct page * page;
> > int count;
> >
> > - count = (limit << 1) >> priority;
> > + count = limit >> priority;
> >
> > page = mem_map + clock;
> > do {
> > @@ -147,7 +147,6 @@
> > clock = page - mem_map;
> > }
> >
> > - count--;
>
> OK to remove the << 1 and to move count-- after checking referenced.
>
> > referenced = test_and_clear_bit(PG_referenced, &page->flags);
> >
> > if (PageLocked(page))
> > @@ -159,6 +158,8 @@
> > /* We can't free pages unless there's just one user */
> > if (atomic_read(&page->count) != 1)
> > continue;
> > +
> > + count--;
>
> but this is plain bogus. When your machine will reach 0 freeable pages
> (and that happens a bit before to kill the process because OOM) you'll get
> an infinite loop in shrink_mmap().

So I gues that it won't be hard to lockup 2.2.0 just causing the number of
freeable pages to go to 0. Did somebody tried to go OOM with 2.2.0 yet?

Here I can cause nr_freeable_pages to go to 0 pretty easily (and that
happens just a bit before to get 1 process killed). I hope that 2.2.0 VM
will behave differently.

Andrea Arcangeli


-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.rutgers.edu
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 13:50    [W:0.140 / U:1.096 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site