Skip to content

Commit 1cbfd0d

Browse files
Kirill TkhaiExactExampl
authored andcommitted
mm/vmscan.c: simplify shrink_inactive_list()
This merges together duplicated patterns of code. Also, replace count_memcg_events() with its irq-careless namesake, because they are already called in interrupts disabled context. Link: http://lkml.kernel.org/r/2ece1df4-2989-bc9b-6172-61e9fdde5bfd@virtuozzo.com Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com> Acked-by: Michal Hocko <mhocko@suse.com> Reviewed-by: Daniel Jordan <daniel.m.jordan@oracle.com> Acked-by: Johannes Weiner <hannes@cmpxchg.org> Cc: Baoquan He <bhe@redhat.com> Cc: Davidlohr Bueso <dave@stgolabs.net> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Santhosh <san8754513543@gmail.com>
1 parent d87d3f2 commit 1cbfd0d

1 file changed

Lines changed: 11 additions & 24 deletions

File tree

mm/vmscan.c

Lines changed: 11 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1977,6 +1977,7 @@ shrink_inactive_list(unsigned long nr_to_scan, struct lruvec *lruvec,
19771977
struct reclaim_stat stat = {};
19781978
isolate_mode_t isolate_mode = 0;
19791979
int file = is_file_lru(lru);
1980+
enum vm_event_item item;
19801981
struct pglist_data *pgdat = lruvec_pgdat(lruvec);
19811982
struct zone_reclaim_stat *reclaim_stat = &lruvec->reclaim_stat;
19821983
bool stalled = false;
@@ -2007,17 +2008,10 @@ shrink_inactive_list(unsigned long nr_to_scan, struct lruvec *lruvec,
20072008
__mod_node_page_state(pgdat, NR_ISOLATED_ANON + file, nr_taken);
20082009
reclaim_stat->recent_scanned[file] += nr_taken;
20092010

2010-
if (current_is_kswapd()) {
2011-
if (global_reclaim(sc))
2012-
__count_vm_events(PGSCAN_KSWAPD, nr_scanned);
2013-
count_memcg_events(lruvec_memcg(lruvec), PGSCAN_KSWAPD,
2014-
nr_scanned);
2015-
} else {
2016-
if (global_reclaim(sc))
2017-
__count_vm_events(PGSCAN_DIRECT, nr_scanned);
2018-
count_memcg_events(lruvec_memcg(lruvec), PGSCAN_DIRECT,
2019-
nr_scanned);
2020-
}
2011+
item = current_is_kswapd() ? PGSCAN_KSWAPD : PGSCAN_DIRECT;
2012+
if (global_reclaim(sc))
2013+
__count_vm_events(item, nr_scanned);
2014+
__count_memcg_events(lruvec_memcg(lruvec), item, nr_scanned);
20212015
spin_unlock_irq(&pgdat->lru_lock);
20222016

20232017
if (nr_taken == 0)
@@ -2028,17 +2022,10 @@ shrink_inactive_list(unsigned long nr_to_scan, struct lruvec *lruvec,
20282022

20292023
spin_lock_irq(&pgdat->lru_lock);
20302024

2031-
if (current_is_kswapd()) {
2032-
if (global_reclaim(sc))
2033-
__count_vm_events(PGSTEAL_KSWAPD, nr_reclaimed);
2034-
count_memcg_events(lruvec_memcg(lruvec), PGSTEAL_KSWAPD,
2035-
nr_reclaimed);
2036-
} else {
2037-
if (global_reclaim(sc))
2038-
__count_vm_events(PGSTEAL_DIRECT, nr_reclaimed);
2039-
count_memcg_events(lruvec_memcg(lruvec), PGSTEAL_DIRECT,
2040-
nr_reclaimed);
2041-
}
2025+
item = current_is_kswapd() ? PGSTEAL_KSWAPD : PGSTEAL_DIRECT;
2026+
if (global_reclaim(sc))
2027+
__count_vm_events(item, nr_reclaimed);
2028+
__count_memcg_events(lruvec_memcg(lruvec), item, nr_reclaimed);
20422029

20432030
putback_inactive_pages(lruvec, &page_list);
20442031

@@ -2133,7 +2120,7 @@ static unsigned move_active_pages_to_lru(struct lruvec *lruvec,
21332120

21342121
if (!is_active_lru(lru)) {
21352122
__count_vm_events(PGDEACTIVATE, nr_moved);
2136-
count_memcg_events(lruvec_memcg(lruvec), PGDEACTIVATE,
2123+
__count_memcg_events(lruvec_memcg(lruvec), PGDEACTIVATE,
21372124
nr_moved);
21382125
}
21392126

@@ -2173,7 +2160,7 @@ static void shrink_active_list(unsigned long nr_to_scan,
21732160
reclaim_stat->recent_scanned[file] += nr_taken;
21742161

21752162
__count_vm_events(PGREFILL, nr_scanned);
2176-
count_memcg_events(lruvec_memcg(lruvec), PGREFILL, nr_scanned);
2163+
__count_memcg_events(lruvec_memcg(lruvec), PGREFILL, nr_scanned);
21772164

21782165
spin_unlock_irq(&pgdat->lru_lock);
21792166

0 commit comments

Comments
 (0)