Fall back to CpuId if failed to get cache size from OS (#24989)
authorAndy Hanson <anhans@microsoft.com>
Tue, 11 Jun 2019 23:20:29 +0000 (16:20 -0700)
committerGitHub <noreply@github.com>
Tue, 11 Jun 2019 23:20:29 +0000 (16:20 -0700)
commit6d29903a0f2d966214685c7d15de4435bb4b8ee3
tree79d3cceec0f5d10f0ffd6d6361de1009b5629cb0
parent1eee9e5338118aeb6afa199658b2fdd4f318414e
Fall back to CpuId if failed to get cache size from OS (#24989)

* Fall back to CpuId if failed to get cache size from OS

It's possible for GetLogicalProcessorCacheSizeFromOS() to fail;
this happens on alpine linux where it compiles to just `return 0;`.

As a fallback, we can get the cache size from CpuId. Previously that
was specific to x86; this PR preserves the behavior that we never call
GetLogicalProcessorCacheSizeFromOS on x86.

CpuId only works on x86 and amd64; on other systems we may still return
0 from here. Then GC defaults to a cache size of only 0.25MB.

Note: Removed the code in an `#ifdef _WIN64` that was nested inside of
`#if defined (_TARGET_X86_)`. Presuming that is dead code.

* Fix exception handler
src/vm/util.cpp