From: Jerome Glisse <j.glisse@gmail.com>
To: Shaohua Li <shli@fb.com>
Cc: linux-mm@kvack.org, kernel-team@fb.com,
Andrew Morton <akpm@linux-foundation.org>,
Andrea Arcangeli <aarcange@redhat.com>,
Pavel Emelyanov <xemul@parallels.com>,
Rik van Riel <riel@redhat.com>,
"Kirill A. Shutemov" <kirill@shutemov.name>,
Mel Gorman <mgorman@suse.de>, Hugh Dickins <hughd@google.com>,
Johannes Weiner <hannes@cmpxchg.org>
Subject: Re: [RFC 7/8] userfaultfd: fault try one more time
Date: Thu, 19 Nov 2015 22:04:37 -0500 [thread overview]
Message-ID: <20151120030436.GB3093@gmail.com> (raw)
In-Reply-To: <07f86ce80ddfc38fbf8247287e5b6475b1cd436d.1447964595.git.shli@fb.com>
On Thu, Nov 19, 2015 at 02:33:52PM -0800, Shaohua Li wrote:
> For a swapin memory write fault, fault handler already retry once to
> read the page in. userfaultfd can't do the retry again and fail. Give
> another retry for userfaultfd in such case. gup isn't fixed yet, so will
> return -EBUSY.
This whole patch make me nervous. I do not see the point in it. So on
page fault in first pass you have the RETRY flag set and you can either
return VM_FAULT_RETRY because (1) lock_page_or_retry() in do_swap_page()
or because (2) handle_userfault().
In second case, on retry you already have a valid read only pte so you
go directly to do_wp_page() and this is properly handle by current
handle_userfault() code. So it does not make sense to add complexity
for that case.
You seem to hint that you are doing this for the first case (1) but even
for that one it does not make sense. So if we fail to lock the page it
is because someone else is doing something with that page and most likely
it is related to the userfaultfd already (like another thread took the
fault and is doing all the steps you need). So you just want a regular
retry, ie do_swap_page() return retry and on retry it is likely that
everything is already all good. If not that it takes the slow painful
wait code path.
I genuinely do not see what benefit and reasons there is to this new
special usefaultfd retry flag.
Cheers,
Jerome
--
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:[~2015-11-20 3:04 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-11-19 22:33 [RFC 0/8] userfaultfd: add write protect support Shaohua Li
2015-11-19 22:33 ` [RFC 1/8] userfaultfd: add helper for writeprotect check Shaohua Li
2015-11-19 22:33 ` [RFC 2/8] userfaultfd: support write protection for userfault vma range Shaohua Li
2016-04-14 21:07 ` Andrea Arcangeli
2015-11-19 22:33 ` [RFC 3/8] userfaultfd: expose writeprotect API to ioctl Shaohua Li
2015-11-19 22:33 ` [RFC 4/8] userfaultfd: allow userfaultfd register success with writeprotection Shaohua Li
2015-11-19 22:33 ` [RFC 5/8] userfaultfd: undo write proctection in unregister Shaohua Li
2015-11-19 22:33 ` [RFC 6/8] userfaultfd: hook userfault handler to write protection fault Shaohua Li
2015-11-20 2:54 ` Jerome Glisse
2015-11-19 22:33 ` [RFC 7/8] userfaultfd: fault try one more time Shaohua Li
2015-11-20 3:04 ` Jerome Glisse [this message]
2015-11-19 22:33 ` [RFC 8/8] userfaultfd: enabled write protection in userfaultfd API Shaohua Li
2015-11-20 3:13 ` [RFC 0/8] userfaultfd: add write protect support 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=20151120030436.GB3093@gmail.com \
--to=j.glisse@gmail.com \
--cc=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=hannes@cmpxchg.org \
--cc=hughd@google.com \
--cc=kernel-team@fb.com \
--cc=kirill@shutemov.name \
--cc=linux-mm@kvack.org \
--cc=mgorman@suse.de \
--cc=riel@redhat.com \
--cc=shli@fb.com \
--cc=xemul@parallels.com \
/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;
as well as URLs for NNTP newsgroup(s).