Message ID | 1573874106-23802-3-git-send-email-alex.shi@linux.alibaba.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | per lruvec lru_lock for memcg | expand |
On Fri, Nov 15, 2019 at 7:15 PM Alex Shi <alex.shi@linux.alibaba.com> wrote: > > 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@intel.com> 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. Regressions compared to what? Also no need to have a separate patch. > > 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 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 >
在 2019/11/16 下午2:31, Shakeel Butt 写道: > On Fri, Nov 15, 2019 at 7:15 PM Alex Shi <alex.shi@linux.alibaba.com> wrote: >> 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@intel.com> 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. > Regressions compared to what? Also no need to have a separate patch. > Thanks for question, Shakeel, I will change the commit log and mention the original place: the head of lruvec struct. As to the folding, the 3rd is already toooo long. May I leave it here to relief a littel bit burden on reading? Thanks Alex
On Sat, Nov 16, 2019 at 11:15:01AM +0800, Alex Shi wrote: > We need a irqflags vaiable to save state when do irqsave action, declare > it here would make code more clear/clean. This patch is wrong on multiple levels. Adding a field without the users is completely pointless. And as a general pattern we never add the irqsave flags to sturctures. They are an intimate part of the calling conventions, and storing them in a structure will lead to subtile bugs.
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
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@intel.com> 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@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(+)