There are nearly 33% of China users who are using WinXP, so I have to 
support WinXP.
The same physical machine, if WinXP, crashes randomly; if  Win10, no crash 
at all.
I did not test other Windows versions lower than Win7 SP1/Win2008 R2 SP1.
I wrote a little demo program to run on my WinXP machine, it reports 
different xgetbv results on different runs. Maybe caused by buggy WinXP 
driver?

Anyway, I just modified the V8 source of CEF(WinXP version) then recompile 
to avoid such crashes.

在 2017年6月19日星期一 UTC+8下午7:18:56,Jakob Kummerow写道:
>
> This is surprising -- the xgetbv call should indicate whether the 
> operating system supports AVX, precisely so that version number based 
> checks are not necessary.
>
> For reference, this is the commit that introduced the check: 
> https://codereview.chromium.org/878063002
> And according to Intel's own documentation, that should be enough: 
> https://software.intel.com/en-us/blogs/2011/04/14/is-avx-enabled/
>
> Zhangbo, do you know under which circumstances the xgetbv call would ever 
> claim that AVX is supported in WinXP?
>
> I guess the other question is whether we care about WinXP support at this 
> point... That OS should no longer be used for accessing the internet anyway.
>
> On Mon, Jun 19, 2017 at 12:22 PM, <[email protected] <javascript:>> wrote:
>
>> hi,
>>
>> I think V8 shoud check Windows OS version to enable AVX support.
>> AVX is only supported by Win7 SP1/Win2008 R2 SP1 and above.
>> V8 will randomly crash (C000001D, STATUS_ILLEGAL_INSTRUCTION) on my WinXP 
>> SP3 test machine, if the result of its xgetbv claims that it's AVX enabled.
>>
>> So please add OS version check for the following code(requires windows 
>> version >= 6.1 SP1):
>>
>> chromium\src\v8\src\ia32\assembler-ia32.cc
>> chromium\src\v8\src\x64\assembler-x64.cc
>>
>> bool IsAvxEnabledWindows(){
>>   bool ver_is_ok = false;
>>
>>    OSVERSIONINFOEX version_info = { sizeof version_info };
>>   ::GetVersionEx(reinterpret_cast<OSVERSIONINFO*>(&version_info));
>>   
>>   if (version_info.dwMajorVersion == 6 ) {
>>     if(version_info.dwMinorVersion > 1)
>>       ver_is_ok = true;
>>     else if((version_info.dwMinorVersion == 1) && 
>> (version_info.wServicePackMajor >= 1))
>>       ver_is_ok = true;
>>   } else if (version_info.dwMajorVersion > 6) {
>>     ver_is_ok = true;
>>   }
>>
>>   return ver_is_ok;
>> }
>>
>> if (IsAvxEnabledWindows() && cpu.has_avx() && FLAG_enable_avx && 
>> cpu.has_osxsave() &&
>>       OSHasAVXSupport()) {
>>     supported_ |= 1u << AVX;
>>   }
>>
>> -- 
>> -- 
>> v8-dev mailing list
>> [email protected] <javascript:>
>> http://groups.google.com/group/v8-dev
>> --- 
>> You received this message because you are subscribed to the Google Groups 
>> "v8-dev" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
-- 
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev
--- 
You received this message because you are subscribed to the Google Groups 
"v8-dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to