mirror of
https://github.com/adulau/aha.git
synced 2024-12-29 04:06:22 +00:00
PM/Hibernate: Fix memory shrinking
Commit d979677c4c
("mm: shrink_all_memory(): use sc.nr_reclaimed")
broke the memory shrinking used by hibernation, becuse it did not update
shrink_all_zones() in accordance with the other changes it made.
Fix this by making shrink_all_zones() update sc->nr_reclaimed instead of
overwriting its value.
This fixes http://bugzilla.kernel.org/show_bug.cgi?id=13058
Reported-and-tested-by: Alan Jenkins <alan-jenkins@tuffmail.co.uk>
Signed-off-by: Rafael J. Wysocki <rjw@sisk.pl>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
aefe647572
commit
a21e255361
1 changed files with 3 additions and 2 deletions
|
@ -2088,13 +2088,13 @@ static void shrink_all_zones(unsigned long nr_pages, int prio,
|
||||||
nr_reclaimed += shrink_list(l, nr_to_scan, zone,
|
nr_reclaimed += shrink_list(l, nr_to_scan, zone,
|
||||||
sc, prio);
|
sc, prio);
|
||||||
if (nr_reclaimed >= nr_pages) {
|
if (nr_reclaimed >= nr_pages) {
|
||||||
sc->nr_reclaimed = nr_reclaimed;
|
sc->nr_reclaimed += nr_reclaimed;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
sc->nr_reclaimed = nr_reclaimed;
|
sc->nr_reclaimed += nr_reclaimed;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -2115,6 +2115,7 @@ unsigned long shrink_all_memory(unsigned long nr_pages)
|
||||||
.may_unmap = 0,
|
.may_unmap = 0,
|
||||||
.may_writepage = 1,
|
.may_writepage = 1,
|
||||||
.isolate_pages = isolate_pages_global,
|
.isolate_pages = isolate_pages_global,
|
||||||
|
.nr_reclaimed = 0,
|
||||||
};
|
};
|
||||||
|
|
||||||
current->reclaim_state = &reclaim_state;
|
current->reclaim_state = &reclaim_state;
|
||||||
|
|
Loading…
Reference in a new issue