On 12/09/2017 01:16 PM, Florian Weimer wrote:
The attached patch addresses a problem with the current x86 pkey
implementation, which makes default-readable pkeys unusable from signal
handlers because the default init_pkru value blocks access.
Thanks for looking into this!
What do you mean by "default-readable pkeys"?
I think you mean that, for any data that needs to be accessed to enter a
signal handler, it must be set to pkey=0 with the current
implementation. All other keys are inaccessible when entering a signal
handler because the "init" value disables access.
My only nit with this is whether it is the *right* interface. The
signal vs. XSAVE state thing is pretty x86 specific and I doubt that
this will be the last feature that we encounter that needs special
signal behavior.
A question more for the x86 maintainers is whether they would rather see
a pkeys-specific interface for this, or an XSAVE-specific interface
where you could specify a non-init XSAVE state for a set of XSAVE
components.