From: Luis Henriques <luis@igalia.com>
To: Miklos Szeredi <miklos@szeredi.hu>
Cc: Bernd Schubert <bschubert@ddn.com>,
Dave Chinner <david@fromorbit.com>,
Matt Harvey <mharvey@jumptrading.com>,
linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v8] fuse: add more control over cache invalidation behaviour
Date: Thu, 13 Mar 2025 11:25:06 +0000 [thread overview]
Message-ID: <875xkdfa0d.fsf@igalia.com> (raw)
In-Reply-To: <CAJfpegvxp6Ah3Br9XUmnz_E5KwfOTC44JTa_Sjt0WGt8cAZKEg@mail.gmail.com> (Miklos Szeredi's message of "Thu, 13 Mar 2025 11:32:04 +0100")
On Thu, Mar 13 2025, Miklos Szeredi wrote:
> On Tue, 11 Mar 2025 at 12:08, Luis Henriques <luis@igalia.com> wrote:
>
>> Well, the use-case I had in mind is, as I mentioned before, CVMFS. I
>> think this file system could benefit from using this mechanism.
>
> We need more than just a hunch that this will work. Having code out
> there that actually uses the new feature is a hard requirement.
>
> It does not need to be actually committed to the cvmfs repo, but some
> indication that the code will be accepted by the maintainers once the
> kernel part is upstream is needed.
OK, makes sense. I do have a local cvmfs patch to use this new
notification. For now it's just a hack to replace the current code. It
has to be cleaned-up so that it uses FUSE_NOTIFY_INC_EPOCH only when it's
available in libfuse. My plan was to do this only after the kernel patch
was merged, but I can try to share an earlier version of it.
>> However, I don't think that measuring the direct benefits is something
>> easily done. At the moment, it uses a thread that tries to drain the
>> cache using the FUSE_NOTIFY_INVAL_{INODE,ENTRY} operations. These are,
>> obviously, operations that are much more expensive than the proposed
>> FUSE_NOTIFY_INC_EPOCH. But, on the other hand, they have *immediate*
>> effect while the new operation does not: without the call to
>> shrink_dcache_sb() it's effect can only be observed in the long run.
>
> How so? Isn't the advantage of FUSE_NOTIFY_INC_EPOCH that it spares
> the server of having to send out FUSE_NOTIFY_INVAL_ENTRY for *all* of
> the currently looked up dentries?
Well, I guess I misunderstood you. I can use my hacked cvmfs to measure
the improvement of removing this loop and replace it with a single
FUSE_NOTIFY_INC_EPOCH. Obviously, the performance improvements will
depend on how many dentries were cached.
>> I can try to come up with some artificial test case for this, but
>> comparing these operations will always need to be done indirectly. And I
>> wonder how useful that would be.
>
> Any test is better than no test.
>
>> So, you're proposing something like having a workqueue that would walk
>> through the entries. And this workqueue would be triggered when the epoch
>> is increased.
>
> Not just. Also should periodically clean up expired dentries.
Hmmm... And would you like this to be done in fuse? Or do you expect this
to me a more generic mechanism in dcache, available for other filesystems
as well?
Cheers,
--
Luís
next prev parent reply other threads:[~2025-03-13 11:25 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-02-26 9:14 [PATCH v8] fuse: add more control over cache invalidation behaviour Luis Henriques
2025-03-07 15:30 ` Luis Henriques
2025-03-10 16:42 ` Miklos Szeredi
2025-03-10 20:11 ` Bernd Schubert
2025-03-13 10:24 ` Miklos Szeredi
2025-03-11 11:08 ` Luis Henriques
2025-03-13 10:32 ` Miklos Szeredi
2025-03-13 11:25 ` Luis Henriques [this message]
2025-03-13 11:39 ` Miklos Szeredi
2025-03-13 12:11 ` Luis Henriques
2025-03-17 11:28 ` Luis Henriques
2025-04-11 15:14 ` Laura Promberger
2025-04-11 15:16 ` Laura Promberger
2025-04-15 10:34 ` Luis Henriques
2025-04-15 10:41 ` Miklos Szeredi
2025-04-15 10:49 ` Luis Henriques
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=875xkdfa0d.fsf@igalia.com \
--to=luis@igalia.com \
--cc=bschubert@ddn.com \
--cc=david@fromorbit.com \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mharvey@jumptrading.com \
--cc=miklos@szeredi.hu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.