Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 6866
b: refs/heads/master
c: 53e9a61
h: refs/heads/master
v: v3
  • Loading branch information
Martin Hicks authored and Linus Torvalds committed Sep 5, 2005
1 parent f8b92ec commit c24a3e6
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 6 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: bce5f6ba340b09d8b29902add204bb95a6d3d88b
refs/heads/master: 53e9a6159fdc6419874ce4d86d3577dbedc77b62
2 changes: 1 addition & 1 deletion trunk/mm/page_alloc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1909,7 +1909,7 @@ static void __init free_area_init_core(struct pglist_data *pgdat,
zone->nr_scan_inactive = 0;
zone->nr_active = 0;
zone->nr_inactive = 0;
atomic_set(&zone->reclaim_in_progress, -1);
atomic_set(&zone->reclaim_in_progress, 0);
if (!size)
continue;

Expand Down
9 changes: 5 additions & 4 deletions trunk/mm/vmscan.c
Original file line number Diff line number Diff line change
Expand Up @@ -822,6 +822,8 @@ shrink_zone(struct zone *zone, struct scan_control *sc)
unsigned long nr_active;
unsigned long nr_inactive;

atomic_inc(&zone->reclaim_in_progress);

/*
* Add one to `nr_to_scan' just to make sure that the kernel will
* slowly sift through the active list.
Expand Down Expand Up @@ -861,6 +863,8 @@ shrink_zone(struct zone *zone, struct scan_control *sc)
}

throttle_vm_writeout();

atomic_dec(&zone->reclaim_in_progress);
}

/*
Expand Down Expand Up @@ -900,9 +904,7 @@ shrink_caches(struct zone **zones, struct scan_control *sc)
if (zone->all_unreclaimable && sc->priority != DEF_PRIORITY)
continue; /* Let kswapd poll it */

atomic_inc(&zone->reclaim_in_progress);
shrink_zone(zone, sc);
atomic_dec(&zone->reclaim_in_progress);
}
}

Expand Down Expand Up @@ -1358,14 +1360,13 @@ int zone_reclaim(struct zone *zone, unsigned int gfp_mask, unsigned int order)
sc.swap_cluster_max = SWAP_CLUSTER_MAX;

/* Don't reclaim the zone if there are other reclaimers active */
if (!atomic_inc_and_test(&zone->reclaim_in_progress))
if (atomic_read(&zone->reclaim_in_progress) > 0)
goto out;

shrink_zone(zone, &sc);
total_reclaimed = sc.nr_reclaimed;

out:
atomic_dec(&zone->reclaim_in_progress);
return total_reclaimed;
}

Expand Down

0 comments on commit c24a3e6

Please sign in to comment.