From: John Stultz <john.stultz@linaro.org>
To: Johannes Weiner <hannes@cmpxchg.org>
Cc: Dave Hansen <dave@sr71.net>, "H. Peter Anvin" <hpa@zytor.com>,
LKML <linux-kernel@vger.kernel.org>,
Andrew Morton <akpm@linux-foundation.org>,
Android Kernel Team <kernel-team@android.com>,
Robert Love <rlove@google.com>, Mel Gorman <mel@csn.ul.ie>,
Hugh Dickins <hughd@google.com>, Rik van Riel <riel@redhat.com>,
Dmitry Adamushko <dmitry.adamushko@gmail.com>,
Neil Brown <neilb@suse.de>,
Andrea Arcangeli <aarcange@redhat.com>,
Mike Hommey <mh@glandium.org>, Taras Glek <tglek@mozilla.com>,
Jan Kara <jack@suse.cz>,
KOSAKI Motohiro <kosaki.motohiro@gmail.com>,
Michel Lespinasse <walken@google.com>,
Minchan Kim <minchan@kernel.org>,
"linux-mm@kvack.org" <linux-mm@kvack.org>
Subject: Re: [PATCH 0/5] Volatile Ranges (v12) & LSF-MM discussion fodder
Date: Wed, 2 Apr 2014 12:37:13 -0700 [thread overview]
Message-ID: <CALAqxLX1EADOVw_OrB4eP9c__7eftpCgWPU=u6gH6bZ5u3FCMQ@mail.gmail.com> (raw)
In-Reply-To: <20140402180707.GT14688@cmpxchg.org>
On Wed, Apr 2, 2014 at 11:07 AM, Johannes Weiner <hannes@cmpxchg.org> wrote:
> On Wed, Apr 02, 2014 at 10:48:03AM -0700, John Stultz wrote:
>> I suspect handling the SIGBUS and patching up the purged page you
>> trapped on is likely much to complicated for most use cases. But I do
>> think SIGBUS is preferable to zero-fill on purged page access, just
>> because its likely to be easier to debug applications.
>
> Fully agreed, but it seems a bit overkill to add a separate syscall, a
> range-tree on top of shmem address_spaces, and an essentially new
> programming model based on SIGBUS userspace fault handling (incl. all
> the complexities and confusion this inevitably will bring when people
> DO end up passing these pointers into kernel space) just to be a bit
> nicer about use-after-free bugs in applications.
Its more about making an interface that has graspable semantics to
userspace, instead of having the semantics being a side-effect of the
implementation.
Tying volatility to the page-clean state and page-was-purged to
page-present seems problematic to me, because there are too many ways
to change the page-clean or page-present outside of the interface
being proposed.
I feel this causes a cascade of corner cases that have to be explained
to users of the interface.
Also I disagree we're adding a new programming model, as SIGBUSes can
already be caught, just that there's not usually much one can do,
where with volatile pages its more likely something could be done. And
again, its really just a side-effect of having semantics (SIGBUS on
purged page access) that are more helpful from a applications
perspective.
As for the separate syscall: Again, this is mainly needed to handle
allocation failures that happen mid-way through modifying the range.
There may still be a way to do the allocation first and only after it
succeeds do the modification. The vma merge/splitting logic doesn't
make this easy but if we can be sure that on a failed split of 1 vma
-> 3 vmas (which may fail half way) we can re-merge w/o allocation and
error out (without having to do any other allocations), this might be
avoidable. I'm still wanting to look at this. If so, it would be
easier to re-add this support under madvise, if folks really really
don't like the new syscall. For the most part, having the separate
syscall allows us to discuss other details of the semantics, which to
me are more important then the syscall naming.
thanks
-john
--
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:[~2014-04-02 19:37 UTC|newest]
Thread overview: 57+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-03-21 21:17 John Stultz
2014-03-21 21:17 ` [PATCH 1/5] vrange: Add vrange syscall and handle splitting/merging and marking vmas John Stultz
2014-03-23 12:20 ` Jan Kara
2014-03-23 20:34 ` John Stultz
2014-03-23 16:50 ` KOSAKI Motohiro
2014-04-08 18:52 ` John Stultz
2014-03-21 21:17 ` [PATCH 2/5] vrange: Add purged page detection on setting memory non-volatile John Stultz
2014-03-23 12:29 ` Jan Kara
2014-03-23 20:21 ` John Stultz
2014-03-23 17:42 ` KOSAKI Motohiro
2014-04-07 18:37 ` John Stultz
2014-04-07 22:14 ` KOSAKI Motohiro
2014-04-08 3:09 ` John Stultz
2014-03-23 17:50 ` KOSAKI Motohiro
2014-03-23 20:26 ` John Stultz
2014-03-23 21:50 ` KOSAKI Motohiro
2014-04-09 18:29 ` John Stultz
2014-03-21 21:17 ` [PATCH 3/5] vrange: Add page purging logic & SIGBUS trap John Stultz
2014-03-23 23:44 ` KOSAKI Motohiro
2014-04-10 18:49 ` John Stultz
2014-03-21 21:17 ` [PATCH 4/5] vrange: Set affected pages referenced when marking volatile John Stultz
2014-03-24 0:01 ` KOSAKI Motohiro
2014-03-21 21:17 ` [PATCH 5/5] vmscan: Age anonymous memory even when swap is off John Stultz
2014-03-24 17:33 ` Rik van Riel
2014-03-24 18:04 ` John Stultz
2014-04-01 21:21 ` [PATCH 0/5] Volatile Ranges (v12) & LSF-MM discussion fodder Johannes Weiner
2014-04-01 21:34 ` H. Peter Anvin
2014-04-01 21:35 ` H. Peter Anvin
2014-04-01 23:01 ` Dave Hansen
2014-04-02 4:12 ` John Stultz
2014-04-02 16:36 ` Johannes Weiner
2014-04-02 17:40 ` John Stultz
2014-04-02 17:58 ` Johannes Weiner
2014-04-02 19:01 ` John Stultz
2014-04-02 19:47 ` Johannes Weiner
2014-04-02 20:13 ` John Stultz
2014-04-02 22:44 ` Jan Kara
2014-04-11 19:32 ` John Stultz
2014-04-07 5:48 ` Minchan Kim
2014-04-08 4:32 ` Kevin Easton
2014-04-08 3:38 ` John Stultz
2014-04-07 5:24 ` Minchan Kim
2014-04-02 4:03 ` John Stultz
2014-04-02 4:07 ` H. Peter Anvin
2014-04-02 16:30 ` Johannes Weiner
2014-04-02 16:32 ` H. Peter Anvin
2014-04-02 16:37 ` H. Peter Anvin
2014-04-02 17:18 ` Johannes Weiner
2014-04-02 17:40 ` Dave Hansen
2014-04-02 17:48 ` John Stultz
2014-04-02 18:07 ` Johannes Weiner
2014-04-02 19:37 ` John Stultz [this message]
2014-04-02 18:31 ` Andrea Arcangeli
2014-04-02 19:27 ` Johannes Weiner
2014-04-07 6:19 ` Minchan Kim
2014-04-02 19:51 ` John Stultz
2014-04-07 6:11 ` Minchan Kim
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='CALAqxLX1EADOVw_OrB4eP9c__7eftpCgWPU=u6gH6bZ5u3FCMQ@mail.gmail.com' \
--to=john.stultz@linaro.org \
--cc=aarcange@redhat.com \
--cc=akpm@linux-foundation.org \
--cc=dave@sr71.net \
--cc=dmitry.adamushko@gmail.com \
--cc=hannes@cmpxchg.org \
--cc=hpa@zytor.com \
--cc=hughd@google.com \
--cc=jack@suse.cz \
--cc=kernel-team@android.com \
--cc=kosaki.motohiro@gmail.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mel@csn.ul.ie \
--cc=mh@glandium.org \
--cc=minchan@kernel.org \
--cc=neilb@suse.de \
--cc=riel@redhat.com \
--cc=rlove@google.com \
--cc=tglek@mozilla.com \
--cc=walken@google.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