Re: [PATCH 1/2] [RFC for fuse-next ] fuse: DIO writes always use the same code path

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

 



On Mon, 21 Aug 2023 at 19:48, Bernd Schubert <bschubert@xxxxxxx> wrote:
>
> There were two code paths direct-io writes could
> take. When daemon/server side did not set FOPEN_DIRECT_IO
>     fuse_cache_write_iter -> direct_write_fallback
> and with FOPEN_DIRECT_IO being set
>     fuse_direct_write_iter
>
> Advantage of fuse_direct_write_iter is that it has optimizations
> for parallel DIO writes - it might only take a shared inode lock,
> instead of the exclusive lock.
>
> With commits b5a2a3a0b776/80e4f25262f9 the fuse_direct_write_iter
> path also handles concurrent page IO (dirty flush and page release),
> just the condition on fc->direct_io_relax had to be removed.
>
> Performance wise this basically gives the same improvements as
> commit 153524053bbb, just O_DIRECT is sufficient, without the need
> that server side sets FOPEN_DIRECT_IO
> (it has to set FOPEN_PARALLEL_DIRECT_WRITES), though.

Consolidating the various direct IO paths would be really nice.

Problem is that fuse_direct_write_iter() lacks some code from
generic_file_direct_write() and also completely lacks
direct_write_fallback().   So more thought needs to go into this.

Thanks,
Miklos



[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