linux-btrfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Chris Mason <chris.mason@oracle.com>
To: Arne Jansen <sensille@gmx.net>
Cc: Linux Btrfs <linux-btrfs@vger.kernel.org>
Subject: Re: [RFC] Tree fragmentation and prefetching
Date: Fri, 25 Mar 2011 16:15:46 -0400	[thread overview]
Message-ID: <1301084093-sup-5455@think> (raw)
In-Reply-To: <4D8CF7AB.4010102@gmx.net>

Excerpts from Arne Jansen's message of 2011-03-25 16:14:35 -0400:
> On 23.03.2011 20:32, Chris Mason wrote:
> > Excerpts from Arne Jansen's message of 2011-03-23 09:06:02 -0400:
> >>
> >> For the implementation I'd need an interface which I haven't been able
> >> to find yet. Currently I can trigger the read of several pages / tree
> >> blocks and wait for the completion of each of them. What I'd need would
> >> be an interface that gives me a callback on each completion or a waiting
> >> function that wakes up on each completion with the information which
> >> pages just completed.
> >> One way to achieve this would be to add a hook, but I gladly take any
> >> implementation hints.
> >
> > We have the bio endio call backs for this, I think that's the only thing
> > you can use.
> >
> 
> ok, so I'll add a new extent state bit EXTENT_READAHEAD and test for it
> in btree_readpage_end_io_hook.

It's also common to use a chain of endio handlers.  If you're allocating
any state for the RA, you just save the original endio handler in your
new struct, and then use your own endio handler that does the readahead
smarts.

-chris

  reply	other threads:[~2011-03-25 20:15 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-23 13:06 [RFC] Tree fragmentation and prefetching Arne Jansen
2011-03-23 15:01 ` Arne Jansen
2011-03-23 19:26 ` Andrey Kuzmin
2011-03-23 20:28   ` Arne Jansen
2011-03-23 21:47     ` Andrey Kuzmin
2011-03-24  1:38     ` Miao Xie
2011-03-24  7:29       ` Arne Jansen
2011-03-24 12:45         ` Miao Xie
2011-03-23 19:32 ` Chris Mason
2011-03-25 20:14   ` Arne Jansen
2011-03-25 20:15     ` Chris Mason [this message]
2011-03-25 20:53       ` Arne Jansen
2011-03-25 21:01         ` Chris Mason

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=1301084093-sup-5455@think \
    --to=chris.mason@oracle.com \
    --cc=linux-btrfs@vger.kernel.org \
    --cc=sensille@gmx.net \
    /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;
as well as URLs for NNTP newsgroup(s).