ðĪ AI Summary
This study addresses the latency distortion in existing virtual machine-based CXL-SSD simulators caused by architectural overhead, which impedes accurate hardware performance evaluation. We propose a lightweight CXL-SSD emulation framework implemented as a Linux kernel module. By entirely eliminating the virtual machine layer to enable native host access, the approach leverages the devdax interface and a custom page fault handling path to directly inject NAND latencies. Experimental results demonstrate that this method reduces miss latency by 1.4â1.6Ã and improves P99.9 tail latency by up to 4.1Ã. In the absence of NAND traffic, performance closely approximates that of remote DRAM. This work provides a high-fidelity evaluation platform for advancing research on CXL storage strategies.
ð Abstract
CXL-SSDs promise memory-semantic access to NAND-scale capacity through a small in-device DRAM cache, but scarce hardware makes emulation central to CXL-SSD research. Cylon, a state-of-the-art emulator, runs workloads in a VM, intercepting DRAM misses to inject NAND latency. We show this VM machinery adds over 3$Ξs$ per miss, exceeding high-performance NAND read latency, while repeated VM exits inflate tail miss latencies several-fold. We present CXDVirt, a kernel-module-based CXL-SSD emulator that removes the VM entirely: the device is exposed through host devdax, hits run natively via the MMU, and a custom page-fault path models NAND latency on misses. CXDVirt preserves CXL-SSDs' bimodal latency profile while reducing per-miss latency 1.4-1.6$\times$ (4.1$\times$ at P99.9); with eight threads its miss latency only doubles, against 8-9$\times$ for Cylon behind QEMU's global lock. CXDVirt stays within 5% of remote DRAM without NAND traffic, where Cylon is 3.1-3.6$\times$ slower, and enables configurable eviction and prefetch policy studies.