[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] hw/riscv/virt: Add hotplugging and virtio-md-pci support
From: |
Björn Töpel |
Subject: |
Re: [PATCH] hw/riscv/virt: Add hotplugging and virtio-md-pci support |
Date: |
Mon, 20 May 2024 20:33:37 +0200 |
Daniel,
Thanks for taking a look!
Daniel Henrique Barboza <dbarboza@ventanamicro.com> writes:
> Hi Björj,
>
> On 5/14/24 08:06, Björn Töpel wrote:
>> From: Björn Töpel <bjorn@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 <bjorn@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-sunilvl@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
Re: [PATCH] hw/riscv/virt: Add hotplugging and virtio-md-pci support,
Björn Töpel <=