From: Wu Fengguang <fengguang.wu@intel.com>
To: KOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Cc: Andrew Morton <akpm@linux-foundation.org>,
Randy Dunlap <randy.dunlap@oracle.com>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"hifumi.hisashi@oss.ntt.co.jp" <hifumi.hisashi@oss.ntt.co.jp>,
Jens Axboe <jens.axboe@oracle.com>
Subject: Re: mmotm 2009-06-02-16-11 uploaded (readahead)
Date: Thu, 4 Jun 2009 09:59:04 +0800 [thread overview]
Message-ID: <20090604015904.GA13228@localhost> (raw)
In-Reply-To: <20090604102144.084A.A69D9226@jp.fujitsu.com>
On Thu, Jun 04, 2009 at 09:25:37AM +0800, KOSAKI Motohiro wrote:
> > On Tue, 02 Jun 2009 20:54:39 -0700
> > Randy Dunlap <randy.dunlap@oracle.com> wrote:
> >
> > > akpm@linux-foundation.org wrote:
> > > > The mm-of-the-moment snapshot 2009-06-02-16-11 has been uploaded to
> > > >
> > > > http://userweb.kernel.org/~akpm/mmotm/
> > > >
> > > > and will soon be available at
> > > >
> > > > git://git.zen-sources.org/zen/mmotm.git
> > >
> > >
> > > readahead-add-blk_run_backing_dev.patch:
> > >
> > > mm/readahead.c: In function 'page_cache_async_readahead':
> > > mm/readahead.c:559: error: implicit declaration of function 'blk_run_backing_dev'
> >
> > hm, yeah, CONFIG_BLOCK=n.
> >
> > Doing a block-specific call from inside page_cache_async_readahead() is
> > a bit of a layering violation - this may not be a block-backed
> > filesystem at all.
> >
> > otoh, perhaps blk_run_backing_dev() is wrongly named and defined in the
> > wrong place. Perhaps non-block-backed backing_devs want to implement
> > an unplug-style function too? In which case the whole thing should be
> > renamed and moved outside blkdev.h.
> >
> > If we don't want to do that, shouldn't backing_dev_info.unplug* be
> > wrapped in #ifdef CONFIG_BLOCK? And wasn't it a layering violation to
> > put block-specific things into the backing_dev_info?
> >
> > Jens, talk to me!
> >
> > From the readahead POV: does it make sense to call the backing-dev's
> > "unplug" function even if that isn't a block-based device? Or was this
> > just a weird block-device-only performance problem? Hard to say.
>
> More problematic.
>
> The patch comment says
>
> + /*
> + * Normally the current page is !uptodate and lock_page() will be
> + * immediately called to implicitly unplug the device. However this
> + * is not always true for RAID conifgurations, where data arrives
> + * not strictly in their submission order. In this case we need to
> + * explicitly kick off the IO.
>
>
> However, hifumi-san's test result doesn't have IO reordering log.
> At least the comment is wrong. and We still don't know why nobody can
> reproduce his issue.
Right, as much as I believe the comment documents a legitimate case,
it does not actually explains hifumi's case.
Hifumi, can you help retest with some large readahead size?
Your readahead size (128K) is smaller than your max_sectors_kb (256K),
so two readahead IO requests get merged into one real IO, that means
half of the readahead requests are delayed.
The IO completion size goes down from 512 to 256 sectors:
before patch:
8,0 3 177955 50.050313976 0 C R 8724991 + 512 [0]
8,0 3 177966 50.053380250 0 C R 8725503 + 512 [0]
8,0 3 177977 50.056970395 0 C R 8726015 + 512 [0]
8,0 3 177988 50.060326743 0 C R 8726527 + 512 [0]
8,0 3 177999 50.063922341 0 C R 8727039 + 512 [0]
after patch:
8,0 3 257297 50.000760847 0 C R 9480703 + 256 [0]
8,0 3 257306 50.003034240 0 C R 9480959 + 256 [0]
8,0 3 257307 50.003076338 0 C R 9481215 + 256 [0]
8,0 3 257323 50.004774693 0 C R 9481471 + 256 [0]
8,0 3 257332 50.006865854 0 C R 9481727 + 256 [0]
Thanks,
Fengguang
next prev parent reply other threads:[~2009-06-04 1:59 UTC|newest]
Thread overview: 16+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-02 23:11 mmotm 2009-06-02-16-11 uploaded akpm
2009-06-03 3:54 ` mmotm 2009-06-02-16-11 uploaded (readahead) Randy Dunlap
2009-06-03 20:47 ` Andrew Morton
2009-06-04 1:25 ` KOSAKI Motohiro
2009-06-04 1:59 ` Wu Fengguang [this message]
2009-06-09 3:59 ` Jens Axboe
2009-06-09 4:38 ` Andrew Morton
2009-06-09 4:46 ` Jens Axboe
2009-06-09 4:51 ` Wu Fengguang
2009-06-09 11:01 ` Vladislav Bolkhovitin
2009-06-03 4:12 ` mmotm 2009-06-02-16-11 uploaded (staging) Randy Dunlap
2009-06-03 4:45 ` David Rientjes
2009-06-03 4:55 ` Greg KH
2009-06-03 4:56 ` Andrew Morton
2009-06-03 15:07 ` Randy Dunlap
2009-06-03 4:46 ` Greg KH
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20090604015904.GA13228@localhost \
--to=fengguang.wu@intel.com \
--cc=akpm@linux-foundation.org \
--cc=hifumi.hisashi@oss.ntt.co.jp \
--cc=jens.axboe@oracle.com \
--cc=kosaki.motohiro@jp.fujitsu.com \
--cc=linux-kernel@vger.kernel.org \
--cc=randy.dunlap@oracle.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox