Messages in this thread | ![/](/images/icornerl.gif) | | Date | Mon, 24 Aug 2015 18:55:49 +1000 | From | Dave Chinner <> | Subject | Re: [PATCH block/for-linus] writeback: fix syncing of I_DIRTY_TIME inodes |
| |
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@fromorbit.com
| ![\](/images/icornerr.gif) |