public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Wu Fengguang <wfg@mail.ustc.edu.cn>
To: Andrew Morton <akpm@osdl.org>
Cc: linux-kernel@vger.kernel.org
Subject: [updated PATCH 1/6] readahead: context based method - slow start
Date: Mon, 26 Jun 2006 10:35:29 +0800	[thread overview]
Message-ID: <351289316.15645@ustc.edu.cn> (raw)
Message-ID: <20060626023529.GB6120@mail.ustc.edu.cn> (raw)
In-Reply-To: <20060625130921.549904049@localhost.localdomain>

The context method will lead to noticable overhead(readahead miss)
on very sparse random reads.

Having the readahead window to start slowly makes it much better.
But still startup quick if the user prefers sparse readahead.

Benchmarks of reading randomly 100,000 pages on a 1000,000 pages _sparse_ file:

        ARA before patch          ARA                STOCK
        ================    ================    ================
real    2.779s    2.782s    2.552s    2.606s    2.477s    2.521s
user    1.120s    1.184s    1.133s    1.155s    1.097s    1.159s
sys     1.248s    1.208s    1.093s    1.086s    1.079s    1.064s

Signed-off-by: Wu Fengguang <wfg@mail.ustc.edu.cn>
---

--- linux-2.6.17-mm2.orig/mm/readahead.c
+++ linux-2.6.17-mm2/mm/readahead.c
@@ -1548,6 +1548,12 @@ try_context_based_readahead(struct addre
 			return -1;
 	} else if (prev_page || probe_page(mapping, index - 1)) {
 		ra_index = index;
+		/*
+		 * Slow start of readahead window.
+		 * It helps avoid most readahead miss on sparse random reads.
+		 */
+		if (readahead_hit_rate == 1)
+			ra_min = 1;
 	} else if (readahead_hit_rate > 1) {
 		ra_index = find_segtail_backward(mapping, index,
 						readahead_hit_rate + ra_min);

  parent reply	other threads:[~2006-06-26  2:35 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20060625130704.464870100@localhost.localdomain>
2006-06-25 13:07 ` [PATCH 0/6] Adaptive readahead updates 3 Wu Fengguang
     [not found] ` <20060625130921.549904049@localhost.localdomain>
2006-06-25 13:07   ` [PATCH 1/6] readahead: context based method - slow start Wu Fengguang
     [not found]   ` <20060626023529.GB6120@mail.ustc.edu.cn>
2006-06-26  2:35     ` Wu Fengguang [this message]
     [not found] ` <20060625130921.987235199@localhost.localdomain>
2006-06-25 13:07   ` [PATCH 2/6] readahead: backward prefetching method fix Wu Fengguang
     [not found] ` <20060625130922.216691316@localhost.localdomain>
2006-06-25 13:07   ` [PATCH 3/6] readahead: kconfig option READAHEAD_ALLOW_OVERHEADS Wu Fengguang
     [not found] ` <20060625130922.816467605@localhost.localdomain>
2006-06-25 13:07   ` [PATCH 5/6] readahead: kconfig option READAHEAD_HIT_FEEDBACK Wu Fengguang
     [not found] ` <20060625130923.154258797@localhost.localdomain>
2006-06-25 13:07   ` [PATCH 6/6] readahead: remove the size limit of max_sectors_kb on read_ahead_kb Wu Fengguang
     [not found] ` <20060626015256.GA6120@mail.ustc.edu.cn>
2006-06-26  1:52   ` [PATCH 0/6] Adaptive readahead updates 3 Wu Fengguang

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=351289316.15645@ustc.edu.cn \
    --to=wfg@mail.ustc.edu.cn \
    --cc=akpm@osdl.org \
    --cc=linux-kernel@vger.kernel.org \
    /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