Messages in this thread | | | Date | Tue, 26 Jan 1999 19:37:40 +0100 (CET) | From | Andrea Arcangeli <> | Subject | Re: 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/
| |