[Bugs] [Bug 1478411] Directory listings on fuse mount are very slow due to small number of getdents () entries
bugzilla at redhat.com
bugzilla at redhat.com
Fri Aug 4 14:02:07 UTC 2017
https://bugzilla.redhat.com/show_bug.cgi?id=1478411
--- Comment #1 from nh2 <nh2-redhatbugzilla at deditus.de> ---
Here's some more info that might hint at what the problem is:
Using the example program for getdents() from
http://man7.org/linux/man-pages/man2/getdents.2.html and running it on my
directory, I got this output (file names blacked out with "a"):
getdents(3, /* 16 entries */, 10240) = 1552
--------------- nread=1552 ---------------
inode# file type d_reclen d_off d_name
-6047993476399939220 regular 88 17156
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-8239326137575567467 regular 88 17176
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-9058837543795989278 regular 112 17202
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-7474310353771725673 regular 112 17228
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-8618906312059539401 regular 112 17254
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-7247259159244687795 regular 112 17280
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-5665523655409565673 regular 88 17300
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-9046493272173795318 regular 88 17320
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-7953905749837767518 regular 88 17340
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-5289646910623071030 regular 88 17360
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-6314634794173123334 regular 88 17380
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-7954285670050863136 regular 88 17412
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-7849401699957688376 regular 88 17432
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-5006798607229018939 regular 88 17452
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-8323485281078848697 regular 112 17478
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-8119158990388255908 regular 112 17504
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
getdents(3, /* 20 entries */, 10240) = 1056
--------------- nread=1056 ---------------
inode# file type d_reclen d_off d_name
-8208236586179861811 regular 48 17874 aaaaaaaaaaaaaaaaaaaaaaaaaa
-5119236985543845211 regular 56 17884 aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-5836971644108853015 regular 48 17894 aaaaaaaaaaaaaaaaaaaaaaaaaa
-9155148501485991780 regular 56 17904 aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-8305938675436910138 regular 56 17916
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-5221102094207784962 regular 56 17928
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-8599523819072935976 regular 48 17938 aaaaaaaaaaaaaaaaaaaaaaaaaa
-5829978250186564000 regular 56 17948 aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-5911118020253503871 regular 48 17958 aaaaaaaaaaaaaaaaaaaaaaaaaa
-6764000214102234557 regular 56 17968 aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-7204082494066266145 regular 56 17980
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-4637505561517422757 regular 48 17990 aaaaaaaaaaaaaaaaaaaaaaaaaa
-9108705813292338787 regular 56 18000 aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-6331907578899300543 regular 48 18010 aaaaaaaaaaaaaaaaaaaaaaaaaa
-6095357471175923268 regular 56 18020 aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-6954382210669410793 regular 56 18032
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-4974133016612012201 regular 48 18042 aaaaaaaaaaaaaaaaaaaaaaaaaa
-5903271582479185642 regular 56 18052 aaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-6924142753799783732 regular 56 18064
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
-6781216297939192739 regular 48 18074 aaaaaaaaaaaaaaaaaaaaaaaaaa
It seems like when the file names are longer, (first block) getdents() returns
less results -- 16 in the above case instead of the usual 20.
So I wonder if there's some fuse-related buffer that gets filled that results
getdents() returning so few entries, and whether I can adjust it somehow.
--
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.
More information about the Bugs
mailing list