linux-api.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Andy Lutomirski <luto@kernel.org>
To: Florian Weimer <fweimer@redhat.com>
Cc: linux-arch <linux-arch@vger.kernel.org>,
	Linux-MM <linux-mm@kvack.org>,
	Linux API <linux-api@vger.kernel.org>, X86 ML <x86@kernel.org>,
	linuxram@us.ibm.com, Dave Hansen <dave.hansen@intel.com>,
	linux-x86_64@vger.kernel.org, Andrew Lutomirski <luto@kernel.org>,
	linuxppc-dev <linuxppc-dev@lists.ozlabs.org>
Subject: Re: [PATCH] pkeys: Introduce PKEY_ALLOC_SIGNALINHERIT and change signal semantics
Date: Tue, 08 May 2018 02:49:01 +0000	[thread overview]
Message-ID: <CALCETrX46wR_MDW=m9SVm=ejQmPAmD3+2oC3iapf75bPhnEAWQ@mail.gmail.com> (raw)
In-Reply-To: <927c8325-4c98-d7af-b921-6aafcf8fe992@redhat.com>

On Mon, May 7, 2018 at 2:48 AM Florian Weimer <fweimer@redhat.com> wrote:

> On 05/03/2018 06:05 AM, Andy Lutomirski wrote:
> > On Wed, May 2, 2018 at 7:11 PM Ram Pai <linuxram@us.ibm.com> wrote:
> >
> >> On Wed, May 02, 2018 at 09:23:49PM +0000, Andy Lutomirski wrote:
> >>>
> >>>> If I recall correctly, the POWER maintainer did express a strong
> > desire
> >>>> back then for (what is, I believe) their current semantics, which my
> >>>> PKEY_ALLOC_SIGNALINHERIT patch implements for x86, too.
> >>>
> >>> Ram, I really really don't like the POWER semantics.  Can you give
some
> >>> justification for them?  Does POWER at least have an atomic way for
> >>> userspace to modify just the key it wants to modify or, even better,
> >>> special load and store instructions to use alternate keys?
> >
> >> I wouldn't call it POWER semantics. The way I implemented it on power
> >> lead to the semantics, given that nothing was explicitly stated
> >> about how the semantics should work within a signal handler.
> >
> > I think that this is further evidence that we should introduce a new
> > pkey_alloc() mode and deprecate the old.  To the extent possible, this
> > thing should work the same way on x86 and POWER.

> Do you propose to change POWER or to change x86?

Sorry for being slow to reply.  I propose to introduce a new
PKEY_ALLOC_something variant on x86 and POWER and to make the behavior
match on both.  It should at least update the values loaded when a signal
is delivered and it should probably also update it for new threads.

For glibc, for example, I assume that you want signals to be delivered with
write access disabled to the GOT.  Otherwise you would fail to protect
against exploits that occur in signal context.  Glibc controls thread
creation, so the initial state on thread startup doesn't really matter, but
there will be more users than just glibc.

--Andy

  parent reply	other threads:[~2018-05-08  2:49 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20180502132751.05B9F401F3041@oldenburg.str.redhat.com>
     [not found] ` <248faadb-e484-806f-1485-c34a72a9ca0b@intel.com>
     [not found]   ` <822a28c9-5405-68c2-11bf-0c282887466d@redhat.com>
     [not found]     ` <20180502211254.GA5863@ram.oc3035372033.ibm.com>
     [not found]       ` <CALCETrUfO=vXg5rT-n=y8pLktcq5+ORvgpsOXCHG4GaugB3k2A@mail.gmail.com>
2018-05-02 23:38         ` [PATCH] pkeys: Introduce PKEY_ALLOC_SIGNALINHERIT and change signal semantics Ram Pai
2018-05-07  9:47           ` Florian Weimer
     [not found]     ` <57459C6F-C8BA-4E2D-99BA-64F35C11FC05@amacapital.net>
     [not found]       ` <6286ba0a-7e09-b4ec-e31f-bd091f5940ff@redhat.com>
     [not found]         ` <CALCETrVrm6yGiv6_z7RqdeB-324RoeMmjpf1EHsrGOh+iKb7+A@mail.gmail.com>
     [not found]           ` <b2df1386-9df9-2db8-0a25-51bf5ff63592@redhat.com>
     [not found]             ` <CALCETrW_Dt-HoG4keFJd8DSD=tvyR+bBCFrBDYdym4GQbfng4A@mail.gmail.com>
     [not found]               ` <20180503021058.GA5670@ram.oc3035372033.ibm.com>
     [not found]                 ` <CALCETrXRQF08exQVZqtTLOKbC8Ywq5x4EYH_1D7r5v9bdOSwbg@mail.gmail.com>
     [not found]                   ` <927c8325-4c98-d7af-b921-6aafcf8fe992@redhat.com>
2018-05-08  2:49                     ` Andy Lutomirski [this message]
2018-05-08 12:40                       ` Florian Weimer
2018-05-09 14:41                         ` Andy Lutomirski
2018-05-14 12:01                           ` Florian Weimer
2018-05-14 15:32                             ` Andy Lutomirski
2018-05-14 15:34                               ` Florian Weimer
2018-05-16 17:01                                 ` Dave Hansen
2018-05-16 20:52                             ` Ram Pai
2018-05-16 20:54                               ` Andy Lutomirski
2018-05-16 20:35                         ` Ram Pai
2018-05-16 20:37                           ` Andy Lutomirski
2018-05-16 21:07                             ` Ram Pai
2018-05-17 10:09                               ` Florian Weimer
2018-05-17 10:11                           ` Florian Weimer

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='CALCETrX46wR_MDW=m9SVm=ejQmPAmD3+2oC3iapf75bPhnEAWQ@mail.gmail.com' \
    --to=luto@kernel.org \
    --cc=dave.hansen@intel.com \
    --cc=fweimer@redhat.com \
    --cc=linux-api@vger.kernel.org \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=linux-x86_64@vger.kernel.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=linuxram@us.ibm.com \
    --cc=x86@kernel.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;
as well as URLs for NNTP newsgroup(s).