Messages in this thread Patch in this message | | | Date | Tue, 3 Nov 2009 00:35:31 +0900 (JST) | From | KOSAKI Motohiro <> | Subject | Re: [PATCHv2 2/5] vmscan: Kill hibernation specific reclaim logic and unify it |
| |
Hi
Thank you for the reviewing :)
> > 2) shrink_all_zone() try to shrink all pages at a time. but it doesn't works > > fine on numa system. > > example) > > System has 4GB memory and each node have 2GB. and hibernate need 1GB. > > > > optimal) > > steal 500MB from each node. > > shrink_all_zones) > > steal 1GB from node-0. > > I haven't given much thought to numa awareness in hibernate code, but I > can say that the shrink_all_memory interface is woefully inadequate as > far as zone awareness goes. Since lowmem needs to be atomically restored > before we can restore highmem, we really need to be able to ask for a > particular number of pages of a particular zone type to be freed.
Honestly, I am not suspend/hibernation expert. Can I ask why caller need to know per-zone number of freed pages information? if hibernation don't need highmem. following incremental patch prevent highmem reclaim perfectly. Is it enough?
--- mm/vmscan.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/mm/vmscan.c b/mm/vmscan.c index e6ea011..7fb3435 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -2265,7 +2265,7 @@ unsigned long shrink_all_memory(unsigned long nr_to_reclaim) { struct reclaim_state reclaim_state; struct scan_control sc = { - .gfp_mask = GFP_HIGHUSER_MOVABLE, + .gfp_mask = GFP_KERNEL, .may_swap = 1, .may_unmap = 1, .may_writepage = 1, -- 1.6.2.5
| |