Re: [PATCH v4 0/10] x86/xsaves: Fix XSAVES known issues

From: Dave Hansen
Date: Fri Apr 29 2016 - 18:42:19 EST


On 04/29/2016 01:49 PM, Andy Lutomirski wrote:
>> >
>> > But I also think it would be pretty nice if 'ls' didn't pay the 2k cost
>> > to have AVX-512 state if it's not using AVX-512. We also don't have to
>> > do this with CR0.TS. We'd actually use a combination of out-of-line
>> > (not appended to task_struct) XSAVE buffers and XGETBV1 to check the
>> > size of our XSAVE buffer before we call XSAVE* and resize it when needed.
>> >
>> > Maybe nobody will ever care enough about 2kbytes/thread, though.
> I suspect we're so far about 2k/thread that no one cares.
>
...
> However, what do we do if we run out when memory when trying to reallocate?

The thread has to die a horrible death. We can switch away from it, but
can never switch back to it. Well we can switch to it, we just can't
return to userspace.

Actually, though... On my laptop 1/3 of the task_struct is XSAVE state
(it's ~3k). With AVX-512, ~3/5 of it will be XSAVE, and it will be ~5k
(>1 page). Breaking it in to two pieces makes it overall less likely
that we'd have to fail an allocation.

We'd be in a situation where we probably can't fork *anyway* if that
happened.