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@xxxxxxxxx> 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@xxxxxxxxxx> Signed-off-by: Alex Shi <alex.shi@xxxxxxxxxxxxxxxxx> Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> Cc: Vlastimil Babka <vbabka@xxxxxxx> Cc: Dan Williams <dan.j.williams@xxxxxxxxx> Cc: Michal Hocko <mhocko@xxxxxxxx> Cc: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx> Cc: Wei Yang <richard.weiyang@xxxxxxxxx> Cc: Johannes Weiner <hannes@xxxxxxxxxxx> Cc: Arun KS <arunks@xxxxxxxxxxxxxx> Cc: Tejun Heo <tj@xxxxxxxxxx> Cc: Konstantin Khlebnikov <khlebnikov@xxxxxxxxxxxxxx> CC: Rong Chen <rong.a.chen@xxxxxxxxx> Cc: cgroups@xxxxxxxxxxxxxxx Cc: linux-mm@xxxxxxxxx Cc: linux-kernel@xxxxxxxxxxxxxxx --- 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