mirror of
https://github.com/followmsi/android_kernel_google_msm.git
synced 2024-11-06 23:17:41 +00:00
mm: change initial readahead window size calculation
Change the logic which determines the initial readahead window size such that for small requests (one page) the initial window size will be x4 the size of the original request, regardless of the VM_MAX_READAHEAD value. This prevents a rapid ramp-up that could be caused due to increasing VM_MAX_READAHEAD. Change-Id: I93d59c515d7e6c6d62348790980ff7bd4f434997 Signed-off-by: Lee Susman <lsusman@codeaurora.org>
This commit is contained in:
parent
c8ad3a7446
commit
b91dba25fc
1 changed files with 3 additions and 1 deletions
|
@ -261,6 +261,8 @@ unsigned long ra_submit(struct file_ra_state *ra,
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Set the initial window size, round to next power of 2 and square
|
* Set the initial window size, round to next power of 2 and square
|
||||||
|
* Small size is not dependant on max value - only a one-page read is regarded
|
||||||
|
* as small.
|
||||||
* for small size, x 4 for medium, and x 2 for large
|
* for small size, x 4 for medium, and x 2 for large
|
||||||
* for 128k (32 page) max ra
|
* for 128k (32 page) max ra
|
||||||
* 1-8 page = 32k initial, > 8 page = 128k initial
|
* 1-8 page = 32k initial, > 8 page = 128k initial
|
||||||
|
@ -269,7 +271,7 @@ static unsigned long get_init_ra_size(unsigned long size, unsigned long max)
|
||||||
{
|
{
|
||||||
unsigned long newsize = roundup_pow_of_two(size);
|
unsigned long newsize = roundup_pow_of_two(size);
|
||||||
|
|
||||||
if (newsize <= max / 32)
|
if (newsize <= 1)
|
||||||
newsize = newsize * 4;
|
newsize = newsize * 4;
|
||||||
else if (newsize <= max / 4)
|
else if (newsize <= max / 4)
|
||||||
newsize = newsize * 2;
|
newsize = newsize * 2;
|
||||||
|
|
Loading…
Reference in a new issue