Commit:     e9187bdcbbc06090757d565a3077e1b0ecab23d2
Parent:     0cd82ef1fb8909d6d414f36f291c2f67ca70e2be
Author:     Andy Whitcroft <[EMAIL PROTECTED]>
AuthorDate: Wed Aug 22 14:01:25 2007 -0700
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Wed Aug 22 19:52:45 2007 -0700

    synchronous lumpy reclaim: ensure we count pages transitioning inactive via 
    As pointed out by Mel when reclaim is applied at higher orders a significant
    amount of IO may be started.  As this takes finite time to drain reclaim 
    consider more areas than ultimatly needed to satisfy the request.  This 
    to more reclaim than strictly required and reduced success rates.
    I was able to confirm Mel's test results on systems locally.  These show 
    even under light load the success rates drop off far more than expected.
    Testing with a modified version of his patch (which follows) I was able to
    allocate almost all of ZONE_MOVABLE with a near idle system.  I ran 5 test
    passes sequentially following system boot (the system has 29 hugepages in
      2.6.23-rc1              11  8  6  7  7
      sync_lumpy              28 28 29 29 26
    These show that although hugely better than the near 0% success normally
    expected we can only allocate about a 1/4 of the zone.  Using synchronous
    reclaim for these allocations we get close to 100% as expected.
    I have also run our standard high order tests and these show no regressions 
    allocation success rates at rest, and some significant improvements under
    This patch:
    We are transitioning pages from active to inactive in clear_active_flags,
    those need counting as PGDEACTIVATE vm events.
    Signed-off-by: Andy Whitcroft <[EMAIL PROTECTED]>
    Acked-by: Mel Gorman <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
 mm/vmscan.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)

diff --git a/mm/vmscan.c b/mm/vmscan.c
index d419e10..99ec7fa 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -777,6 +777,7 @@ static unsigned long shrink_inactive_list(unsigned long 
                             (sc->order > PAGE_ALLOC_COSTLY_ORDER)?
                                             ISOLATE_BOTH : ISOLATE_INACTIVE);
                nr_active = clear_active_flags(&page_list);
+               __count_vm_events(PGDEACTIVATE, nr_active);
                __mod_zone_page_state(zone, NR_ACTIVE, -nr_active);
                __mod_zone_page_state(zone, NR_INACTIVE,
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to