Re: [Bug #13726] fio sync read 4k block size 35% regression

Zhang, Yanmin
2009-07-10T07:41:45Z

On Fri, 2009-07-10 at 14:37 +0800, Wu Fengguang wrote:
> On Tue, Jul 07, 2009 at 02:06:42PM +0800, Zhang, Yanmin wrote:
> > On Tue, 2009-07-07 at 02:01 +0200, Rafael J. Wysocki wrote:
> > > This message has been generated automatically as a part of a report
> > > of recent regressions.
> > >
> > > The following bug entry is on the current list of known regressions
> > > from 2.6.30. Please verify if it still should be listed and let me know
> > > (either way).
> > >
> > >
> > > Bug-Entry : http://bugzilla.kernel.org/show_bug.cgi?id=13726
> > > Subject : fio sync read 4k block size 35% regression
> > > Submitter : Zhang, Yanmin <yanmin_zhang@linux.intel.com>
> > > Date : 2009-07-01 11:25 (6 days old)
> > > First-Bad-Commit: http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=51daa88ebd8e0d437289f589af29d4b39379ea76
> > > References : http://lkml.org/lkml/2009/6/30/679
> > > Handled-By : Wu Fengguang <fengguang.wu@intel.com>
> > Fengguang,
> >
> > I'm still working on it now. The new testing against 2.6.31-rc2 is ongoing.
> > fio sync/mmap read has new behavior. I did collect some data. But suddenly
> > with new created data, the fio_sync_read_4k regression disappeared, while
>
> Do you mean the fio_sync_read_4k regression disappeared because we are
> collecting data with lots of printks?
No. I recreated the data and the regression disappeared.

>
> > fio_mmap_read is still there. Originally, the testing and bisect were stable.
> > Let me check what happens firstly.
>
> Thanks! What's your fio_mmap_read job file and the readahead traces?
I dumped trace data of fio and found the sync read isn't really sequential. I
create many processes and every process could read a group of files. The trace
shows fio reads a record of a file, then switch to another file to read. My
original assumption is a process reads the complete file sequentially and then
read the 2nd file. Now I upgrade fio the latest version and add parameter
file_service_type=random:4000000 to rerun all testing.