lkml.org 
[lkml]   [2001]   [May]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH] VM fixes against 2.4.4-ac6


On Fri, 11 May 2001, Marcelo Tosatti wrote:

> Hi,
>
> The following patch addresses two issues:
>
>
> - Buffer cache pages in the inactive lists are not getting their age
> increased if they get touched by getblk (which will set the referenced bit
> on the page). page_launder() simply cleans the referenced bit on such
> pages and moves them to the active list. To resume: buffercache pages
> suffer more pressure from VM than pagecache pages. That is horrible for
> performance.
>
>
> - When there is no memory available on the system for normal allocations
> (GFP_KERNEL), the tasks may loop in try_to_free_pages() (which is here
> called by __alloc_pages()) without blocking:
>
> - GFP_BUFFER allocations will _never_ block on IO inside
> try_to_free_pages(). They will keep looping inside __alloc_pages()
> until they get a free page.
>
> - __GFP_IO|__GFP_WAIT allocations may not find any way to block on
> IO inside try_to_free_pages() in case we already have other tasks
> inside there (kswapd will be there in such condition, for sure).

Ah, one subtle issue here: if they loop, they'll probably bump
memory_pressure a lot.

That will result in a bigger inactive target, which means aggressive
aging.



-
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 12:52    [W:0.036 / U:0.744 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site