|
|
Subscribe / Log in / New account

FUSE: Implement full atomic open

From:  Bernd Schubert <bschubert-AT-ddn.com>
To:  linux-fsdevel-AT-vger.kernel.org
Subject:  [PATCH v6 0/2] FUSE: Implement full atomic open
Date:  Fri, 07 Jul 2023 15:27:44 +0200
Message-ID:  <20230707132746.1892211-1-bschubert@ddn.com>
Cc:  bernd.schubert-AT-fastmail.fm, miklos-AT-szeredi.hu, fuse-devel-AT-lists.sourceforge.net, vgoyal-AT-redhat.com, dsingh-AT-ddn.com, Bernd Schubert <bschubert-AT-ddn.com>
Archive-link:  Article

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...

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(-)

-- 
2.37.2



Copyright © 2023, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds