Overview
Linux Boot Parameters
nosoftreserve
Early Boot
Memory Map Creation
EFI Memory Map Is Consulted / Created
CXL Memory is set aside to be handled by the CXL driver
IO Resources are created for each piece
NUMA Node Creation
ACPI CEDT and SRAT table are used to create Nodes from Proximity domains (PXM)
Memory Tier Creation
A default tier is created with all nodes.
Contiguous Memory Allocation
Any requested CMA is allocated from Online nodes
Init Finishes, Drivers start probing
ACPI and PCI Drivers
Detect CXL device, marking it for probe by CXL driver
CXL Driver Operation
Base object creation (root, port, memdev)
CEDT CFMWS IO Resource creation
Decoder creation (root, switch, endpoint)
Logical device creation (region, endpoint)
Auto-regions surfaced as DAX region
DAX Driver Operation
DAX kmem driver surfaces dax device
DAX kmem IO resource creation
DAX kmem surfaces memory region to Memory Hotplug to add to page allocator as “driver managed memory”
Memory Hotplug
mhp component surfaces a memory region as multiple memory blocks to the page allocator
blocks are onlined into the requested zone (NORMAL or MOVABLE)
Memory is marked “Driver Managed” to avoid kexec from using it as region for kernel updates