Re: [PATCH v9 0/7] fuse: full atomic open and atomic-open-revalidate

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

 



On 9/21/23 11:33, Amir Goldstein wrote:
> On Thu, Sep 21, 2023 at 9:31 AM Bernd Schubert <bschubert@xxxxxxx> wrote:
>>
>> 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@xxxxxxxxx/
>>
>> 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. (Although outstanding for v7)
> 
> Hi Bernd!
> 
> I was using xfstests to test passthrough_hp (for FUSE kernel passthrough).
> FYI, I have made some improvements to the mount helper
> in libfuse [1] to support remount, which helps pass a few tests.

Thanks, just asked there to send it separate to upstream.

> 
> So far, I have all the tests in group -g quick.rw pass with the baseline
> passthrough_hp (over xfs).
> 
> Do you have a baseline for the entire quick/auto group to share with me?

Please find my results attached. I have opened a libfuse issue for generic/477,
(open_by_handle_at tests) but I'm not sure if this is passthrough_hp only (it
trusts the passed node id, without checking if there is an inode object for it).
Possibly fuse.ko passes an invalide node id - this is something for a rainy
weekend (or so) to investigate...


> Can you share the patch that you are using to avoid the EBUSY errors?


The simple version to avoid _most_ of EBUSY is this


diff --git a/common/rc b/common/rc
index 741579af..a40fca3b 100644
--- a/common/rc
+++ b/common/rc
@@ -305,6 +305,7 @@ _scratch_mount_idmapped()
  
  _scratch_unmount()
  {
+       sync
         case "$FSTYP" in
         overlay)
                 _overlay_scratch_unmount



The better version is this
https://github.com/kdave/xfstests/commit/33a15af07bb044e2773a83df1c7e0a0df280a4b7

> 
> Note that Chritian has suggested a method to use inotify
> IN_UNMOUNT event to wait for sb shutdown in fstests [2].

Thanks, I had seen the discussion. Although I (silently) wondered if something
like MNT_BLOCk as umount2 flag wouldn't be easier.

> 
> Thanks,
> Amir.
> 
> [1] https://github.com/amir73il/libfuse/commits/fuse-backing-fd
> [2] https://lore.kernel.org/linux-fsdevel/20230908-verflachen-neudefinition-4da649d673a9@brauner/


Thanks,
Bernd

Attachment: xfstests-unpatched-6.5.log.2023-09-19-213432.gz
Description: xfstests-unpatched-6.5.log.2023-09-19-213432.gz


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

  Powered by Linux