Daniel, Thanks for taking a look!
Daniel Henrique Barboza <dbarb...@ventanamicro.com> writes: > Hi Björj, > > On 5/14/24 08:06, Björn Töpel wrote: >> From: Björn Töpel <bj...@rivosinc.com> >> >> Virtio-based memory devices allows for dynamic resizing of virtual >> machine memory, and requires proper hotplugging (add/remove) support >> to work. >> >> Enable virtio-md-pci with the corresponding missing hotplugging >> callbacks for the RISC-V "virt" machine. >> >> Signed-off-by: Björn Töpel <bj...@rivosinc.com> >> --- >> This is basic support for MHP that works with DT. There some minor >> ACPI SRAT plumbing in there as well. Ideally we'd like proper ACPI MHP >> support as well. I have a branch [1], where I've applied this patch, >> plus ACPI GED/PC-DIMM MHP support on top of Sunil's QEMU branch >> (contains some ACPI DSDT additions) [2], for the curious/brave ones. >> However, the ACPI MHP support this is not testable on upstream Linux >> yet (ACPI AIA support, and ACPI NUMA SRAT series are ongoing). >> >> I'll follow-up with proper ACPI GED/PC-DIMM MHP patches, once the >> dependencies land (Linux kernel and QEMU). >> >> I'll post the Linux MHP/virtio-mem v2 patches later this week! >> >> >> Cheers, >> Björn >> >> [1] https://github.com/bjoto/qemu/commits/virtio-mem-pc-dimm-mhp-acpi/ >> [2] >> https://lore.kernel.org/linux-riscv/20240501121742.1215792-1-suni...@ventanamicro.com/ >> --- >> hw/riscv/Kconfig | 2 ++ >> hw/riscv/virt-acpi-build.c | 7 +++++ >> hw/riscv/virt.c | 64 +++++++++++++++++++++++++++++++++++++- >> hw/virtio/virtio-mem.c | 2 +- >> 4 files changed, 73 insertions(+), 2 deletions(-) >> >> diff --git a/hw/riscv/Kconfig b/hw/riscv/Kconfig >> index a2030e3a6ff0..08f82dbb681a 100644 >> --- a/hw/riscv/Kconfig >> +++ b/hw/riscv/Kconfig >> @@ -56,6 +56,8 @@ config RISCV_VIRT >> select PLATFORM_BUS >> select ACPI >> select ACPI_PCI >> + select VIRTIO_MEM_SUPPORTED >> + select VIRTIO_PMEM_SUPPORTED >> >> config SHAKTI_C >> bool >> diff --git a/hw/riscv/virt-acpi-build.c b/hw/riscv/virt-acpi-build.c >> index 0925528160f8..6dc3baa9ec86 100644 >> --- a/hw/riscv/virt-acpi-build.c >> +++ b/hw/riscv/virt-acpi-build.c >> @@ -610,6 +610,13 @@ build_srat(GArray *table_data, BIOSLinker *linker, >> RISCVVirtState *vms) >> } >> } >> >> + if (ms->device_memory) { >> + build_srat_memory(table_data, ms->device_memory->base, >> + memory_region_size(&ms->device_memory->mr), >> + ms->numa_state->num_nodes - 1, >> + MEM_AFFINITY_HOTPLUGGABLE | MEM_AFFINITY_ENABLED); >> + } >> + >> acpi_table_end(linker, &table); > > When the time comes I believe we'll want this chunk in a separated ACPI patch. Hmm, I first thought about adding this to the ACPI MHP series, but then realized that virtio-mem relies on SRAT for ACPI boots (again -- RISC-V Linux does not support that upstream yet...). Do you mean that you'd prefer this chunk in a separate patch? Björn