xarray: Replace exceptional entries
Introduce xarray value entries and tagged pointers to replace radix tree exceptional entries. This is a slight change in encoding to allow the use of an extra bit (we can now store BITS_PER_LONG - 1 bits in a value entry). It is also a change in emphasis; exceptional entries are intimidating and different. As the comment explains, you can choose to store values or pointers in the xarray and they are both first-class citizens. Signed-off-by:Matthew Wilcox <willy@infradead.org> Reviewed-by:
Josef Bacik <jbacik@fb.com>
Showing
- arch/powerpc/include/asm/book3s/64/pgtable.h 1 addition, 3 deletionsarch/powerpc/include/asm/book3s/64/pgtable.h
- arch/powerpc/include/asm/nohash/64/pgtable.h 1 addition, 3 deletionsarch/powerpc/include/asm/nohash/64/pgtable.h
- drivers/gpu/drm/i915/i915_gem.c 7 additions, 10 deletionsdrivers/gpu/drm/i915/i915_gem.c
- drivers/staging/erofs/utils.c 6 additions, 12 deletionsdrivers/staging/erofs/utils.c
- fs/btrfs/compression.c 1 addition, 1 deletionfs/btrfs/compression.c
- fs/dax.c 55 additions, 57 deletionsfs/dax.c
- fs/proc/task_mmu.c 1 addition, 1 deletionfs/proc/task_mmu.c
- include/linux/radix-tree.h 8 additions, 28 deletionsinclude/linux/radix-tree.h
- include/linux/swapops.h 7 additions, 12 deletionsinclude/linux/swapops.h
- include/linux/xarray.h 102 additions, 0 deletionsinclude/linux/xarray.h
- lib/idr.c 25 additions, 35 deletionslib/idr.c
- lib/radix-tree.c 9 additions, 12 deletionslib/radix-tree.c
- mm/filemap.c 5 additions, 5 deletionsmm/filemap.c
- mm/khugepaged.c 1 addition, 1 deletionmm/khugepaged.c
- mm/madvise.c 1 addition, 1 deletionmm/madvise.c
- mm/memcontrol.c 1 addition, 1 deletionmm/memcontrol.c
- mm/mincore.c 1 addition, 1 deletionmm/mincore.c
- mm/readahead.c 1 addition, 1 deletionmm/readahead.c
- mm/shmem.c 5 additions, 5 deletionsmm/shmem.c
- mm/swap.c 1 addition, 1 deletionmm/swap.c
Loading
Please register or sign in to comment