[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090715070617.GB6145@localhost>
Date: Wed, 15 Jul 2009 15:06:17 +0800
From: Wu Fengguang <fengguang.wu@...el.com>
To: Vladislav Bolkhovitin <vst@...b.net>
Cc: Ronald Moesbergen <intercommit@...il.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"akpm@...ux-foundation.org" <akpm@...ux-foundation.org>,
"kosaki.motohiro@...fujitsu.com" <kosaki.motohiro@...fujitsu.com>,
"Alan.Brunelle@...com" <Alan.Brunelle@...com>,
"hifumi.hisashi@....ntt.co.jp" <hifumi.hisashi@....ntt.co.jp>,
"linux-fsdevel@...r.kernel.org" <linux-fsdevel@...r.kernel.org>,
"jens.axboe@...cle.com" <jens.axboe@...cle.com>,
"randy.dunlap@...cle.com" <randy.dunlap@...cle.com>,
Bart Van Assche <bart.vanassche@...il.com>
Subject: Re: [RESEND] [PATCH] readahead:add blk_run_backing_dev
On Wed, Jul 15, 2009 at 02:52:27AM +0800, Vladislav Bolkhovitin wrote:
>
> Wu Fengguang, on 07/13/2009 04:36 PM wrote:
> >> Test done with XFS on both the target and the initiator. This confirms
> >> your findings, using files instead of block devices is faster, but
> >> only when using the io_context patch.
> >
> > It shows that the one really matters is the io_context patch,
> > even when context readahead is running. I guess what happened
> > in the tests are:
> > - without readahead (or readahead algorithm failed to do proper
> > sequential readaheads), the SCST processes will be submitting
> > small but close to each other IOs. CFQ relies on the io_context
> > patch to prevent unnecessary idling.
> > - with proper readahead, the SCST processes will also be submitting
> > close readahead IOs. For example, one file's 100-102MB pages is
> > readahead by process A, while its 102-104MB pages may be
> > readahead by process B. In this case CFQ will also idle waiting
> > for process A to submit the next IO, but in fact that IO is being
> > submitted by process B. So the io_context patch is still necessary
> > even when context readahead is working fine. I guess context
> > readahead do have the added value of possibly enlarging the IO size
> > (however this benchmark seems to not very sensitive to IO size).
>
> Looks like the truth. Although with 2MB RA I expect CFQ to do idling >10
> times less, which should bring bigger improvement than few %%.
>
> For how long CFQ idles? For HZ/125, i.e. 8 ms with HZ 250?
Yes, 8ms by default. Note that the 8ms idle time is armed when the
last IO from current process completes. So it would be definitely a
waste if the cooperative process submitted the next read/readahead
IO within this 8ms idle window (without cfq_coop.patch).
Thanks,
Fengguang
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists