[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20070612025201.GA6447@mail.ustc.edu.cn>
Date: Tue, 12 Jun 2007 10:52:01 +0800
From: Fengguang Wu <wfg@...l.ustc.edu.cn>
To: Rusty Russell <rusty@...tcorp.com.au>
Cc: Andrew Morton <akpm@...l.org>, linux-kernel@...r.kernel.org,
Andi Kleen <andi@...stfloor.org>,
Jens Axboe <jens.axboe@...cle.com>,
Oleg Nesterov <oleg@...sign.ru>,
Steven Pratt <slpratt@...tin.ibm.com>,
Ram Pai <linuxram@...ibm.com>
Subject: Re: [PATCH 1/9] readahead: introduce PG_readahead
Hi Rusty,
On Tue, Jun 12, 2007 at 11:04:54AM +1000, Rusty Russell wrote:
> On Thu, 2007-05-17 at 06:47 +0800, Fengguang Wu wrote:
> > plain text document attachment (mm-introduce-pg_readahead.patch)
> > Introduce a new page flag: PG_readahead.
> >
> > It acts as a look-ahead mark, which tells the page reader:
> > Hey, it's time to invoke the read-ahead logic. For the sake of I/O pipelining,
> > don't wait until it runs out of cached pages!
>
> Hi Fengguang!
>
> I've been reading your patches, and I have some (possibly dumb!)
> questions.
>
> For this patch: why set a bit in the page, rather than keep a value
> inside the "struct file_ra_state"?
Good question. I should have documented it in the patch ;)
The short answer:
there can be multiple read streams per fd, i.e. interleaved reads.
file_ra_state can not easily track all of the streams. Solaris zfs
does it by managing a list in struct dnode. While PG_readahead plus
the context based readahead(http://lkml.org/lkml/2006/11/15/54) makes
another solution. The two solutions are comparable in complexity.
The context based readahead is a bit more feature rich: it is sensible
to memory pressure, and supports an unlimited number of streams. Note
that random reads can be regarded as a huge number of one-shot streams,
which can interfere with zfs's list-based readahead states badly.
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