Hi David and Igor,
Thank you for your patience. It's been about a month since our last
discussion, and I apologize for the delay.
This is v3 of the SPM (Specific Purpose Memory) patch. Following David's
suggestion from v2 review, I've simplified the implementation significantly.
Changes in v3:
- Removed unnecessary RAMBlock traversal and RAM_SPM flag
- Now directly iterates over NUMA nodes to update E820 entries
- Added documentation in qemu-options.hx
Use case reminder:
This feature allows passing EFI_MEMORY_SP (Specific Purpose Memory) from
host to guest VM, useful for memory reserved for specific PCI devices
(e.g., GPU memory via VFIO-PCI). The SPM memory appears as
E820_SOFT_RESERVED to the guest and is managed by device drivers rather
than the OS memory allocator.
Example usage:
-object memory-backend-ram,size=8G,id=m0
-object memory-backend-file,size=8G,id=m1,mem-path=/dev/dax0.0
-numa node,nodeid=0,memdev=m0
-numa node,nodeid=1,memdev=m1,spm=on
Please review. Thank you for your guidance on this implementation.
Best regards,
Jerry Huang