Thread (35 messages) 35 messages, 12 authors, 2021-04-12

Re: Candidate Linux ABI for Intel AMX and hypothetical new related features

flat view

From: Dave Hansen <hidden>
Date: 2021-03-30 19:13:38
Also in: lkml

On 3/30/21 10:56 AM, Len Brown wrote:
On Tue, Mar 30, 2021 at 1:06 PM Andy Lutomirski [off-list ref] wrote:
quoted
quoted
On Mar 30, 2021, at 10:01 AM, Len Brown [off-list ref] wrote:
Is it required (by the "ABI") that a user program has everything
on the stack for user-space XSAVE/XRESTOR to get back
to the state of the program just before receiving the signal?
The current Linux signal frame format has XSTATE in uncompacted format,
so everything has to be there.
Maybe we could have an opt in new signal frame format, but the details would need to be worked out.

It is certainly the case that a signal should be able to be delivered, run “async-signal-safe” code,
and return, without corrupting register contents.
And so an an acknowledgement:

We can't change the legacy signal stack format without breaking
existing programs.  The legacy is uncompressed XSTATE.  It is a
complete set of architectural state -- everything necessary to
XRESTOR.  Further, the sigreturn flow allows the signal handler to
*change* any of that state, so that it becomes active upon return from
signal.
One nit with this: XRSTOR itself can work with the compacted format or
uncompacted format.  Unlike the XSAVE/XSAVEC side where compaction is
explicit from the instruction itself, XRSTOR changes its behavior by
reading XCOMP_BV.  There's no XRSTORC.

The issue with using the compacted format is when legacy software in the
signal handler needs to go access the state.  *That* is what can't
handle a change in the XSAVE buffer format (either optimized/XSAVEOPT,
or compacted/XSAVEC).
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help