[LTP] [PATCH COMMITTED] tst_device: do sync() before reading test block device stat file

Li Wang liwang@redhat.com
Tue Jan 7 07:16:27 CET 2020


On Mon, Jan 6, 2020 at 6:35 PM Cyril Hrubis <chrubis@suse.cz> wrote:

> Hi!
> > > > > To avoid FS deferred IO metadata/cache interferes test result, so
> we
> > > > > do sync simply before the tst_dev_bytes_written invocation.
> > > >
> > > > Can we do fsync() on the fd instead of full sync()? That should be
> > > > slightly faster.
> > > >
> > >
> > > Probably you miss the previous discussed [1], we use sync() here
> because we
> > > do want to make sure all FS metadata/cache being written back before
> the
> > > testing since there is no obtainable file descriptor 'fd' for the ext4
> > > deferred IO (e.g. initialize the journal and inode tables).
> >
> > Ah, right, we measure I/O to the whole device, so we would have to sync
> > the device in question. Then syncfs() on the fd we got should work
> > right? And it should avoid syncing unrelated filesystems as well.
>
> It wouldn't probably harm to create an inline function in the test
> library just for a sake of documentation, something as:
>
> static inline void tst_dev_sync(int fd)
> {
>         syncfs(fd);
> }
>
>
> Then we end up calling:
>
>         tst_dev_sync(fd);
>         tst_dev_bytes_written(device);
>

Agree.

-- 
Regards,
Li Wang
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.linux.it/pipermail/ltp/attachments/20200107/465be886/attachment.htm>


More information about the ltp mailing list