Re: [PATCH v4 14/22] x86/fpu/xstate: Expand the xstate buffer on the first use of dynamic user state

From: Len Brown
Date: Mon Mar 29 2021 - 12:07:52 EST


On Mon, Mar 29, 2021 at 11:43 AM Len Brown <lenb@xxxxxxxxxx> wrote:
>
> On Mon, Mar 29, 2021 at 9:33 AM Thomas Gleixner <tglx@xxxxxxxxxxxxx> wrote:
>
> > > I found the author of this passage, and he agreed to revise it to say this
> > > was targeted primarily at VMMs.
> >
> > Why would this only a problem for VMMs?
>
> VMMs may have to emulate different hardware for different guest OS's,
> and they would likely "context switch" XCR0 to achieve that.
>
> As switching XCR0 at run-time would confuse the heck out of user-space,
> it was not imagined that a bare-metal OS would do that.

to clarify...
*switching* XCR0 on context switch is slow, but perfectly legal.

*changing* XCR0 during the lifetime of a process, in any of its tasks,
on any of its CPUs, will confuse any software that uses xgetbv/XCR0
to calculate the size of XSAVE buffers for userspace threading.


--
Len Brown, Intel Open Source Technology Center