Commit b9e84ac1 authored by Minchan Kim's avatar Minchan Kim Committed by Linus Torvalds

mm: compaction: trivial clean up in acct_isolated()

acct_isolated of compaction uses page_lru_base_type which returns only
base type of LRU list so it never returns LRU_ACTIVE_ANON or
LRU_ACTIVE_FILE.  In addtion, cc->nr_[anon|file] is used in only
acct_isolated so it doesn't have fields in conpact_control.

This patch removes fields from compact_control and makes clear function of
acct_issolated which counts the number of anon|file pages isolated.
Signed-off-by: default avatarMinchan Kim <minchan.kim@gmail.com>
Acked-by: default avatarJohannes Weiner <hannes@cmpxchg.org>
Reviewed-by: default avatarKAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com>
Reviewed-by: default avatarKOSAKI Motohiro <kosaki.motohiro@jp.fujitsu.com>
Acked-by: default avatarMel Gorman <mgorman@suse.de>
Acked-by: default avatarRik van Riel <riel@redhat.com>
Reviewed-by: default avatarMichal Hocko <mhocko@suse.cz>
Cc: Andrea Arcangeli <aarcange@redhat.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent fcf63409
...@@ -35,10 +35,6 @@ struct compact_control { ...@@ -35,10 +35,6 @@ struct compact_control {
unsigned long migrate_pfn; /* isolate_migratepages search base */ unsigned long migrate_pfn; /* isolate_migratepages search base */
bool sync; /* Synchronous migration */ bool sync; /* Synchronous migration */
/* Account for isolated anon and file pages */
unsigned long nr_anon;
unsigned long nr_file;
unsigned int order; /* order a direct compactor needs */ unsigned int order; /* order a direct compactor needs */
int migratetype; /* MOVABLE, RECLAIMABLE etc */ int migratetype; /* MOVABLE, RECLAIMABLE etc */
struct zone *zone; struct zone *zone;
...@@ -223,17 +219,13 @@ static void isolate_freepages(struct zone *zone, ...@@ -223,17 +219,13 @@ static void isolate_freepages(struct zone *zone,
static void acct_isolated(struct zone *zone, struct compact_control *cc) static void acct_isolated(struct zone *zone, struct compact_control *cc)
{ {
struct page *page; struct page *page;
unsigned int count[NR_LRU_LISTS] = { 0, }; unsigned int count[2] = { 0, };
list_for_each_entry(page, &cc->migratepages, lru) { list_for_each_entry(page, &cc->migratepages, lru)
int lru = page_lru_base_type(page); count[!!page_is_file_cache(page)]++;
count[lru]++;
}
cc->nr_anon = count[LRU_ACTIVE_ANON] + count[LRU_INACTIVE_ANON]; __mod_zone_page_state(zone, NR_ISOLATED_ANON, count[0]);
cc->nr_file = count[LRU_ACTIVE_FILE] + count[LRU_INACTIVE_FILE]; __mod_zone_page_state(zone, NR_ISOLATED_FILE, count[1]);
__mod_zone_page_state(zone, NR_ISOLATED_ANON, cc->nr_anon);
__mod_zone_page_state(zone, NR_ISOLATED_FILE, cc->nr_file);
} }
/* Similar to reclaim, but different enough that they don't share logic */ /* Similar to reclaim, but different enough that they don't share logic */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment