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