Re: [PATCH v2 0/4] io_uring: call statx directly

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

 



On Tue, May 26 2020 at 16:59:23 -0600, Jens Axboe quoth thus:

> On 5/22/20 10:31 PM, Bijan Mottahedeh wrote:
> > v1 -> v2
> > 
> > - Separate statx and open in io_kiocb 
> > - Remove external declarations for unused statx interfaces
> > 
> > This patch set is a fix for the liburing statx test failure.
> > 
> > The test fails with a "Miscompare between io_uring and statx" error
> > because the statx system call path has additional processing in vfs_statx():
> > 
> >         stat->result_mask |= STATX_MNT_ID;
> >         if (path.mnt->mnt_root == path.dentry)
> >                 stat->attributes |= STATX_ATTR_MOUNT_ROOT;
> >         stat->attributes_mask |= STATX_ATTR_MOUNT_ROOT;
> > 
> > which then results in different result_mask values.
> > 
> > Allowing the system call to be invoked directly simplifies the io_uring
> > interface and avoids potential future incompatibilities.  I'm not sure
> > if there was other reasoning fort not doing so initially.
> > 
> > One issue I cannot account for is the difference in "used" memory reported
> > by free(1) after running the statx a large (10000) number of times.
> > 
> > The difference is significant ~100k and doesn't really change after
> > dropping caches.
> > 
> > I enabled memory leak detection and couldn't see anything related to the test.
> > 
> > Bijan Mottahedeh (4):
> >   io_uring: add io_statx structure
> >   statx: allow system call to be invoked from io_uring
> >   io_uring: call statx directly
> >   statx: hide interfaces no longer used by io_uring
> > 
> >  fs/internal.h |  4 ++--
> >  fs/io_uring.c | 72 +++++++++++++++--------------------------------------------
> >  fs/stat.c     | 37 +++++++++++++++++-------------
> >  3 files changed, 42 insertions(+), 71 deletions(-)
> 
> Thanks, this looks better. For a bit of history, the initial attempt was
> to do the statx without async offload if we could do so without blocking.
> Without that, we may as well simplify it.

I was thinking that there may be use cases for allowing IOSQE_FIXED_FILE +
AT_EMPTY_PATH.  This sounds like it would make such a thing more difficult.

> -- 
> Jens Axboe



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

  Powered by Linux