On Tue, Feb 28, 2017 at 03:32:12PM -0600, Christoph Lameter wrote: > This has come up lots of times. We talked about this at linux.conf.au > again and agreed to try to make the radix tree movable. The radix tree is not movable given its current API. In order to move a node, we need to be able to lock the tree to prevent simultaneous modification by another CPU. But the radix tree API makes callers responsible for their own locking -- we don't even know if it's locked by a mutex or a spinlock, much less which lock protects this tree. This was one of my motivations for the xarray. The xarray handles its own locking, so we can always lock out other CPUs from modifying the array. We still have to take care of RCU walkers, but that's straightforward to handle. I have a prototype patch for the radix tree (ignoring the locking problem), so I can port that over to the xarray and post that for comment tomorrow. Also the xarray doesn't use huge numbers of preallocated nodes, so that'll reduce the pressure on the memory allocator somewhat. -- 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>