mbox series

[v6,0/2] FUSE: Implement full atomic open

Message ID 20230707132746.1892211-1-bschubert@ddn.com (mailing list archive)
Headers show
Series FUSE: Implement full atomic open | expand

Message

Bernd Schubert July 7, 2023, 1:27 p.m. UTC
In FUSE, as of now, uncached lookups are expensive over the wire.
E.g additional latencies and stressing (meta data) servers from
thousands of clients. With atomic-open lookup before open
can be avoided.

Here is the link to performance numbers
https://lore.kernel.org/linux-fsdevel/20220322121212.5087-1-dharamhans87@gmail.com/

Here is the libfuse pull request
https://github.com/libfuse/libfuse/pull/813

The patches are passing passthrough_hp xfstests (libfuse part applied),
although we had to introduce umount retries into xfstests, as recent
kernels/xfstests fail umount in some tests with
EBUSY - independent of atomic open.

v6: Addressed Miklos comments and rewrote atomic open into its own
    function and fuse opcode. 
    Dropped for now is the revalidate optimization, we
    have the code/patch, but it needs more testing. Also easier to
    first agree on atomic open and then to land the next optimization.

v5: Addressed comments

v3: Addressed comments

v4: Addressed all comments and refactored the code into 3 separate patches
    respectively for Atomic create, Atomic open, optimizing lookup in
    d_revalidate().


v3: handle review comments

v2: fixed a memory leak in <fuse_atomic_open_common>


Bernd Schubert (1):
  fuse: rename fuse_create_open

Dharmendra Singh (1):
  fuse: introduce atomic open

 fs/fuse/dir.c             | 176 +++++++++++++++++++++++++++++++++++++-
 fs/fuse/fuse_i.h          |   3 +
 include/uapi/linux/fuse.h |   3 +
 3 files changed, 178 insertions(+), 4 deletions(-)