Re: oops if free a locked page

Ingo Molnar (mingo@chiara.csoma.elte.hu)
Tue, 22 Jun 1999 20:04:48 +0200 (CEST)


On Tue, 22 Jun 1999, Andrea Arcangeli wrote:

> On Tue, 22 Jun 1999, Ingo Molnar wrote:
>
> >calling __free_page() with a locked page is fine though - but it must not
> >be the 'final' free.
>
> In some SMP-threaded envinronment you can't know if it is the `final'
> free.

i made this mistake as well - until Linus pointed out the fact that
pagecache get_page()/put_page() are naturally synchronized by the
pagecache spinlock and the combination of page->inode. Buffer-cache pages
are synchronized by the kernel lock and the existence of page->buffers.
[or whatever native buffer-cache lock there is]

normal 'free floating' pages might indeed go away unexpectedly, but
shrink_mmap() should not deal with such pages .. unless you do something
unusual.

-- mingo

-
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/