microsoft / microsoft/WSL

Expose more CPU features on WSL1 on arm64

Open
#7,137 1 comment 1 reaction 0 assignees View on GitHub

Nobody has claimed this yet.

feature wsl1
Dominant language
C++
Stars
33.7k
Forks
1.8k
Avg merge
3d 17h
Merged PRs (30d)
116

Description

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.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

No source files or tests are identified. Start by reproducing the WSL1 arm64 lscpu output and comparing it with the native Linux output; done means WSL1 exposes the processor's supported model and CPU feature flags, including Armv8.1-A atomics.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.