Re: [PATCH block/for-linus] writeback: fix syncing of I_DIRTY_TIME inodes

From: Dave Chinner
Date: Mon Aug 24 2015 - 04:56:09 EST


On Mon, Aug 24, 2015 at 04:34:37PM +0800, Eryu Guan wrote:
> On Mon, Aug 24, 2015 at 04:24:25PM +1000, Dave Chinner wrote:
> > On Mon, Aug 24, 2015 at 11:18:16AM +0800, Eryu Guan wrote:
> > > On Mon, Aug 24, 2015 at 11:11:23AM +1000, Dave Chinner wrote:
> > > >
> > > > Eryu, can you change the way you run the event trace to be:
> > > >
> > > > $ sudo trace-cmd <options> -o <outfile location> ./check <test options>
> > > >
> > > > rather than running the trace as a background operation elsewhere?
> > > > Maybe that will give better results.
> [snip]
> > Anyway, Eryum long and short of it is that you don't need to worry
> > about testing all the different combinations - we now know that the
> > completion events are occurring, so let's focus on whether the sync
> > code is not waiting for them correctly. Can you trace the following
> > events:
> >
> > xfs_log_force
> > xfs_setfilesize
> > writeback_queue
> > writeback_exec
> > writeback_start
> > writeback_queue_io
> > writeback_written
> > writeback_pages_written
> >
> > basically I'm trying to see if we've got all the BDI events as we'd
> > expect then to be queued and run for sync, and when the ->sync_fs
> > call occurs during the sync process before shutdown and unmount...
>
> I collected two versions of trace info with crc enabled.
>
> http://128.199.137.77/writeback-crc/
>
> This version traced the same events as previous runs.
>
> http://128.199.137.77/writeback-crc-v2/
>
> And this version only traced the events you listed above.

OK, I'll look into these later.

> And the results of other tests to check(all done with v4 xfs, with no
> tracepoints enabled):
>
> > Other things to check (separately):
> > - change godown to godown -f
>
> Passed 100 loops.

Yup, I expected that from the last set of traces - the "-f" flag
triggers a log force before shutdown, and that flushes out
transactions that sync missed.

> > - add a "sleep 5" before running godown after sync
>
> Failed, if you need the trace info please let me know.

Expected, still nothing to flush transactions before shutdown.

> > - add a "sleep 5; sync" before running godown
>
> Passed 100 loops.

expected - sync flushed the transactions it missed on the first
pass.

Thanks for running these tests!

Cheers,

Dave.
--
Dave Chinner
david@xxxxxxxxxxxxx
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/