Re: [RFC 0/3] Add madvise(..., MADV_WILLWRITE)

From: Dave Hansen
Date: Wed Aug 07 2013 - 13:40:59 EST


On 08/07/2013 06:40 AM, Jan Kara wrote:
> One question before I look at the patches: Why don't you use fallocate()
> in your application? The functionality you require seems to be pretty
> similar to it - writing to an already allocated block is usually quick.

One problem I've seen is that it still costs you a fault per-page to get
the PTEs in to a state where you can write to the memory. MADV_WILLNEED
will do readahead to get the page cache filled, but it still leaves the
pages unmapped. Those faults get expensive when you're trying to do a
couple hundred million of them all at once.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/