lkml.org 
[lkml]   [2021]   [Jun]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    From
    SubjectRe: [PATCH 01/11] mm: page_vma_mapped_walk(): use page for pvmw->page
    On Wed, Jun 09, 2021 at 11:34:40PM -0700, Hugh Dickins wrote:
    > page_vma_mapped_walk() cleanup: sometimes the local copy of pvwm->page was
    > used, sometimes pvmw->page itself: use the local copy "page" throughout.
    >
    > Signed-off-by: Hugh Dickins <hughd@google.com>
    > Cc: <stable@vger.kernel.org>

    Acked-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>

    A question below.

    > ---
    > mm/page_vma_mapped.c | 9 ++++-----
    > 1 file changed, 4 insertions(+), 5 deletions(-)
    >
    > diff --git a/mm/page_vma_mapped.c b/mm/page_vma_mapped.c
    > index e37bd43904af..a6dbf714ca15 100644
    > --- a/mm/page_vma_mapped.c
    > +++ b/mm/page_vma_mapped.c
    > @@ -156,7 +156,7 @@ bool page_vma_mapped_walk(struct page_vma_mapped_walk *pvmw)
    > if (pvmw->pte)
    > goto next_pte;
    >
    > - if (unlikely(PageHuge(pvmw->page))) {
    > + if (unlikely(PageHuge(page))) {
    > /* when pud is not present, pte will be NULL */
    > pvmw->pte = huge_pte_offset(mm, pvmw->address, page_size(page));
    > if (!pvmw->pte)
    > @@ -217,8 +217,7 @@ bool page_vma_mapped_walk(struct page_vma_mapped_walk *pvmw)
    > * cannot return prematurely, while zap_huge_pmd() has
    > * cleared *pmd but not decremented compound_mapcount().
    > */
    > - if ((pvmw->flags & PVMW_SYNC) &&
    > - PageTransCompound(pvmw->page)) {
    > + if ((pvmw->flags & PVMW_SYNC) && PageTransCompound(page)) {
    > spinlock_t *ptl = pmd_lock(mm, pvmw->pmd);
    >
    > spin_unlock(ptl);
    > @@ -234,9 +233,9 @@ bool page_vma_mapped_walk(struct page_vma_mapped_walk *pvmw)
    > return true;
    > next_pte:
    > /* Seek to next pte only makes sense for THP */
    > - if (!PageTransHuge(pvmw->page) || PageHuge(pvmw->page))
    > + if (!PageTransHuge(page) || PageHuge(page))
    > return not_found(pvmw);
    > - end = vma_address_end(pvmw->page, pvmw->vma);
    > + end = vma_address_end(page, pvmw->vma);
    > do {
    > pvmw->address += PAGE_SIZE;
    > if (pvmw->address >= end)

    I see two more pvmw->page in this loop. Do you leave them here as the code
    will be rewritten later in the patchset?

    --
    Kirill A. Shutemov

    \
     
     \ /
      Last update: 2021-06-10 10:56    [W:4.066 / U:0.120 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site