mirror of
https://github.com/torvalds/linux.git
synced 2024-11-10 14:11:52 +00:00
[PATCH] vmscan: emove obsolete checks from shrink_list() and fix unlikely in refill_inactive_zone()
As suggested by Marcelo: 1. The optimization introduced recently for not calling page_referenced() during zone reclaim makes two additional checks in shrink_list unnecessary. 2. The if (unlikely(sc->may_swap)) in refill_inactive_zone is optimized for the zone_reclaim case. However, most peoples system only does swap. Undo that. Signed-off-by: Christoph Lameter <clameter@sgi.com> Cc: Marcelo Tosatti <marcelo.tosatti@cyclades.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
a7290ee08e
commit
6e5ef1a96e
13
mm/vmscan.c
13
mm/vmscan.c
@ -460,12 +460,9 @@ static unsigned long shrink_page_list(struct list_head *page_list,
|
||||
* Anonymous process memory has backing store?
|
||||
* Try to allocate it some swap space here.
|
||||
*/
|
||||
if (PageAnon(page) && !PageSwapCache(page)) {
|
||||
if (!sc->may_swap)
|
||||
goto keep_locked;
|
||||
if (PageAnon(page) && !PageSwapCache(page))
|
||||
if (!add_to_swap(page, GFP_ATOMIC))
|
||||
goto activate_locked;
|
||||
}
|
||||
#endif /* CONFIG_SWAP */
|
||||
|
||||
mapping = page_mapping(page);
|
||||
@ -477,12 +474,6 @@ static unsigned long shrink_page_list(struct list_head *page_list,
|
||||
* processes. Try to unmap it here.
|
||||
*/
|
||||
if (page_mapped(page) && mapping) {
|
||||
/*
|
||||
* No unmapping if we do not swap
|
||||
*/
|
||||
if (!sc->may_swap)
|
||||
goto keep_locked;
|
||||
|
||||
switch (try_to_unmap(page, 0)) {
|
||||
case SWAP_FAIL:
|
||||
goto activate_locked;
|
||||
@ -1205,7 +1196,7 @@ static void shrink_active_list(unsigned long nr_pages, struct zone *zone,
|
||||
struct pagevec pvec;
|
||||
int reclaim_mapped = 0;
|
||||
|
||||
if (unlikely(sc->may_swap)) {
|
||||
if (sc->may_swap) {
|
||||
long mapped_ratio;
|
||||
long distress;
|
||||
long swap_tendency;
|
||||
|
Loading…
Reference in New Issue
Block a user