[PATCH v2 2/8] mm/lruvec: add irqsave flags into lruvec struct

Alex Shi
2019-11-12T14:06:22Z

We need a flags vaiable to save state when do irqsave action, declare it
here would make code more clear/clean.

Rong Chen <rong.a.chen@intel.com> report the flag variable needs to move
the tail of lruvec struct otherwise it causes 18% regressions of
vm-scalability testing on his machine. Add the flags and lru_lock to
both near struct tail.

Originally-from: Hugh Dickins <hughd@google.com>
Signed-off-by: Alex Shi <alex.shi@linux.alibaba.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Vlastimil Babka <vbabka@suse.cz>
Cc: Dan Williams <dan.j.williams@intel.com>
Cc: Michal Hocko <mhocko@suse.com>
Cc: Mel Gorman <mgorman@techsingularity.net>
Cc: Wei Yang <richard.weiyang@gmail.com>
Cc: Johannes Weiner <hannes@cmpxchg.org>
Cc: Arun KS <arunks@codeaurora.org>
Cc: Tejun Heo <tj@kernel.org>
Cc: Konstantin Khlebnikov <khlebnikov@yandex-team.ru>
CC: Rong Chen <rong.a.chen@intel.com>
Cc: cgroups@vger.kernel.org
Cc: linux-mm@kvack.org
Cc: linux-kernel@vger.kernel.org
---
include/linux/mmzone.h | 2 ++
1 file changed, 2 insertions(+)

diff --git a/include/linux/mmzone.h b/include/linux/mmzone.h
index 787a42d527a2..da00615baa52 100644
--- a/include/linux/mmzone.h
+++ b/include/linux/mmzone.h
@@ -305,6 +305,8 @@ struct lruvec {
unsigned long refaults;
/* per lruvec lru_lock for memcg */
spinlock_t lru_lock;
+ /* flags for irqsave */
+ unsigned long flags;
#ifdef CONFIG_MEMCG
struct pglist_data *pgdat;
#endif
--
1.8.3.1