[PATCH 00/13] vfs: Convert file allocation code to use the IDR

From: Sandhya Bankar
Date: Sat Apr 29 2017 - 03:23:49 EST


Currently the file descriptors are allocated using a custom allocator.
This patchset replaces the custom code with an IDR. This replacement will
result in some memory saving for processes with relatively few open files
and improve performance of workloads with very large numbers of open files.

Note: Some more performance benchmark needs to be run on this patchset.
Can anyone please help in runnning benchmark for this patchset.

Matthew Wilcox (5):
idr: Add ability to set/clear tags
idr: Add idr_for_each_entry_tagged()
idr, radix-tree: Add get_tag_batch function
idr, radix-tree: Implement copy_preload
vfs: Add init_task.h include

Sandhya Bankar (8):
vfs: Replace array of file pointers with an IDR
vfs: Remove next_fd from fd alloc code path.
vfs: Remove full_fds_bits from fd allocation code path.
vfs: Use idr_tag_get() in fd_is_open().
vfs: Rewrite close_files()
vfs: Replace close_on_exec bitmap with an IDR tag
vfs: Convert select to use idr_get_tag_batch()
vfs: Delete struct fdtable

fs/compat.c | 6 +-
fs/exec.c | 2 +-
fs/fcntl.c | 2 +-
fs/file.c | 606 ++++++----------------------
fs/proc/array.c | 2 +-
fs/proc/fd.c | 6 +-
fs/select.c | 21 +-
include/linux/fdtable.h | 66 +--
include/linux/file.h | 1 -
include/linux/idr.h | 110 ++++-
include/linux/radix-tree.h | 5 +
lib/idr.c | 30 +-
lib/radix-tree.c | 169 +++++++-
tools/testing/radix-tree/idr-test.c | 85 +++-
tools/testing/radix-tree/linux/radix-tree.h | 2 +
tools/testing/radix-tree/main.c | 38 ++
tools/testing/radix-tree/test.c | 9 +-
tools/testing/radix-tree/test.h | 3 +-
18 files changed, 578 insertions(+), 585 deletions(-)

--
1.8.3.1