lkml.org 
[lkml]   [2021]   [May]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v5 21/28] x86/fpu/amx: Initialize child's AMX state


On Mon, May 24, 2021, at 11:21 AM, Len Brown wrote:
> On Mon, May 24, 2021 at 2:14 PM Andy Lutomirski <luto@kernel.org> wrote:
>
> > What does VOLATILE mean in this context?
>
> Volatile means caller-saved.

Just like every other extended math register except some XMMs on Windows. (Thanks you so, so much, Microsoft, for screwing this up, and thank you Intel for indulging Microsoft.)

>
> Volatile registers can not be used for globals, static, or for
> parameter passing.
>
> ie. By the time the callee is running, they must be assumed to be invalid.

Callees can’t assume anything about any of the registers unless explicitly specified. TILE is no different from RBP or XMM in this regard.

>
> This means that any routine, including the target of a system call,
> such as fork/clone, can't assume that any data exists in these
> registers.
>

If we actually believe this, then we should clear xmm, ymm, zmm, etc on every system call. Barring that, let’s come up with reasonable semantics, document it, and implement it.

\
 
 \ /
  Last update: 2021-05-25 05:46    [W:0.072 / U:3.340 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site