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

Cyril Hrubis chrubis@suse.cz
Mon Jan 6 11:35:09 CET 2020


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);

-- 
Cyril Hrubis
chrubis@suse.cz


More information about the ltp mailing list