From: Peter Zijlstra <peterz@infradead.org>
To: Anshuman Khandual <khandual@linux.vnet.ibm.com>
Cc: Laurent Dufour <ldufour@linux.vnet.ibm.com>,
paulmck@linux.vnet.ibm.com, akpm@linux-foundation.org,
kirill@shutemov.name, ak@linux.intel.com, mhocko@kernel.org,
dave@stgolabs.net, jack@suse.cz,
Matthew Wilcox <willy@infradead.org>,
linux-kernel@vger.kernel.org, linux-mm@kvack.org,
haren@linux.vnet.ibm.com, npiggin@gmail.com,
bsingharora@gmail.com, Tim Chen <tim.c.chen@linux.intel.com>
Subject: Re: [RFC v5 02/11] mm: Prepare for FAULT_FLAG_SPECULATIVE
Date: Tue, 8 Aug 2017 12:42:01 +0200 [thread overview]
Message-ID: <20170808104201.sh7iyanrjs2wjz3y@hirez.programming.kicks-ass.net> (raw)
In-Reply-To: <7e770060-32b2-c136-5d34-2f078800df21@linux.vnet.ibm.com>
On Tue, Aug 08, 2017 at 03:54:01PM +0530, Anshuman Khandual wrote:
> On 06/16/2017 11:22 PM, Laurent Dufour wrote:
> > From: Peter Zijlstra <peterz@infradead.org>
> >
> > When speculating faults (without holding mmap_sem) we need to validate
> > that the vma against which we loaded pages is still valid when we're
> > ready to install the new PTE.
> >
> > Therefore, replace the pte_offset_map_lock() calls that (re)take the
> > PTL with pte_map_lock() which can fail in case we find the VMA changed
> > since we started the fault.
>
> Where we are checking if VMA has changed or not since the fault ?
Not there yet, this is what you call a preparatory patch. They help
review in that you can consider smaller steps.
> > diff --git a/mm/memory.c b/mm/memory.c
> > index fd952f05e016..40834444ea0d 100644
> > --- a/mm/memory.c
> > +++ b/mm/memory.c
> > @@ -2240,6 +2240,12 @@ static inline void wp_page_reuse(struct vm_fault *vmf)
> > pte_unmap_unlock(vmf->pte, vmf->ptl);
> > }
> >
> > +static bool pte_map_lock(struct vm_fault *vmf)
> > +{
> > + vmf->pte = pte_offset_map_lock(vmf->vma->vm_mm, vmf->pmd, vmf->address, &vmf->ptl);
> > + return true;
> > +}
>
> This is always true ? Then we should not have all these if (!pte_map_lock(vmf))
> check blocks down below.
Later patches will make it possible to return false. This patch is about
the placing this call. Having this in a separate patch makes it easier
to review all those new error conditions.
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>
next prev parent reply other threads:[~2017-08-08 10:42 UTC|newest]
Thread overview: 37+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-06-16 17:52 [RFC v5 00/11] Speculative page faults Laurent Dufour
2017-06-16 17:52 ` [RFC v5 01/11] mm: Dont assume page-table invariance during faults Laurent Dufour
2017-07-07 7:07 ` Balbir Singh
2017-07-10 17:48 ` Laurent Dufour
2017-07-11 4:26 ` Balbir Singh
2017-08-08 10:04 ` Anshuman Khandual
2017-08-08 9:45 ` Anshuman Khandual
2017-08-08 12:11 ` Laurent Dufour
2017-06-16 17:52 ` [RFC v5 02/11] mm: Prepare for FAULT_FLAG_SPECULATIVE Laurent Dufour
2017-08-08 10:24 ` Anshuman Khandual
2017-08-08 10:42 ` Peter Zijlstra [this message]
2017-06-16 17:52 ` [RFC v5 03/11] mm: Introduce pte_spinlock " Laurent Dufour
2017-08-08 10:35 ` Anshuman Khandual
2017-08-08 12:16 ` Laurent Dufour
2017-06-16 17:52 ` [RFC v5 04/11] mm: VMA sequence count Laurent Dufour
2017-08-08 10:59 ` Anshuman Khandual
2017-08-08 11:04 ` Peter Zijlstra
2017-06-16 17:52 ` [RFC v5 05/11] mm: fix lock dependency against mapping->i_mmap_rwsem Laurent Dufour
2017-08-08 11:17 ` Anshuman Khandual
2017-08-08 12:20 ` Laurent Dufour
2017-08-08 12:49 ` Jan Kara
2017-08-08 13:08 ` Laurent Dufour
2017-08-08 13:15 ` Peter Zijlstra
2017-08-08 13:34 ` Laurent Dufour
2017-06-16 17:52 ` [RFC v5 06/11] mm: Protect VMA modifications using VMA sequence count Laurent Dufour
2017-06-16 17:52 ` [RFC v5 07/11] mm: RCU free VMAs Laurent Dufour
2017-06-16 17:52 ` [RFC v5 08/11] mm: Provide speculative fault infrastructure Laurent Dufour
2017-06-16 17:52 ` [RFC v5 09/11] mm: Try spin lock in speculative path Laurent Dufour
2017-07-05 18:50 ` Peter Zijlstra
2017-07-06 13:46 ` Laurent Dufour
2017-07-06 14:48 ` Peter Zijlstra
2017-07-06 15:29 ` Laurent Dufour
2017-07-06 16:13 ` Peter Zijlstra
2017-06-16 17:52 ` [RFC v5 10/11] x86/mm: Add speculative pagefault handling Laurent Dufour
2017-06-16 17:52 ` [RFC v5 11/11] powerpc/mm: Add speculative page fault Laurent Dufour
2017-07-03 17:32 ` [RFC v5 00/11] Speculative page faults Laurent Dufour
2017-07-07 1:54 ` Balbir Singh
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=20170808104201.sh7iyanrjs2wjz3y@hirez.programming.kicks-ass.net \
--to=peterz@infradead.org \
--cc=ak@linux.intel.com \
--cc=akpm@linux-foundation.org \
--cc=bsingharora@gmail.com \
--cc=dave@stgolabs.net \
--cc=haren@linux.vnet.ibm.com \
--cc=jack@suse.cz \
--cc=khandual@linux.vnet.ibm.com \
--cc=kirill@shutemov.name \
--cc=ldufour@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@kernel.org \
--cc=npiggin@gmail.com \
--cc=paulmck@linux.vnet.ibm.com \
--cc=tim.c.chen@linux.intel.com \
--cc=willy@infradead.org \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox