alistair23-linux/fs/fuse
Kirill Tkhai be2ff42c5d fuse: Use hash table to link processing request
We noticed the performance bottleneck in FUSE running our Virtuozzo storage
over rdma. On some types of workload we observe 20% of times spent in
request_find() in profiler.  This function is iterating over long requests
list, and it scales bad.

The patch introduces hash table to reduce the number of iterations, we do
in this function. Hash generating algorithm is taken from hash_add()
function, while 256 lines table is used to store pending requests.  This
fixes problem and improves the performance.

Reported-by: Alexey Kuznetsov <kuznet@virtuozzo.com>
Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com>
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
2018-09-28 16:43:23 +02:00
..
acl.c fuse: Support fuse filesystems outside of init_user_ns 2018-03-20 17:11:44 +01:00
control.c fuse: introduce fc->bg_lock 2018-09-28 16:43:22 +02:00
cuse.c fuse: Support fuse filesystems outside of init_user_ns 2018-03-20 17:11:44 +01:00
dev.c fuse: Use hash table to link processing request 2018-09-28 16:43:23 +02:00
dir.c fuse update for 4.19 2018-08-21 18:47:36 -07:00
file.c fuse: do not take fc->lock in fuse_request_send_background() 2018-09-28 16:43:23 +02:00
fuse_i.h fuse: Use hash table to link processing request 2018-09-28 16:43:23 +02:00
inode.c fuse: Use hash table to link processing request 2018-09-28 16:43:23 +02:00
Kconfig fuse: Add posix ACL support 2016-10-01 07:32:32 +02:00
Makefile fuse: Add posix ACL support 2016-10-01 07:32:32 +02:00
xattr.c fuse: Ensure posix acls are translated outside of init_user_ns 2018-05-31 12:26:10 +02:00