Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Help confirm Windows bug with Intel big.LITTLE CPUs (>= 12th Gen.) #129

Closed
kimwalisch opened this issue Nov 2, 2022 · 3 comments
Closed
Assignees

Comments

@kimwalisch
Copy link
Owner

kimwalisch commented Nov 2, 2022

If you have an Intel big.LITTLE CPU (>= 12th Gen.) can you please run the command below on your Windows PC and post the output in this thread:

primesieve --cpu-info

# Output on my Windows 11 PC
12th Gen Intel(R) Core(TM) i5-12600K
Logical CPU cores: 16
L1 cache size: 48 KiB
L2 cache size: 1280 KiB
L3 cache size: 20 MiB
L1 cache sharing: 2 threads
L2 cache sharing: 2 threads
L3 cache sharing: 16 threads

(If primesieve is not yet installed on your PC, you can install it using: winget install primesieve)

If a CPU has both performance and efficiency CPU cores primesieve usually detects the cache sizes of the efficiency CPU cores because using these cache sizes provides the best overall multi-threading performance. However on my Windows PC with an i5-12600 Intel Alder Lake CPU primesieve is not able to detect the cache sizes of the efficiency CPU cores because Windows only reports the cache sizes of the performance CPU cores (at least on my PC). On current Intel big.LITTLE CPUs the performance CPU cores have 48 KiB L1 data cache per core whereas the efficiency CPU cores have 32 KiB L1 data cache per core.

I think this is a Windows bug (caused GetLogicalProcessorInformationEx from kernel32.dll) and I need feedback from other Windows users to know if they are experiencing the same issue. Funnily this bug was not present on my Windows 10 PC at the beginning of this year, so this bug could have been introduced by a recent Windows update. Another possible explanation would be that the bug was triggered when I disabled/re-enabled the efficiency CPU cores in BIOS for testing.

Bug also present in WSL2

This bug can also be triggered from the Windows Subsystem for Linux using my i5-12600 CPU. In the command below only the L1 data cache size of the performance CPU cores is reported.

for i in {0..64}; do cat /sys/devices/system/cpu/cpu$i/cache/index0/size 2>/dev/null; done | uniq
48 KiB
@kimwalisch kimwalisch self-assigned this Nov 2, 2022
@kimwalisch kimwalisch pinned this issue Nov 2, 2022
@kimwalisch kimwalisch added the bug label Nov 2, 2022
@kimwalisch kimwalisch changed the title Help wanted: need information about Intel big.LITTLE CPUs on Windows Help confirm Windows bug with Intel big.LITTLE CPUs (>= 12th Gen.) Nov 3, 2022
@kimwalisch
Copy link
Owner Author

My Windows bug disappeared after updating to the latest Windows 11 version 22H2. However the WSL2 bug is stil present (but this is less cirtical).

@kimwalisch kimwalisch unpinned this issue Nov 19, 2022
@catb0t
Copy link

catb0t commented Nov 30, 2022

I can confirm this doesn't exist in 22H2, but didn't test in a prior release. And yes, it affects WSL2, still sadly

@kimwalisch
Copy link
Owner Author

I can confirm this doesn't exist in 22H2, but didn't test in a prior release. And yes, it affects WSL2, still sadly

Thanks, I opened an issue on the Microsoft WSL repo for this: microsoft/WSL#9121. But I guess it might take a few years until Microsoft fixes it...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants