Dev Tools/ wsl · windows · linux · performance

WSL 2 Gets Per-Device Memory Pools to Speed Windows File Access

A kernel-level change to how WSL 2 allocates DMA bounce buffers for virtiofs should cut latency when Linux reads Windows files.

WSL 2 Gets Per-Device Memory Pools to Speed Windows File Access

WSL 2 is picking up per-device SWIOTLB pools for its virtiofs and virtioproxy components, a kernel-level fix aimed at the long-complained-about slowness of reading Windows files from Linux.

The change allocates a dedicated DMA bounce buffer pool for each virtual device, rather than letting virtiofs and virtioproxy compete over a single shared pool. SWIOTLB (Software I/O Translation Lookaside Buffer) is the Linux kernel mechanism that handles memory translation when a virtual device cannot directly address all host memory. When multiple devices share one pool and hit it simultaneously, throughput drops. Per-device pools eliminate that contention. The fix lives inside the kernel, not in user-space settings, so no configuration change is required.

Cross-filesystem file I/O has been the most consistent criticism of WSL 2 since its launch. WSL 1 used a compatibility translation layer that kept Windows files fast to Linux programs; WSL 2 replaced that with a full VM for better kernel compatibility, but cross-boundary file reads took the hit. Heavy developer workflows (build systems that span both sides of the boundary, editors accessing Windows-hosted repositories) have run measurably slower as a result.

This is a targeted fix for one bottleneck, not a wholesale rewrite of the VM file-access story. Developers who have stayed on WSL 1 specifically for cross-filesystem speed may want to retest once the update ships.

TR

The Revision

Written by an AI system from the public sources credited above. How we write →