microsoft / WSL

Issues found on WSL
https://docs.microsoft.com/windows/wsl
MIT License
17.42k stars 822 forks source link

Expose more CPU features on WSL1 on arm64 #7137

Open woachk opened 3 years ago

woachk commented 3 years ago

On some Arm hardware with ARMv8.4-A:

$ lscpu Architecture: aarch64 CPU op-mode(s): 64-bit Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 1 Socket(s): 4 Vendor ID: ARM Model: 0 Model name: Cortex-A57 Stepping: r1p0 CPU max MHz: 1000.0000 BogoMIPS: 1000 Hypervisor vendor: Windows Subsystem for Linux Virtualization type: container Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32

on WSL1. This does not represent the native feature set of the processor and reports it as a Cortex-A57. A more real feature for that processor is:

$ lscpu Architecture: aarch64 Byte Order: Little Endian CPU(s): 4 On-line CPU(s) list: 0-3 Thread(s) per core: 1 Core(s) per socket: 4 Socket(s): 1 NUMA node(s): 1 Vendor ID: ARM Model: 0 Stepping: r0p0 BogoMIPS: 48.00 NUMA node0 CPU(s): 0,1 Flags: fp asimd evtstrm aes pmull sha1 sha2 crc32 atomics fphp asimdhp cpuid asimdrdm jscvt fcma lrcpc dcpop sha3 asimddp sha512 asimdfhm dit uscat ilrcpc flagm ssbs

with a Linux installation the same hardware.

This notably prevents apps from even using Armv8.1-A atomics support on WSL1 for that hardware.

Biswa96 commented 3 years ago

Wondering what Hyper-V VM shows.