Speaker
Description
The Device and Specific Purpose Memory Microconference is proposed as a space to discuss topics that cross MM, Virtualization, and Memory device-driver boundaries. Beyond CXL this includes software methods for device-coherent memory via ZONE_DEVICE, physical memory pooling / sharing, and specific purpose memory application ABIs like device-dax, hugetlbfs, and guest_memfd. Some suggested topic areas include, but not limited to:
- NUMA vs Specific Purpose Memory challenges
- Core-MM services vs page allocator isolation
- CXL use case challenges
- Hotness Tracking and Migration Offloads
- ZONE_DEVICE future for Accelerator Memory
- ZONE_DEVICE future for CXL Memory Expansion
- PMEM, NVDIMM, and DAX "legacy" challenges
- Memory hotplug vs Device Memory
- Memory RAS and repair gaps and challenges
- Dynamic Capacity Device ABI (sparse memfd?)
- Confidential Memory challenges
- DMABUF beyond DRM use cases
- virtiomem and virtiofs vs DAX and CXL challenges
- Peer-to-peer DMA challenges
- CXL Memory Pool Management
- Device Memory testing
Progress made on topics discussed at 2025 Plumbers:
- To online or not online CXL memory?
- CXL HDM-DB support for Linux
- Unifying sources of page hotness information
- Protected DMAbufs and its dynamic memory assignment woes
- DAMON-based Pages Migration for {C,G,X}PU [un]attached NUMA nodes
- FAMFS Update: Status, DAX Challenges & Use Cases
"Device Memory" Background:
"Device Memory" is a catch-all term for the collection of platform
technologies that add memory to a system outside of the typical "System RAM" default pool. Compute Express Link (CXL), a coherent interconnect that allows memory and caching-agent expansion over PCIe phys, is one such technology. GPU/AI accelerators with hardware coherent memory, or software coherent memory (ZONE_DEVICE::DEVICE_PRIVATE), are another example technology.
The problem is how to keep Device / Specific Purpose memory contained to its specific consumers while also offering typical core-mm services. Solutions to that problem potentially intersect mechanisms like numactl, hugetlbfs, memfd, and guest_memfd. For example, guest_memfd is a kind of specific-purpose memory allocator.