Page Menu
Home
Software Heritage
Search
Configure Global Search
Log In
Paste
P839
(An Untitled Masterwork)
Active
Public
Actions
Authored by
haltode
on Oct 27 2020, 10:07 AM.
Edit Paste
Archive Paste
View Raw File
Subscribe
Mute Notifications
Award Token
Flag For Later
Tags
None
Subscribers
None
[Question] getdents() calls use very small buffer when FUSE mount
Hello all!
I am currently working on a FUSE filesystem where a directory can
contain a large amount of entries. When running `strace ls` I can see a
lot of calls to getdents64() but with *very* small buffer:
getdents64(3, /* 19 entries */, 32768) = 1368
getdents64(3, /* 19 entries */, 32768) = 1368
getdents64(3, /* 19 entries */, 32768) = 1368
getdents64(3, /* 19 entries */, 32768) = 1368
getdents64(3, /* 19 entries */, 32768) = 1368
getdents64(3, /* 19 entries */, 32768) = 1368
getdents64(3, /* 19 entries */, 32768) = 1368
...
This is completely killing the performances of the filesystem and I was
wondering what causes such buffer size limitation? I stumbled upon a few
posts, like this one:
https://bugzilla.redhat.com/show_bug.cgi?id=1478411 about the same kind
of problem, however I am not sure whether there is still a pending patch
somewhere or a particular option to set in order to fix this issue?
My system is:
- Debian GNU/Linux bullseye/sid (testing)
- Linux kernel 5.8.0-2-amd64 (x86-64)
- libfuse 3.10.0
Thanks in advance for your insights.
Sincerely,
Event Timeline
haltode
created this paste.
Oct 27 2020, 10:07 AM
2020-10-27 10:07:18 (UTC+1)
haltode
created this object in space
S1 Public
.
Log In to Comment