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.
