Re: Invalidating cached FUSE directory entries

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, Jan 31, 2019 at 2:57 AM Chad Austin <chadaustin@xxxxxx> wrote:
>
> On a recent kernel with readdir caching and FUSE_NO_OPENDIR_SUPPORT
> (and this follow-on patch:
> https://patchwork.kernel.org/patch/10785105/ ), I benchmarked our
> source control FUSE filesystem. With hot caches and zero requests
> being made to userspace, I could do a full directory crawl of a major
> subset of our repository in under 3 seconds. When I ran the same test
> against ext4 and btrfs, it took between 3 and 6 seconds. Awesome!
>
> However, though we were correctly sending FUSE_NOTIFY_INVAL_ENTRY
> whenever changing a directory inode's entry, this did not flush the
> readdir pagecache. It looks to me like FUSE_NOTIFY_INVAL_ENTRY only
> invalidates the readdir cache if the dcache has an entry with the
> given name. Whether that's true is entirely out of userspace's hands.
>
> We worked around it by also explicitly sending FUSE_NOTIFY_INVAL_INODE
> once per inode if we ever sent FUSE_NOTIFY_INVAL_ENTRY. But this
> increases our invalidation traffic and seems unnecessary.
>
> What do you think about having FUSE_NOTIFY_INVAL_ENTRY also
> unconditionally invalidate the readdir cache?

Makes sense.

Thanks,
Miklos



[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]

  Powered by Linux