On Wed, Jan 11, 2017 at 12:51:43PM +0100, Jan Kara wrote: > On Wed 11-01-17 11:29:28, Miklos Szeredi wrote: > > I know there's work on this for xfs, but could this be done in generic mm > > code? > > > > What are the obstacles? page->mapping and page->index are the obvious > > ones. > > Yes, these two are the main that come to my mind. Also you'd need to > somehow share the mapping->i_mmap tree so that unmap_mapping_range() works. > > > If that's too difficult is it maybe enough to share mappings between > > files while they are completely identical and clone the mapping when > > necessary? > > Well, but how would the page->mapping->host indirection work? Even if you > have identical contents of the mappings, you still need to be aware there > are several inodes behind them and you need to pick the right one > somehow... > > > All COW filesystems would benefit, as well as layered ones: lots of > > fuse fs, and in some cases overlayfs too. > > > > Related: what can DAX do in the presence of cloned block? > > For DAX handling a block COW should be doable if that is what you are > asking about. Handling of blocks that can be written to while they are > shared will be rather difficult (you have problems with keeping dirty bits > in the radix tree consistent if nothing else). I'm also interested in this topic, though I haven't gotten any further than a hand-wavy notion of handling cow by allocating new blocks, memcpy the contents to the new blocks (how?), then update the mappings to point to the new blocks (how?). It looks a lot easier now with the iomap stuff, but that's as far as I got. :) (IOWs it basically took all the time since the last LSF to get reflink polished enough to handle regular files reasonably well.) --D > > Honza > -- > Jan Kara <jack@xxxxxxxx> > SUSE Labs, CR > -- > To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html