Re: Candidate Linux ABI for Intel AMX and hypothetical new related features
From: Len Brown
Date: Tue Mar 30 2021 - 13:57:00 EST
On Tue, Mar 30, 2021 at 1:06 PM Andy Lutomirski <luto@xxxxxxxxxxxxxx> wrote:
> > On Mar 30, 2021, at 10:01 AM, Len Brown <lenb@xxxxxxxxxx> 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.
And a proposal:
Future programs, which know that they don't need the full-blown legacy
signal stack format, can opt-in to a new format. That new format, can
be minimal (fast) by default. Perhaps, as Noah suggests, it could
have some sort of mechanism where the program can explicitly select
which state components they would want included on their signal stack,
and restored by sigreturn.
If the new fast-signal format is successful, in a number of years, it
will have spread to have taken over the world.
thoughts?
Len Brown, Intel Open Source Technology Center