On Mon, Apr 27, 2020 at 04:47:42PM +0800, Shiyang Ruan wrote: > This patchset is a try to resolve the shared 'page cache' problem for > fsdax. > > In order to track multiple mappings and indexes on one page, I > introduced a dax-rmap rb-tree to manage the relationship. A dax entry > will be associated more than once if is shared. At the second time we > associate this entry, we create this rb-tree and store its root in > page->private(not used in fsdax). Insert (->mapping, ->index) when > dax_associate_entry() and delete it when dax_disassociate_entry(). Do we really want to track all of this on a per-page basis? I would have thought a per-extent basis was more useful. Essentially, create a new address_space for each shared extent. Per page just seems like a huge overhead.