lkml.org 
[lkml]   [2004]   [Feb]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Subject[patch] 2.4's sys_readahead is borked
From
Date
In 2.4, sys_readahead() performs readahead against a maximum of half the
number of inactive pages. This is dumb, as it ignores the number of
free pages completely. Worse, in certain situations, such as boot, the
inactive list can be quite small and the free list quite large, but
readahead(2) won't do anything.

The right thing to do is limit sys_readahead() to a maximum of half of
the sum of the number of free pages and inactive pages, which is what
2.6 does.

Attached patch is against 2.4.25-pre8. Please apply.

Robert Love

mm/filemap.c | 2 +-
1 files changed, 1 insertion(+), 1 deletion(-)

diff -urN linux-2.4.25-pre8/mm/filemap.c.orig linux-2.4.25-pre8/mm/filemap.c
--- linux-2.4.25-pre8/mm/filemap.c.orig 2004-02-03 19:13:33.540115456 -0500
+++ linux-2.4.25-pre8/mm/filemap.c 2004-02-03 19:13:49.468693944 -0500
@@ -1965,7 +1965,7 @@
nr = max;

/* And limit it to a sane percentage of the inactive list.. */
- max = nr_inactive_pages / 2;
+ max = (nr_free_pages() + nr_inactive_pages) / 2;
if (nr > max)
nr = max;

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 14:00    [W:1.417 / U:0.192 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site