[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] ext2fs and large stores (> 1.5G)

From: Neal H. Walfield
Subject: Re: [PATCH] ext2fs and large stores (> 1.5G)
Date: 02 May 2003 13:52:06 -0400
User-agent: Gnus/5.0808 (Gnus v5.8.8) Emacs/21.2

>  One thing that
> I couldn't understand is why pager_flush_some is called multiple times
> in libpager/offer-page.c:40.  A single pager_flush_some with WAIT set
> should do the thing.

When pager_flush_some is called by thread A, the mutex is unlocked (as
pager_flush_some can take a long time).  Thus, although the kernel
will return the page to the server (and invalidate any extant
mappings), it may immediately rerequest (i.e. before thread A has
required the lock) because some other thread, B, has obtained the lock
and faulted it in.  To summarize: pager_offer_page needs to make sure
that the page is not in the kernel's cache and it has the lock (making
sure no one else can force the kernel to load the page) before it can
supply a new page to the kernel (as the kernel has the option to
ignore offered pages if it already has in the cache).

> Whatever.  It was my bug that mislead me and the second alpha release
> solve it (though not perfectly).

Can you describe the problem you are having?

reply via email to

[Prev in Thread] Current Thread [Next in Thread]