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

Dave Hansen
2013-08-07T17:40:52Z

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.