Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1427798
| From | Mel Gorman <mgorman@techsingularity.net> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 09/27] mm, vmscan: By default have direct reclaim only shrink once per node |
| Date | 2016-06-21 16:20 +0200 |
| Message-ID | <rMuGZ-6Vn-9@gated-at.bofh.it> (permalink) |
| References | <rMuGZ-6Vn-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Direct reclaim iterates over all zones in the zonelist and shrinking them
but this is in conflict with node-based reclaim. In the default case,
only shrink once per node.
Signed-off-by: Mel Gorman <mgorman@techsingularity.net>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Acked-by: Vlastimil Babka <vbabka@suse.cz>
---
mm/vmscan.c | 20 +++++++++++---------
1 file changed, 11 insertions(+), 9 deletions(-)
diff --git a/mm/vmscan.c b/mm/vmscan.c
index ce712ca1f696..2dafaa06884b 100644
--- a/mm/vmscan.c
+++ b/mm/vmscan.c
@@ -2546,14 +2546,6 @@ static inline bool compaction_ready(struct zone *zone, int order, int classzone_
* try to reclaim pages from zones which will satisfy the caller's allocation
* request.
*
- * We reclaim from a zone even if that zone is over high_wmark_pages(zone).
- * Because:
- * a) The caller may be trying to free *extra* pages to satisfy a higher-order
- * allocation or
- * b) The target zone may be at high_wmark_pages(zone) but the lower zones
- * must go *over* high_wmark_pages(zone) to satisfy the `incremental min'
- * zone defense algorithm.
- *
* If a zone is deemed to be full of pinned pages then just give it a light
* scan then give up on it.
*/
@@ -2565,6 +2557,7 @@ static void shrink_zones(struct zonelist *zonelist, struct scan_control *sc,
unsigned long nr_soft_reclaimed;
unsigned long nr_soft_scanned;
gfp_t orig_mask;
+ pg_data_t *last_pgdat = NULL;
/*
* If the number of buffer_heads in the machine exceeds the maximum
@@ -2589,10 +2582,19 @@ static void shrink_zones(struct zonelist *zonelist, struct scan_control *sc,
while (!populated_zone(zone->zone_pgdat->node_zones +
classzone_idx)) {
classzone_idx--;
- continue;
}
/*
+ * Shrink each node in the zonelist once. If the zonelist is
+ * ordered by zone (not the default) then a node may be
+ * shrunk multiple times but in that case the user prefers
+ * lower zones being preserved
+ */
+ if (zone->zone_pgdat == last_pgdat)
+ continue;
+ last_pgdat = zone->zone_pgdat;
+
+ /*
* Take care memory controller reclaiming has small influence
* to global LRU.
*/
--
2.6.4
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH 00/27] Move LRU page reclaim from zones to nodes v7 Mel Gorman <mgorman@techsingularity.net> - 2016-06-21 16:20 +0200
[PATCH 07/27] mm, vmscan: Remove balance gap Mel Gorman <mgorman@techsingularity.net> - 2016-06-21 16:20 +0200
[PATCH 09/27] mm, vmscan: By default have direct reclaim only shrink once per node Mel Gorman <mgorman@techsingularity.net> - 2016-06-21 16:20 +0200
[PATCH 06/27] mm, vmscan: Make kswapd reclaim in terms of nodes Mel Gorman <mgorman@techsingularity.net> - 2016-06-21 16:20 +0200
[PATCH 02/27] mm, vmscan: Move lru_lock to the node Mel Gorman <mgorman@techsingularity.net> - 2016-06-21 16:20 +0200
[PATCH 10/27] mm, vmscan: Remove duplicate logic clearing node congestion and dirty state Mel Gorman <mgorman@techsingularity.net> - 2016-06-21 16:20 +0200
[PATCH 11/27] mm: vmscan: Do not reclaim from kswapd if there is any eligible zone Mel Gorman <mgorman@techsingularity.net> - 2016-06-21 16:20 +0200
[PATCH 14/27] mm, workingset: Make working set detection node-aware Mel Gorman <mgorman@techsingularity.net> - 2016-06-21 16:30 +0200
[PATCH 17/27] mm: Rename NR_ANON_PAGES to NR_ANON_MAPPED Mel Gorman <mgorman@techsingularity.net> - 2016-06-21 16:30 +0200
Re: [PATCH 17/27] mm: Rename NR_ANON_PAGES to NR_ANON_MAPPED Michal Hocko <mhocko@kernel.org> - 2016-06-22 16:30 +0200
[PATCH 12/27] mm, vmscan: Make shrink_node decisions more node-centric Mel Gorman <mgorman@techsingularity.net> - 2016-06-21 16:30 +0200
Re: [PATCH 12/27] mm, vmscan: Make shrink_node decisions more node-centric Michal Hocko <mhocko@kernel.org> - 2016-06-22 15:30 +0200
Re: [PATCH 12/27] mm, vmscan: Make shrink_node decisions more node-centric Vlastimil Babka <vbabka@suse.cz> - 2016-06-22 17:50 +0200
[PATCH 16/27] mm: Move page mapped accounting to the node Mel Gorman <mgorman@techsingularity.net> - 2016-06-21 16:30 +0200
Re: [PATCH 16/27] mm: Move page mapped accounting to the node Andrew Morton <akpm@linux-foundation.org> - 2016-06-22 00:50 +0200
Re: [PATCH 16/27] mm: Move page mapped accounting to the node Mel Gorman <mgorman@techsingularity.net> - 2016-06-23 10:40 +0200
Re: [PATCH 16/27] mm: Move page mapped accounting to the node Michal Hocko <mhocko@kernel.org> - 2016-06-22 16:40 +0200
[PATCH 13/27] mm, memcg: Move memcg limit enforcement from zones to nodes Mel Gorman <mgorman@techsingularity.net> - 2016-06-21 16:30 +0200
Re: [PATCH 13/27] mm, memcg: Move memcg limit enforcement from zones to nodes Michal Hocko <mhocko@kernel.org> - 2016-06-22 15:20 +0200
[PATCH 22/27] mm: Convert zone_reclaim to node_reclaim Mel Gorman <mgorman@techsingularity.net> - 2016-06-21 16:30 +0200
[PATCH 19/27] mm: Move vmscan writes and file write accounting to the node Mel Gorman <mgorman@techsingularity.net> - 2016-06-21 16:30 +0200
Re: [PATCH 19/27] mm: Move vmscan writes and file write accounting to the node Michal Hocko <mhocko@kernel.org> - 2016-06-22 16:50 +0200
Re: [PATCH 19/27] mm: Move vmscan writes and file write accounting to the node Mel Gorman <mgorman@techsingularity.net> - 2016-06-23 16:00 +0200
Re: [PATCH 19/27] mm: Move vmscan writes and file write accounting to the node Vlastimil Babka <vbabka@suse.cz> - 2016-06-23 16:10 +0200
Re: [PATCH 19/27] mm: Move vmscan writes and file write accounting to the node Mel Gorman <mgorman@techsingularity.net> - 2016-06-23 18:10 +0200
[PATCH 24/27] mm, page_alloc: Remove fair zone allocation policy Mel Gorman <mgorman@techsingularity.net> - 2016-06-21 16:30 +0200
[PATCH 18/27] mm: Move most file-based accounting to the node Mel Gorman <mgorman@techsingularity.net> - 2016-06-21 16:30 +0200
Re: [PATCH 18/27] mm: Move most file-based accounting to the node Michal Hocko <mhocko@kernel.org> - 2016-06-22 17:30 +0200
[PATCH 23/27] mm, vmscan: Add classzone information to tracepoints Mel Gorman <mgorman@techsingularity.net> - 2016-06-21 16:40 +0200
[PATCH 20/27] mm, vmscan: Update classzone_idx if buffer_heads_over_limit Mel Gorman <mgorman@techsingularity.net> - 2016-06-21 16:40 +0200
Re: [PATCH 20/27] mm, vmscan: Update classzone_idx if buffer_heads_over_limit Michal Hocko <mhocko@kernel.org> - 2016-06-22 16:50 +0200
[PATCH 27/27] mm: vmstat: Account per-zone stalls and pages skipped during reclaim Mel Gorman <mgorman@techsingularity.net> - 2016-06-21 16:40 +0200
[PATCH 26/27] mm: vmstat: Replace __count_zone_vm_events with a zone id equivalent Mel Gorman <mgorman@techsingularity.net> - 2016-06-21 16:40 +0200
[PATCH 15/27] mm, page_alloc: Consider dirtyable memory in terms of nodes Mel Gorman <mgorman@techsingularity.net> - 2016-06-21 16:40 +0200
Re: [PATCH 15/27] mm, page_alloc: Consider dirtyable memory in terms of nodes Michal Hocko <mhocko@kernel.org> - 2016-06-22 16:30 +0200
Re: [PATCH 15/27] mm, page_alloc: Consider dirtyable memory in terms of nodes Michal Hocko <mhocko@kernel.org> - 2016-06-22 16:30 +0200
Re: [PATCH 15/27] mm, page_alloc: Consider dirtyable memory in terms of nodes Mel Gorman <mgorman@techsingularity.net> - 2016-06-23 15:00 +0200
Re: [PATCH 15/27] mm, page_alloc: Consider dirtyable memory in terms of nodes Michal Hocko <mhocko@kernel.org> - 2016-06-23 15:20 +0200
[PATCH 25/27] mm: page_alloc: Cache the last node whose dirty limit is reached Mel Gorman <mgorman@techsingularity.net> - 2016-06-21 16:50 +0200
[PATCH 21/27] mm, vmscan: Only wakeup kswapd once per node for the requested classzone Mel Gorman <mgorman@techsingularity.net> - 2016-06-21 16:50 +0200
Re: [PATCH 21/27] mm, vmscan: Only wakeup kswapd once per node for the requested classzone Vlastimil Babka <vbabka@suse.cz> - 2016-06-22 18:10 +0200
Re: [PATCH 03/27] mm, vmscan: Move LRU lists to node Vlastimil Babka <vbabka@suse.cz> - 2016-06-22 15:00 +0200
Re: [PATCH 00/27] Move LRU page reclaim from zones to nodes v7 Mel Gorman <mgorman@techsingularity.net> - 2016-06-23 12:30 +0200
Re: [PATCH 00/27] Move LRU page reclaim from zones to nodes v7 Michal Hocko <mhocko@kernel.org> - 2016-06-23 13:30 +0200
Re: [PATCH 00/27] Move LRU page reclaim from zones to nodes v7 Mel Gorman <mgorman@techsingularity.net> - 2016-06-23 14:40 +0200
Re: [PATCH 00/27] Move LRU page reclaim from zones to nodes v7 Michal Hocko <mhocko@kernel.org> - 2016-06-23 14:50 +0200
csiph-web