Thread (23 messages) 23 messages, 4 authors, 2015-12-23

Re: [PATCH v5 2/7] dax: support dirty DAX entries in radix tree

From: Ross Zwisler <hidden>
Date: 2015-12-21 17:45:34
Also in: linux-fsdevel, linux-mm, linux-xfs, lkml, nvdimm

On Mon, Dec 21, 2015 at 06:15:12PM +0100, Jan Kara wrote:
On Fri 18-12-15 22:22:15, Ross Zwisler wrote:
quoted
Add support for tracking dirty DAX entries in the struct address_space
radix tree.  This tree is already used for dirty page writeback, and it
already supports the use of exceptional (non struct page*) entries.

In order to properly track dirty DAX pages we will insert new exceptional
entries into the radix tree that represent dirty DAX PTE or PMD pages.
These exceptional entries will also contain the writeback addresses for the
PTE or PMD faults that we can use at fsync/msync time.

There are currently two types of exceptional entries (shmem and shadow)
that can be placed into the radix tree, and this adds a third.  We rely on
the fact that only one type of exceptional entry can be found in a given
radix tree based on its usage.  This happens for free with DAX vs shmem but
we explicitly prevent shadow entries from being added to radix trees for
DAX mappings.

The only shadow entries that would be generated for DAX radix trees would
be to track zero page mappings that were created for holes.  These pages
would receive minimal benefit from having shadow entries, and the choice
to have only one type of exceptional entry in a given radix tree makes the
logic simpler both in clear_exceptional_entry() and in the rest of DAX.

Signed-off-by: Ross Zwisler <redacted>
The patch looks good to me. Just one comment: When we have this exclusion
between different types of exceptional entries, there is no real need to
have separate counters of 'shadow' and 'dax' entries, is there? We can have
one 'nrexceptional' counter and don't have to grow struct inode
unnecessarily which would be really welcome since DAX isn't a mainstream
feature. Could you please change the code? Thanks!
Sure, this sounds good.  Thanks!

--
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-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help