Message ID | 1603968305-8026-5-git-send-email-alex.shi@linux.alibaba.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | per memcg lru lock | expand |
On Thu, Oct 29, 2020 at 06:44:49PM +0800, Alex Shi wrote: > Since the first parameter is only used by head page, it's better to make > it explicit. > > Signed-off-by: Alex Shi <alex.shi@linux.alibaba.com> > Reviewed-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> > Acked-by: Hugh Dickins <hughd@google.com> > Cc: Andrew Morton <akpm@linux-foundation.org> > Cc: Johannes Weiner <hannes@cmpxchg.org> > Cc: Matthew Wilcox <willy@infradead.org> > Cc: Hugh Dickins <hughd@google.com> > Cc: linux-mm@kvack.org > Cc: linux-kernel@vger.kernel.org > --- > mm/huge_memory.c | 12 ++++++------ > 1 file changed, 6 insertions(+), 6 deletions(-) > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c > index 038db815ebba..93c0b73eb8c6 100644 > --- a/mm/huge_memory.c > +++ b/mm/huge_memory.c > @@ -2346,19 +2346,19 @@ static void remap_page(struct page *page, unsigned int nr) > } > } > > -static void lru_add_page_tail(struct page *page, struct page *page_tail, > +static void lru_add_page_tail(struct page *head, struct page *page_tail, It may be better to pick either head and tail or page_head and page_tail ?
在 2020/10/29 下午9:50, Johannes Weiner 写道: > On Thu, Oct 29, 2020 at 06:44:49PM +0800, Alex Shi wrote: >> Since the first parameter is only used by head page, it's better to make >> it explicit. >> >> Signed-off-by: Alex Shi <alex.shi@linux.alibaba.com> >> Reviewed-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> >> Acked-by: Hugh Dickins <hughd@google.com> >> Cc: Andrew Morton <akpm@linux-foundation.org> >> Cc: Johannes Weiner <hannes@cmpxchg.org> >> Cc: Matthew Wilcox <willy@infradead.org> >> Cc: Hugh Dickins <hughd@google.com> >> Cc: linux-mm@kvack.org >> Cc: linux-kernel@vger.kernel.org >> --- >> mm/huge_memory.c | 12 ++++++------ >> 1 file changed, 6 insertions(+), 6 deletions(-) >> >> diff --git a/mm/huge_memory.c b/mm/huge_memory.c >> index 038db815ebba..93c0b73eb8c6 100644 >> --- a/mm/huge_memory.c >> +++ b/mm/huge_memory.c >> @@ -2346,19 +2346,19 @@ static void remap_page(struct page *page, unsigned int nr) >> } >> } >> >> -static void lru_add_page_tail(struct page *page, struct page *page_tail, >> +static void lru_add_page_tail(struct page *head, struct page *page_tail, > > It may be better to pick either > head and tail Hi Johannes, Thanks for comments! Right, Consider functions in this file are using head/tail more as parameters I will change to use head/tail too. And then, the 04th, 05th, and 18th patch will be changed accordingly. Thanks Alex > or > page_head and page_tail > > ? > From a9ee63a213f40eb4d5a69b52fbb348ff9cd7cf6c Mon Sep 17 00:00:00 2001 From: Alex Shi <alex.shi@linux.alibaba.com> Date: Tue, 26 May 2020 16:49:22 +0800 Subject: [PATCH v21 04/20] mm/thp: use head for head page in lru_add_page_tail Since the first parameter is only used by head page, it's better to make it explicit. Signed-off-by: Alex Shi <alex.shi@linux.alibaba.com> Reviewed-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> Acked-by: Hugh Dickins <hughd@google.com> Cc: Andrew Morton <akpm@linux-foundation.org> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Matthew Wilcox <willy@infradead.org> Cc: Hugh Dickins <hughd@google.com> Cc: linux-mm@kvack.org Cc: linux-kernel@vger.kernel.org --- mm/huge_memory.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 038db815ebba..32a4bf5b80c8 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -2346,33 +2346,32 @@ static void remap_page(struct page *page, unsigned int nr) } } -static void lru_add_page_tail(struct page *page, struct page *page_tail, +static void lru_add_page_tail(struct page *head, struct page *tail, struct lruvec *lruvec, struct list_head *list) { - VM_BUG_ON_PAGE(!PageHead(page), page); - VM_BUG_ON_PAGE(PageCompound(page_tail), page); - VM_BUG_ON_PAGE(PageLRU(page_tail), page); + VM_BUG_ON_PAGE(!PageHead(head), head); + VM_BUG_ON_PAGE(PageCompound(tail), head); + VM_BUG_ON_PAGE(PageLRU(tail), head); lockdep_assert_held(&lruvec_pgdat(lruvec)->lru_lock); if (!list) - SetPageLRU(page_tail); + SetPageLRU(tail); - if (likely(PageLRU(page))) - list_add_tail(&page_tail->lru, &page->lru); + if (likely(PageLRU(head))) + list_add_tail(&tail->lru, &head->lru); else if (list) { /* page reclaim is reclaiming a huge page */ - get_page(page_tail); - list_add_tail(&page_tail->lru, list); + get_page(tail); + list_add_tail(&tail->lru, list); } else { /* * Head page has not yet been counted, as an hpage, * so we must account for each subpage individually. * - * Put page_tail on the list at the correct position + * Put tail on the list at the correct position * so they all end up in order. */ - add_page_to_lru_list_tail(page_tail, lruvec, - page_lru(page_tail)); + add_page_to_lru_list_tail(tail, lruvec, page_lru(tail)); } }
On Fri, Oct 30, 2020 at 10:46:54AM +0800, Alex Shi wrote: > 在 2020/10/29 下午9:50, Johannes Weiner 写道: > > It may be better to pick either > > head and tail > > Hi Johannes, > > Thanks for comments! > > Right, Consider functions in this file are using head/tail more as parameters > I will change to use head/tail too. And then, the 04th, 05th, and 18th patch > will be changed accordingly. That's great, thank you! > From a9ee63a213f40eb4d5a69b52fbb348ff9cd7cf6c Mon Sep 17 00:00:00 2001 > From: Alex Shi <alex.shi@linux.alibaba.com> > Date: Tue, 26 May 2020 16:49:22 +0800 > Subject: [PATCH v21 04/20] mm/thp: use head for head page in lru_add_page_tail > > Since the first parameter is only used by head page, it's better to make > it explicit. > > Signed-off-by: Alex Shi <alex.shi@linux.alibaba.com> > Reviewed-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> > Acked-by: Hugh Dickins <hughd@google.com> > Cc: Andrew Morton <akpm@linux-foundation.org> > Cc: Johannes Weiner <hannes@cmpxchg.org> > Cc: Matthew Wilcox <willy@infradead.org> > Cc: Hugh Dickins <hughd@google.com> > Cc: linux-mm@kvack.org > Cc: linux-kernel@vger.kernel.org Acked-by: Johannes Weiner <hannes@cmpxchg.org>
在 2020/10/30 下午9:52, Johannes Weiner 写道: > >> From a9ee63a213f40eb4d5a69b52fbb348ff9cd7cf6c Mon Sep 17 00:00:00 2001 >> From: Alex Shi <alex.shi@linux.alibaba.com> >> Date: Tue, 26 May 2020 16:49:22 +0800 >> Subject: [PATCH v21 04/20] mm/thp: use head for head page in lru_add_page_tail >> >> Since the first parameter is only used by head page, it's better to make >> it explicit. >> >> Signed-off-by: Alex Shi <alex.shi@linux.alibaba.com> >> Reviewed-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> >> Acked-by: Hugh Dickins <hughd@google.com> >> Cc: Andrew Morton <akpm@linux-foundation.org> >> Cc: Johannes Weiner <hannes@cmpxchg.org> >> Cc: Matthew Wilcox <willy@infradead.org> >> Cc: Hugh Dickins <hughd@google.com> >> Cc: linux-mm@kvack.org >> Cc: linux-kernel@vger.kernel.org > Acked-by: Johannes Weiner <hannes@cmpxchg.org> Thanks a lot! Alex
On Fri, Oct 30, 2020 at 10:46:54AM +0800, Alex Shi wrote: > -static void lru_add_page_tail(struct page *page, struct page *page_tail, > +static void lru_add_page_tail(struct page *head, struct page *tail, > struct lruvec *lruvec, struct list_head *list) > { > - VM_BUG_ON_PAGE(!PageHead(page), page); > - VM_BUG_ON_PAGE(PageCompound(page_tail), page); > - VM_BUG_ON_PAGE(PageLRU(page_tail), page); > + VM_BUG_ON_PAGE(!PageHead(head), head); > + VM_BUG_ON_PAGE(PageCompound(tail), head); > + VM_BUG_ON_PAGE(PageLRU(tail), head); These last two should surely have been VM_BUG_ON_PAGE(PageCompound(tail), tail); VM_BUG_ON_PAGE(PageLRU(tail), tail); Also, what do people think about converting these to VM_BUG_ON_PGFLAGS? Either way: Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>
在 2020/11/3 上午12:03, Matthew Wilcox 写道: > On Fri, Oct 30, 2020 at 10:46:54AM +0800, Alex Shi wrote: >> -static void lru_add_page_tail(struct page *page, struct page *page_tail, >> +static void lru_add_page_tail(struct page *head, struct page *tail, >> struct lruvec *lruvec, struct list_head *list) >> { >> - VM_BUG_ON_PAGE(!PageHead(page), page); >> - VM_BUG_ON_PAGE(PageCompound(page_tail), page); >> - VM_BUG_ON_PAGE(PageLRU(page_tail), page); >> + VM_BUG_ON_PAGE(!PageHead(head), head); >> + VM_BUG_ON_PAGE(PageCompound(tail), head); >> + VM_BUG_ON_PAGE(PageLRU(tail), head); > > These last two should surely have been > VM_BUG_ON_PAGE(PageCompound(tail), tail); > VM_BUG_ON_PAGE(PageLRU(tail), tail); > > Also, what do people think about converting these to VM_BUG_ON_PGFLAGS? Hi Matthew, Thanks for reminder! Looks these changes worth for another patch. > > Either way: > > Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org> > I will take this option this time. :) Thanks! Alex
diff --git a/mm/huge_memory.c b/mm/huge_memory.c index 038db815ebba..93c0b73eb8c6 100644 --- a/mm/huge_memory.c +++ b/mm/huge_memory.c @@ -2346,19 +2346,19 @@ static void remap_page(struct page *page, unsigned int nr) } } -static void lru_add_page_tail(struct page *page, struct page *page_tail, +static void lru_add_page_tail(struct page *head, struct page *page_tail, struct lruvec *lruvec, struct list_head *list) { - VM_BUG_ON_PAGE(!PageHead(page), page); - VM_BUG_ON_PAGE(PageCompound(page_tail), page); - VM_BUG_ON_PAGE(PageLRU(page_tail), page); + VM_BUG_ON_PAGE(!PageHead(head), head); + VM_BUG_ON_PAGE(PageCompound(page_tail), head); + VM_BUG_ON_PAGE(PageLRU(page_tail), head); lockdep_assert_held(&lruvec_pgdat(lruvec)->lru_lock); if (!list) SetPageLRU(page_tail); - if (likely(PageLRU(page))) - list_add_tail(&page_tail->lru, &page->lru); + if (likely(PageLRU(head))) + list_add_tail(&page_tail->lru, &head->lru); else if (list) { /* page reclaim is reclaiming a huge page */ get_page(page_tail);