* Dave Hansen <[email protected]> wrote:

> On 07/17/2015 12:45 AM, Ingo Molnar wrote:
> > Just curious: does any released hardware have AVX-512? I went by Wikipedia, 
> > which 
> > seems to list pre-release hw:
> 
> 
> >> We might know the size and composition of the individual components, but 
> >> we do 
> >> not know the size of the buffer.  Different implementations of a given 
> >> feature 
> >> are quite free to have different data stored in the buffer, or even to 
> >> rearrange 
> >> or pad it.  That's why the sizes are not explicitly called out by the 
> >> architecture and why we enumerated them before your patch that caused this 
> >> regression.
> > 
> > But we _have_ to know their structure and layout of the XSAVE context for 
> > any 
> > reasonable ptrace and signal frame support.
> 
> There are two different things here.  One is the structure and layout inside 
> of 
> the state components.  That obviously needs full kernel knowledge and can not 
> be 
> opaque, especially when the kernel needs to go looking at it (like with MPX's 
> BNDCSR for instance).
> 
> But, the relative layout of the components is up for grabs.  The CPU is 
> completely free (architecturally) to pad components or rearrange things.
>
> It's not opaque (it's fully enumerated in CPUID), but it's far from something 
> which is static or which we can realistically represent in a static structure.

Ok, agreed.

> > Can you set/get AVX-512 registers via ptrace? MPX state?
> 
> The xsave buffer is just copied out to userspace with REGSET_XSTATE. 
> Userspace 
> needs to do the same song and dance with CPUID to parse it that the kernel 
> does.

Indeed - I missed REGSET_XSTATE and its interaction with 
update_regset_xstate_info().

Good - I have no other complaints.

> > This needs some (very minor) changes to kernel/fork.c to allow an 
> > architecture 
> > to determine the full task_struct size dynamically - but looks very doable 
> > and 
> > clean. Wanna try this, or should I?
> 
> I think you already did this later in the thread.

Yeah, wanted to get a fix for the regression to Linus ASAP. If we go changing 
core 
code in kernel/fork.c we better have it in -rc3.

So right now I have these two applied:

 0f6df268588f x86/fpu, sched: Dynamically allocate 'struct fpu'
 218d096a24b4 x86/fpu, sched: Introduce CONFIG_ARCH_WANTS_DYNAMIC_TASK_STRUCT 
and use it on x86

... do we need any of the other patches you sent to get working AVX512 support?
I think we should be fine, but I don't have the hardware.

Thanks,

        Ingo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to