[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Extensions to mincore
Hi,
On Tue, Mar 21, 2000 at 04:55:32PM +0100, Jamie Lokier wrote:
>
> Didn't you read a few paragraphs down, where I explain how to implement
> this? You've got struct page. It is enough for private mappings, and
> we don't need this feature for shared mappings.
Umm, yes, but just saying "we'll solve synchronisation problems by
stopping all the other threads" hardly seems like a "solution" to me:
more of a workaround of the problem! mprotect() does work correctly
without stopping other threads.
> It would be enough the say "the mincore accessed/dirty bits are not
> guaranteed to be accurate if pages are accessed by concurrent threads
> during the mincore call".
Exactly why you need mprotect, which _does_ make the necessary
guarantees.
Oh, and suggesting that we can obtain the dirty bit by assuming all
mappings are private doesn't work either. Private mappings *need* a
per-pte (NOT per-page, but per-pte) dirty bit to distinguish between
pages shared with the underlying mapped object, and pages which have
been modified by the local process.
--Stephen
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux.eu.org/Linux-MM/