LKML Archive on lore.kernel.org help / color / mirror / Atom feed
From: Fengguang Wu <wfg@mail.ustc.edu.cn> To: Andrew Morton <akpm@osdl.org> Cc: Martin Peschke <mp3@de.ibm.com>, linux-kernel@vger.kernel.org Subject: [PATCH 3/8] readahead: state based method: prevent tiny size Date: Sat, 27 Jan 2007 16:02:22 +0800 [thread overview] Message-ID: <369886263.59195@ustc.edu.cn> (raw) Message-ID: <20070127082529.463795013@mail.ustc.edu.cn> (raw) In-Reply-To: 20070127080219.161473179@mail.ustc.edu.cn [-- Attachment #1: readahead-state-based-method-prevent-tiny-size.patch --] [-- Type: text/plain, Size: 1581 bytes --] - cancel look-ahead if readahead size is small compared to the look-ahead size, to avoid too small I/O size, and not to add more memory/io pressure on the possibly loaded system. - prevent issuing tiny readahead size, by applying a minimal limit Signed-off-by: Fengguang Wu <wfg@mail.ustc.edu.cn> --- mm/readahead.c | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) --- linux-2.6.20-rc4-mm1.orig/mm/readahead.c +++ linux-2.6.20-rc4-mm1/mm/readahead.c @@ -932,17 +932,21 @@ static int adjust_rala(unsigned long ra_ unsigned long *ra_size, unsigned long *la_size) { /* - * Substract the old look-ahead to get real safe size for the next - * read-ahead request. + * Cancel asynchrous read-ahead, + * if there is a major upsurge of load, or fall of this stream's speed. */ - if (*ra_size > *la_size) - *ra_size -= *la_size; - else { + if (*ra_size <= *la_size * 2) { ra_account(NULL, RA_EVENT_READAHEAD_SHRINK, *ra_size); return 0; } /* + * Substract the old look-ahead to get real safe size for the next + * read-ahead request. + */ + *ra_size -= *la_size; + + /* * Set new la_size according to the (still large) ra_size. */ *la_size = *ra_size / LOOKAHEAD_RATIO; @@ -956,6 +960,13 @@ static void limit_rala(unsigned long ra_ unsigned long stream_shift; /* + * Protect against too small I/O sizes, + * by mapping [0, 4*min] to [min, 4*min]. + */ + if (*ra_size < 4 * MIN_RA_PAGES) + *ra_size = MIN_RA_PAGES + *ra_size * 3 / 4; + + /* * Apply basic upper limits. */ if (*ra_size > ra_max) --
prev parent reply other threads:[~2007-01-27 8:24 UTC|newest] Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top [not found] <369886263.20106@ustc.edu.cn> 2007-01-27 8:02 ` [PATCH 0/8] readahead updates Fengguang Wu [not found] ` <369886263.49250@ustc.edu.cn> 2007-01-27 8:02 ` [PATCH 1/8] readahead: min/max sizes: increase VM_MIN_READAHEAD to 32KB Fengguang Wu [not found] ` <369886263.27547@ustc.edu.cn> 2007-01-27 8:02 ` [PATCH 2/8] readahead: state based method routines: explicitly embed class_new/class_old inside flags Fengguang Wu [not found] ` <369886263.59195@ustc.edu.cn> 2007-01-27 8:02 ` [PATCH 3/8] readahead: state based method: prevent tiny size Fengguang Wu [not found] ` <369886263.12429@ustc.edu.cn> 2007-01-27 8:02 ` [PATCH 4/8] readahead: state based method: move readahead_ratio out of compute_thrashing_threshold() Fengguang Wu [not found] ` <369886264.20106@ustc.edu.cn> 2007-01-27 8:02 ` [PATCH 5/8] readahead: initial method: user recommended size: rename to read_ahead_initial_kb Fengguang Wu [not found] ` <369886264.06097@ustc.edu.cn> 2007-01-27 8:02 ` [PATCH 6/8] readahead: thrashing recovery method fix Fengguang Wu [not found] ` <369886264.76457@ustc.edu.cn> 2007-01-27 8:02 ` [PATCH 7/8] readahead: call scheme: fix thrashed unaligned read Fengguang Wu [not found] ` <369886264.38864@ustc.edu.cn> 2007-01-27 8:02 ` [PATCH 8/8] readahead: laptop mode fix Fengguang Wu 2007-01-31 13:37 ` [PATCH 0/8] readahead updates martin
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=369886263.59195@ustc.edu.cn \ --to=wfg@mail.ustc.edu.cn \ --cc=akpm@osdl.org \ --cc=linux-kernel@vger.kernel.org \ --cc=mp3@de.ibm.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: linkBe 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).