We need a irqflags vaiable to save state when do irqsave action, declare it here would make code more clear/clean. Rong Chen <rong.a.chen@xxxxxxxxx> reported the 'irqflags' variable need move to the tail of lruvec struct otherwise it causes 18% regressions of vm-scalability testing on his machine. So add the flags and lru_lock to both near struct tail, even I have no clue of this perf losing. 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 a13b8a602ee5..9b8b8daf4e03 100644 --- a/include/linux/mmzone.h +++ b/include/linux/mmzone.h @@ -269,6 +269,8 @@ struct lruvec { unsigned long flags; /* per lruvec lru_lock for memcg */ spinlock_t lru_lock; + /* flags for irqsave */ + unsigned long irqflags; #ifdef CONFIG_MEMCG struct pglist_data *pgdat; #endif -- 1.8.3.1