On Wed, Dec 27, 2017 at 04:06:36PM -0600, Christoph Lameter wrote: > This is a patchset on top of Matthew Wilcox Xarray code and implements > object migration of xarray nodes. The migration is integrated into > the defragmetation and shrinking logic of the slab allocator. ..... > This is only possible for xarray for now but it would be worthwhile > to extend this to dentries and inodes. Christoph, you keep saying this is the goal, but I'm yet to see a solution proposed for the atomic replacement of all the pointers to an inode from external objects. An inode that has no active references still has an awful lot of passive and internal references that need to be dealt with. e.g. racing page operations accessing mapping->host, the inode in various lists (e.g. superblock inode list, writeback lists, etc), the inode lookup cache(s), backpointers from LSMs, fsnotify marks, crypto information, internal filesystem pointers (e.g. log items, journal handles, buffer references, etc) and so on. And each filesystem has a different set of passive references, too. Oh, and I haven't even mentioned deadlocks yet, either. :P IOWs, just saying "it would be worthwhile to extend this to dentries and inodes" completely misrepresents the sheer complexity of doing so. We've known that atomic replacement is the big problem for defragging inodes and dentries since this work was started, what, more than 10 years? And while there's been many revisions of the core defrag code since then, there has been no credible solution presented for atomic replacement of objects with complex external references. This is a show-stopper for inode/dentry slab defrag, and I don't see that this new patchset is any different... Cheers, Dave. -- Dave Chinner dchinner@xxxxxxxxxx -- To unsubscribe, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>