Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > linux.kernel > #1314087 > unrolled thread

Linux patch disabling AVX when eagerfpu is turned off - possibly not required

Started by"Leonid Shatz" <leonid.shatz@ravellosystems.com>
First post2016-01-21 11:40 +0100
Last post2016-01-21 22:30 +0100
Articles 9 — 5 participants

Back to article view | Back to linux.kernel


Contents

  Linux patch disabling AVX when eagerfpu is turned off - possibly not required "Leonid Shatz" <leonid.shatz@ravellosystems.com> - 2016-01-21 11:40 +0100
    Re: Linux patch disabling AVX when eagerfpu is turned off - possibly  not required Dave Hansen <dave.hansen@intel.com> - 2016-01-21 21:10 +0100
      Re: Linux patch disabling AVX when eagerfpu is turned off - possibly  not required "H. Peter Anvin" <hpa@zytor.com> - 2016-01-21 21:20 +0100
        Re: Linux patch disabling AVX when eagerfpu is turned off - possibly  not required Andy Lutomirski <luto@amacapital.net> - 2016-01-21 22:10 +0100
    Re: Linux patch disabling AVX when eagerfpu is turned off - possibly  not required Yu-cheng Yu <yu-cheng.yu@intel.com> - 2016-01-21 22:10 +0100
      Re: Linux patch disabling AVX when eagerfpu is turned off - possibly  not required "H. Peter Anvin" <hpa@zytor.com> - 2016-01-21 22:10 +0100
        Re: Linux patch disabling AVX when eagerfpu is turned off - possibly  not required Yu-cheng Yu <yu-cheng.yu@intel.com> - 2016-01-21 22:20 +0100
          RE: Linux patch disabling AVX when eagerfpu is turned off - possibly not required "Leonid Shatz" <leonid.shatz@ravellosystems.com> - 2016-01-21 22:20 +0100
            Re: Linux patch disabling AVX when eagerfpu is turned off - possibly  not required "H. Peter Anvin" <hpa@zytor.com> - 2016-01-21 22:30 +0100

#1314087 — Linux patch disabling AVX when eagerfpu is turned off - possibly not required

From"Leonid Shatz" <leonid.shatz@ravellosystems.com>
Date2016-01-21 11:40 +0100
SubjectLinux patch disabling AVX when eagerfpu is turned off - possibly not required
Message-ID<qTkOJ-3XA-11@gated-at.bofh.it>
Regarding the patch disabling AVX when eagerfpu is off:

https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=3
94db20ca240741a08d472173db13d6f6a6e5a28

We have a suggestion that Intel documentation related to usage of CR0.TS bit
may be not properly updated with additional support of AVX/AVX2/etc
instructions. In fact, there is certain ambiguity about the causes of #NM
exception in other sections of Intel documentation. Based on the chapter 2.4
INSTRUCTION EXCEPTION SPECIFICATION of Intel 64 and IA-32 Architectures
Software Developer's Manual, all SSE/SSE2/SSE4/MMX/AVX/etc. instructions,
which modify the FPU/MMX/AVX state are supposed to generate #NM exception
when CR0.TS = 1.

In addition, based on AMD documentation, the #NM exception is generated for
both SSE and AVX instructions in protected mode - refer to AMD64
Architecture Programmer's Manual Volume 4: 128-Bit and 256-Bit Media
Instructions and also "AMD64 Architecture
Programmer's Manual Volume 2: System Programming" Chapter 3.1 (Task Switched
(TS) Bit.3. When an attempt is made to execute an x87 or media instruction
while TS=1, a device-not-available exception (#NM) occurs).

Also, in our limited internal test on Intel I7 processor (repeated on two
different machines), while executing the AVX VMOVAPS instruction with CR0.TS
bit set, we've observed the #NM exception being always generated (although
we didn't perform all-inclusive tests for entire set of AVX and similar new
instructions).

In view of above findings we would like to suggest to double check if
disabling AVX together with "eagerfpu off" is actually required and is a
real necessity. It would be helpful to consult with Intel engineers
regarding related design details.

Sincerely,
Leonid Shatz,
Seniour Software Enigneer, Hypervisor Team,
Ravello Systems, Inc.

[toc] | [next] | [standalone]


#1314480 — Re: Linux patch disabling AVX when eagerfpu is turned off - possibly not required

FromDave Hansen <dave.hansen@intel.com>
Date2016-01-21 21:10 +0100
SubjectRe: Linux patch disabling AVX when eagerfpu is turned off - possibly not required
Message-ID<qTtIm-1Np-17@gated-at.bofh.it>
In reply to#1314087
On 01/21/2016 02:33 AM, Leonid Shatz wrote:
> In view of above findings we would like to suggest to double check if
> disabling AVX together with "eagerfpu off" is actually required and is a
> real necessity. It would be helpful to consult with Intel engineers
> regarding related design details.

Hi Leonid,

Thanks for the report!

Are you aware of any actual eagerfpu=off use in practice, or is this
mostly a theoretical concern?

[toc] | [prev] | [next] | [standalone]


#1314491 — Re: Linux patch disabling AVX when eagerfpu is turned off - possibly not required

From"H. Peter Anvin" <hpa@zytor.com>
Date2016-01-21 21:20 +0100
SubjectRe: Linux patch disabling AVX when eagerfpu is turned off - possibly not required
Message-ID<qTtS2-1R8-17@gated-at.bofh.it>
In reply to#1314480
On 01/21/16 12:08, Dave Hansen wrote:
> On 01/21/2016 02:33 AM, Leonid Shatz wrote:
>> In view of above findings we would like to suggest to double check if
>> disabling AVX together with "eagerfpu off" is actually required and is a
>> real necessity. It would be helpful to consult with Intel engineers
>> regarding related design details.
> 
> Hi Leonid,
> 
> Thanks for the report!
> 
> Are you aware of any actual eagerfpu=off use in practice, or is this
> mostly a theoretical concern?
> 

Looking into this, FWIW.

	-hpa

[toc] | [prev] | [next] | [standalone]


#1314527 — Re: Linux patch disabling AVX when eagerfpu is turned off - possibly not required

FromAndy Lutomirski <luto@amacapital.net>
Date2016-01-21 22:10 +0100
SubjectRe: Linux patch disabling AVX when eagerfpu is turned off - possibly not required
Message-ID<qTuEq-2ry-11@gated-at.bofh.it>
In reply to#1314491
On Jan 21, 2016 12:12 PM, "H. Peter Anvin" <hpa@zytor.com> wrote:
>
> On 01/21/16 12:08, Dave Hansen wrote:
> > On 01/21/2016 02:33 AM, Leonid Shatz wrote:
> >> In view of above findings we would like to suggest to double check if
> >> disabling AVX together with "eagerfpu off" is actually required and is a
> >> real necessity. It would be helpful to consult with Intel engineers
> >> regarding related design details.
> >
> > Hi Leonid,
> >
> > Thanks for the report!
> >
> > Are you aware of any actual eagerfpu=off use in practice, or is this
> > mostly a theoretical concern?
> >
>
> Looking into this, FWIW.

I still think that we should default eagerfpu=on on all CPUs for one
release and then, when nothing breaks, delete all the old lazy code.
I'll respin and send that patch.

--Andy

[toc] | [prev] | [next] | [standalone]


#1314523 — Re: Linux patch disabling AVX when eagerfpu is turned off - possibly not required

FromYu-cheng Yu <yu-cheng.yu@intel.com>
Date2016-01-21 22:10 +0100
SubjectRe: Linux patch disabling AVX when eagerfpu is turned off - possibly not required
Message-ID<qTuEq-2ry-1@gated-at.bofh.it>
In reply to#1314087
Hello Leonid,

You are probably right. Let me check this and get back to you.

Thanks,
Yu-cheng

[toc] | [prev] | [next] | [standalone]


#1314528 — Re: Linux patch disabling AVX when eagerfpu is turned off - possibly not required

From"H. Peter Anvin" <hpa@zytor.com>
Date2016-01-21 22:10 +0100
SubjectRe: Linux patch disabling AVX when eagerfpu is turned off - possibly not required
Message-ID<qTuEq-2ry-15@gated-at.bofh.it>
In reply to#1314523
On 01/21/16 13:03, Yu-cheng Yu wrote:
> Hello Leonid,
> 
> You are probably right. Let me check this and get back to you.
> 
> Thanks,
> Yu-cheng
> 

The hardware people have gotten back to us and this inconsistency in the
SDM is unintentional (other places in the SDM has it correctly.)  So we
should revert this patch.

	-hpa

[toc] | [prev] | [next] | [standalone]


#1314533 — Re: Linux patch disabling AVX when eagerfpu is turned off - possibly not required

FromYu-cheng Yu <yu-cheng.yu@intel.com>
Date2016-01-21 22:20 +0100
SubjectRe: Linux patch disabling AVX when eagerfpu is turned off - possibly not required
Message-ID<qTuO6-2vq-7@gated-at.bofh.it>
In reply to#1314528
On Thu, Jan 21, 2016 at 01:08:18PM -0800, H. Peter Anvin wrote:
> On 01/21/16 13:03, Yu-cheng Yu wrote:
> > Hello Leonid,
> > 
> > You are probably right. Let me check this and get back to you.
> > 
> > Thanks,
> > Yu-cheng
> > 
> 
> The hardware people have gotten back to us and this inconsistency in the
> SDM is unintentional (other places in the SDM has it correctly.)  So we
> should revert this patch.
> 
> 	-hpa
> 
Agree. Thanks Peter and Leonid!

[toc] | [prev] | [next] | [standalone]


#1314534

From"Leonid Shatz" <leonid.shatz@ravellosystems.com>
Date2016-01-21 22:20 +0100
Message-ID<qTuO6-2vq-5@gated-at.bofh.it>
In reply to#1314533
On Thu, Jan 21, 2016 at 01:08:18PM -0800, H. Peter Anvin wrote:
>> On 01/21/16 13:03, Yu-cheng Yu wrote:
>> > Hello Leonid,
>> > 
>> > You are probably right. Let me check this and get back to you.
>> > 
>> > Thanks,
>> > Yu-cheng
>> > 
>> 
>> The hardware people have gotten back to us and this inconsistency in 
>> the SDM is unintentional (other places in the SDM has it correctly.)  
>> So we should revert this patch.
>> 
>> 	-hpa
>> 
>Agree. Thanks Peter and Leonid!

Thank you all for your feedback and clarifications. That's was my assumption
that SDM was somewhat misleading, but I was not %100 sure about it. It could
be nice, though to see future releases of SDM taking this issue in account.

Leonid

[toc] | [prev] | [next] | [standalone]


#1314539 — Re: Linux patch disabling AVX when eagerfpu is turned off - possibly not required

From"H. Peter Anvin" <hpa@zytor.com>
Date2016-01-21 22:30 +0100
SubjectRe: Linux patch disabling AVX when eagerfpu is turned off - possibly not required
Message-ID<qTuXM-2zU-7@gated-at.bofh.it>
In reply to#1314534
On 01/21/16 13:19, Leonid Shatz wrote:
> 
> Thank you all for your feedback and clarifications. That's was my assumption
> that SDM was somewhat misleading, but I was not %100 sure about it. It could
> be nice, though to see future releases of SDM taking this issue in account.
> 

It will.

	-hpa

[toc] | [prev] | [standalone]


Back to top | Article view | linux.kernel


csiph-web