From: Jerome Glisse <jglisse@redhat.com>
To: Andrea Arcangeli <aarcange@redhat.com>
Cc: Zi Yan <zi.yan@cs.rutgers.edu>,
linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>,
linux-kernel@vger.kernel.org,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
"Kirill A . Shutemov" <kirill.shutemov@linux.intel.com>,
"H. Peter Anvin" <hpa@zytor.com>,
Anshuman Khandual <khandual@linux.vnet.ibm.com>,
Dave Hansen <dave.hansen@intel.com>,
David Nellans <dnellans@nvidia.com>, Ingo Molnar <mingo@elte.hu>,
Mel Gorman <mgorman@techsingularity.net>,
Minchan Kim <minchan@kernel.org>,
Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>,
Thomas Gleixner <tglx@linutronix.de>,
Vlastimil Babka <vbabka@suse.cz>,
Michal Hocko <mhocko@kernel.org>
Subject: Re: [PATCH] mm/thp: fix call to mmu_notifier in set_pmd_migration_entry()
Date: Fri, 12 Oct 2018 13:35:19 -0400 [thread overview]
Message-ID: <20181012173518.GD6593@redhat.com> (raw)
In-Reply-To: <20181012172422.GA7395@redhat.com>
On Fri, Oct 12, 2018 at 01:24:22PM -0400, Andrea Arcangeli wrote:
> Hello,
>
> On Fri, Oct 12, 2018 at 12:20:54PM -0400, Zi Yan wrote:
> > On 12 Oct 2018, at 12:09, jglisse@redhat.com wrote:
> >
> > > From: Jerome Glisse <jglisse@redhat.com>
> > >
> > > Inside set_pmd_migration_entry() we are holding page table locks and
> > > thus we can not sleep so we can not call invalidate_range_start/end()
> > >
> > > So remove call to mmu_notifier_invalidate_range_start/end() and add
> > > call to mmu_notifier_invalidate_range(). Note that we are already
>
> Why the call to mmu_notifier_invalidate_range if we're under
> range_start and followed by range_end? (it's not _range_only_end, if
> it was _range_only_end the above would be needed)
I wanted to be extra safe and accept to over invalidate. You are right
that it is not strictly necessary. I am fine with removing it.
>
> > > calling mmu_notifier_invalidate_range_start/end() inside the function
> > > calling set_pmd_migration_entry() (see try_to_unmap_one()).
> > >
> > > Signed-off-by: Jerome Glisse <jglisse@redhat.com>
> > > Reported-by: Andrea Arcangeli <aarcange@redhat.com>
> > > Cc: Andrew Morton <akpm@linux-foundation.org>
> > > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > > Cc: Zi Yan <zi.yan@cs.rutgers.edu>
> > > Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
> > > Cc: "H. Peter Anvin" <hpa@zytor.com>
> > > Cc: Anshuman Khandual <khandual@linux.vnet.ibm.com>
> > > Cc: Dave Hansen <dave.hansen@intel.com>
> > > Cc: David Nellans <dnellans@nvidia.com>
> > > Cc: Ingo Molnar <mingo@elte.hu>
> > > Cc: Mel Gorman <mgorman@techsingularity.net>
> > > Cc: Minchan Kim <minchan@kernel.org>
> > > Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
> > > Cc: Thomas Gleixner <tglx@linutronix.de>
> > > Cc: Vlastimil Babka <vbabka@suse.cz>
> > > Cc: Michal Hocko <mhocko@kernel.org>
> > > Cc: Andrea Arcangeli <aarcange@redhat.com>
> > > ---
> > > mm/huge_memory.c | 7 +------
> > > 1 file changed, 1 insertion(+), 6 deletions(-)
> > >
> > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c
> > > index 533f9b00147d..93cb80fe12cb 100644
> > > --- a/mm/huge_memory.c
> > > +++ b/mm/huge_memory.c
> > > @@ -2885,9 +2885,6 @@ void set_pmd_migration_entry(struct page_vma_mapped_walk *pvmw,
> > > if (!(pvmw->pmd && !pvmw->pte))
> > > return;
> > >
> > > - mmu_notifier_invalidate_range_start(mm, address,
> > > - address + HPAGE_PMD_SIZE);
> > > -
> > > flush_cache_range(vma, address, address + HPAGE_PMD_SIZE);
> > > pmdval = *pvmw->pmd;
> > > pmdp_invalidate(vma, address, pvmw->pmd);
> > > @@ -2898,11 +2895,9 @@ void set_pmd_migration_entry(struct page_vma_mapped_walk *pvmw,
> > > if (pmd_soft_dirty(pmdval))
> > > pmdswp = pmd_swp_mksoft_dirty(pmdswp);
> > > set_pmd_at(mm, address, pvmw->pmd, pmdswp);
> > > + mmu_notifier_invalidate_range(mm, address, address + HPAGE_PMD_SIZE);
>
> It's not obvious why it's needed, if it's needed maybe a comment can
> be added.
We can remove it. Should i post a v2 without it ?
Cheers,
Jerome
WARNING: multiple messages have this Message-ID (diff)
From: Jerome Glisse <jglisse@redhat.com>
To: Andrea Arcangeli <aarcange@redhat.com>
Cc: Zi Yan <zi.yan@cs.rutgers.edu>,
linux-mm@kvack.org, Andrew Morton <akpm@linux-foundation.org>,
linux-kernel@vger.kernel.org,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
"Kirill A . Shutemov" <kirill.shutemov@linux.intel.com>,
"H. Peter Anvin" <hpa@zytor.com>,
Anshuman Khandual <khandual@linux.vnet.ibm.com>,
Dave Hansen <dave.hansen@intel.com>,
David Nellans <dnellans@nvidia.com>, Ingo Molnar <mingo@elte.hu>,
Mel Gorman <mgorman@techsingularity.net>,
Minchan Kim <minchan@kernel.org>,
Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>,
Thomas Gleixner <tglx@linutronix.de>,
Vlastimil Babka <vbabka@suse.cz>,
Michal Hocko <mhocko@kernel.org>
Subject: Re: [PATCH] mm/thp: fix call to mmu_notifier in set_pmd_migration_entry()
Date: Fri, 12 Oct 2018 13:35:19 -0400 [thread overview]
Message-ID: <20181012173518.GD6593@redhat.com> (raw)
In-Reply-To: <20181012172422.GA7395@redhat.com>
On Fri, Oct 12, 2018 at 01:24:22PM -0400, Andrea Arcangeli wrote:
> Hello,
>
> On Fri, Oct 12, 2018 at 12:20:54PM -0400, Zi Yan wrote:
> > On 12 Oct 2018, at 12:09, jglisse@redhat.com wrote:
> >
> > > From: Jérôme Glisse <jglisse@redhat.com>
> > >
> > > Inside set_pmd_migration_entry() we are holding page table locks and
> > > thus we can not sleep so we can not call invalidate_range_start/end()
> > >
> > > So remove call to mmu_notifier_invalidate_range_start/end() and add
> > > call to mmu_notifier_invalidate_range(). Note that we are already
>
> Why the call to mmu_notifier_invalidate_range if we're under
> range_start and followed by range_end? (it's not _range_only_end, if
> it was _range_only_end the above would be needed)
I wanted to be extra safe and accept to over invalidate. You are right
that it is not strictly necessary. I am fine with removing it.
>
> > > calling mmu_notifier_invalidate_range_start/end() inside the function
> > > calling set_pmd_migration_entry() (see try_to_unmap_one()).
> > >
> > > Signed-off-by: Jérôme Glisse <jglisse@redhat.com>
> > > Reported-by: Andrea Arcangeli <aarcange@redhat.com>
> > > Cc: Andrew Morton <akpm@linux-foundation.org>
> > > Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
> > > Cc: Zi Yan <zi.yan@cs.rutgers.edu>
> > > Cc: Kirill A. Shutemov <kirill.shutemov@linux.intel.com>
> > > Cc: "H. Peter Anvin" <hpa@zytor.com>
> > > Cc: Anshuman Khandual <khandual@linux.vnet.ibm.com>
> > > Cc: Dave Hansen <dave.hansen@intel.com>
> > > Cc: David Nellans <dnellans@nvidia.com>
> > > Cc: Ingo Molnar <mingo@elte.hu>
> > > Cc: Mel Gorman <mgorman@techsingularity.net>
> > > Cc: Minchan Kim <minchan@kernel.org>
> > > Cc: Naoya Horiguchi <n-horiguchi@ah.jp.nec.com>
> > > Cc: Thomas Gleixner <tglx@linutronix.de>
> > > Cc: Vlastimil Babka <vbabka@suse.cz>
> > > Cc: Michal Hocko <mhocko@kernel.org>
> > > Cc: Andrea Arcangeli <aarcange@redhat.com>
> > > ---
> > > mm/huge_memory.c | 7 +------
> > > 1 file changed, 1 insertion(+), 6 deletions(-)
> > >
> > > diff --git a/mm/huge_memory.c b/mm/huge_memory.c
> > > index 533f9b00147d..93cb80fe12cb 100644
> > > --- a/mm/huge_memory.c
> > > +++ b/mm/huge_memory.c
> > > @@ -2885,9 +2885,6 @@ void set_pmd_migration_entry(struct page_vma_mapped_walk *pvmw,
> > > if (!(pvmw->pmd && !pvmw->pte))
> > > return;
> > >
> > > - mmu_notifier_invalidate_range_start(mm, address,
> > > - address + HPAGE_PMD_SIZE);
> > > -
> > > flush_cache_range(vma, address, address + HPAGE_PMD_SIZE);
> > > pmdval = *pvmw->pmd;
> > > pmdp_invalidate(vma, address, pvmw->pmd);
> > > @@ -2898,11 +2895,9 @@ void set_pmd_migration_entry(struct page_vma_mapped_walk *pvmw,
> > > if (pmd_soft_dirty(pmdval))
> > > pmdswp = pmd_swp_mksoft_dirty(pmdswp);
> > > set_pmd_at(mm, address, pvmw->pmd, pmdswp);
> > > + mmu_notifier_invalidate_range(mm, address, address + HPAGE_PMD_SIZE);
>
> It's not obvious why it's needed, if it's needed maybe a comment can
> be added.
We can remove it. Should i post a v2 without it ?
Cheers,
Jérôme
next prev parent reply other threads:[~2018-10-12 17:35 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-10-12 16:09 [PATCH] mm/thp: fix call to mmu_notifier in set_pmd_migration_entry() jglisse
2018-10-12 16:09 ` jglisse
2018-10-12 16:20 ` Zi Yan
2018-10-12 17:24 ` Andrea Arcangeli
2018-10-12 17:24 ` Andrea Arcangeli
2018-10-12 17:35 ` Jerome Glisse [this message]
2018-10-12 17:35 ` Jerome Glisse
2018-10-12 17:58 ` Andrea Arcangeli
2018-10-12 17:58 ` Andrea Arcangeli
2018-10-12 16:55 ` Michal Hocko
2018-10-12 16:55 ` Michal Hocko
2018-10-12 17:05 ` Jerome Glisse
2018-10-12 17:05 ` Jerome Glisse
2018-10-12 17:05 ` Jerome Glisse
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20181012173518.GD6593@redhat.com \
--to=jglisse@redhat.com \
--cc=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=dave.hansen@intel.com \
--cc=dnellans@nvidia.com \
--cc=gregkh@linuxfoundation.org \
--cc=hpa@zytor.com \
--cc=khandual@linux.vnet.ibm.com \
--cc=kirill.shutemov@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mgorman@techsingularity.net \
--cc=mhocko@kernel.org \
--cc=minchan@kernel.org \
--cc=mingo@elte.hu \
--cc=n-horiguchi@ah.jp.nec.com \
--cc=tglx@linutronix.de \
--cc=vbabka@suse.cz \
--cc=zi.yan@cs.rutgers.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.