From: Igor Mammedov <imammedo@redhat.com>
To: Zhao Liu <zhao1.liu@intel.com>
Cc: "Paolo Bonzini" <pbonzini@redhat.com>,
"Michael S . Tsirkin" <mst@redhat.com>,
"Philippe Mathieu-Daudé" <philmd@linaro.org>,
"Marcel Apfelbaum" <marcel.apfelbaum@gmail.com>,
"Thomas Huth" <thuth@redhat.com>,
qemu-devel@nongnu.org, devel@lists.libvirt.org,
kvm@vger.kernel.org, qemu-riscv@nongnu.org, qemu-arm@nongnu.org,
"Richard Henderson" <richard.henderson@linaro.org>,
"Sergio Lopez" <slp@redhat.com>,
"Gerd Hoffmann" <kraxel@redhat.com>,
"Peter Maydell" <peter.maydell@linaro.org>,
"Laurent Vivier" <lvivier@redhat.com>,
"Jiaxun Yang" <jiaxun.yang@flygoat.com>,
"Yi Liu" <yi.l.liu@intel.com>,
"Eduardo Habkost" <eduardo@habkost.net>,
"Alistair Francis" <alistair.francis@wdc.com>,
"Daniel Henrique Barboza" <dbarboza@ventanamicro.com>,
"Marcelo Tosatti" <mtosatti@redhat.com>,
"Weiwei Li" <liwei1518@gmail.com>, "Amit Shah" <amit@kernel.org>,
"Xiaoyao Li" <xiaoyao.li@intel.com>,
"Yanan Wang" <wangyanan55@huawei.com>,
"Helge Deller" <deller@gmx.de>,
"Palmer Dabbelt" <palmer@dabbelt.com>,
"Daniel P . Berrangé" <berrange@redhat.com>,
"Ani Sinha" <anisinha@redhat.com>,
"Fabiano Rosas" <farosas@suse.de>,
"Liu Zhiwei" <zhiwei_liu@linux.alibaba.com>,
"Clément Mathieu--Drif" <clement.mathieu--drif@eviden.com>,
"Marc-André Lureau" <marcandre.lureau@redhat.com>,
"Huacai Chen" <chenhuacai@kernel.org>,
"Jason Wang" <jasowang@redhat.com>,
"Mark Cave-Ayland" <mark.caveayland@nutanix.com>,
"BALATON Zoltan" <balaton@eik.bme.hu>,
"Peter Krempa" <pkrempa@redhat.com>,
"Jiri Denemark" <jdenemar@redhat.com>
Subject: Re: [PATCH v5 04/28] hw/i386/pc: Remove PCMachineClass::legacy_cpu_hotplug field
Date: Wed, 17 Dec 2025 14:57:09 +0100 [thread overview]
Message-ID: <20251217145709.21b9e2d6@imammedo> (raw)
In-Reply-To: <20251202162835.3227894-5-zhao1.liu@intel.com>
On Wed, 3 Dec 2025 00:28:11 +0800
Zhao Liu <zhao1.liu@intel.com> wrote:
> From: Philippe Mathieu-Daudé <philmd@linaro.org>
>
> Now all PC & Q35 machiens are using modern hotplug from the beginning,
> and all legacy_cpu_hotplug flags keep false during runtime.
>
> So it's safe to remove legacy_cpu_hotplug flags and related properties,
> with unused gpe_cpu field.
>
> Signed-off-by: Philippe Mathieu-Daudé <philmd@linaro.org>
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> Signed-off-by: Zhao Liu <zhao1.liu@intel.com>
Acked-by: Igor Mammedov <imammedo@redhat.com>
> ---
> Changes since v4:
> * Referring Igor's v5 [*], drop gpe_cpu field and does not only remove
> build_legacy_cpu_hotplug_aml(), but instead remove the entire
> cpu_hotplug.c file in a separate patch.
>
> [*]: https://lore.kernel.org/qemu-devel/20251031142825.179239-1-imammedo@redhat.com/
> ---
> hw/acpi/ich9.c | 40 ++++------------------------------------
> hw/acpi/piix4.c | 40 ++++------------------------------------
> hw/i386/acpi-build.c | 4 +---
> include/hw/acpi/ich9.h | 2 --
> include/hw/acpi/piix4.h | 2 --
> include/hw/i386/pc.h | 3 ---
> 6 files changed, 9 insertions(+), 82 deletions(-)
>
> diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c
> index 54590129c695..f254f3879716 100644
> --- a/hw/acpi/ich9.c
> +++ b/hw/acpi/ich9.c
> @@ -339,26 +339,6 @@ static void ich9_pm_get_gpe0_blk(Object *obj, Visitor *v, const char *name,
> visit_type_uint32(v, name, &value, errp);
> }
>
> -static bool ich9_pm_get_cpu_hotplug_legacy(Object *obj, Error **errp)
> -{
> - ICH9LPCState *s = ICH9_LPC_DEVICE(obj);
> -
> - return s->pm.cpu_hotplug_legacy;
> -}
> -
> -static void ich9_pm_set_cpu_hotplug_legacy(Object *obj, bool value,
> - Error **errp)
> -{
> - ICH9LPCState *s = ICH9_LPC_DEVICE(obj);
> -
> - assert(!value);
> - if (s->pm.cpu_hotplug_legacy && value == false) {
> - acpi_switch_to_modern_cphp(&s->pm.gpe_cpu, &s->pm.cpuhp_state,
> - ICH9_CPU_HOTPLUG_IO_BASE);
> - }
> - s->pm.cpu_hotplug_legacy = value;
> -}
> -
> static bool ich9_pm_get_enable_tco(Object *obj, Error **errp)
> {
> ICH9LPCState *s = ICH9_LPC_DEVICE(obj);
> @@ -403,7 +383,6 @@ void ich9_pm_add_properties(Object *obj, ICH9LPCPMRegs *pm)
> {
> static const uint32_t gpe0_len = ICH9_PMIO_GPE0_LEN;
> pm->acpi_memory_hotplug.is_enabled = true;
> - pm->cpu_hotplug_legacy = false;
> pm->disable_s3 = 0;
> pm->disable_s4 = 0;
> pm->s4_val = 2;
> @@ -422,9 +401,6 @@ void ich9_pm_add_properties(Object *obj, ICH9LPCPMRegs *pm)
> NULL, NULL, pm);
> object_property_add_uint32_ptr(obj, ACPI_PM_PROP_GPE0_BLK_LEN,
> &gpe0_len, OBJ_PROP_FLAG_READ);
> - object_property_add_bool(obj, "cpu-hotplug-legacy",
> - ich9_pm_get_cpu_hotplug_legacy,
> - ich9_pm_set_cpu_hotplug_legacy);
> object_property_add_uint8_ptr(obj, ACPI_PM_PROP_S3_DISABLED,
> &pm->disable_s3, OBJ_PROP_FLAG_READWRITE);
> object_property_add_uint8_ptr(obj, ACPI_PM_PROP_S4_DISABLED,
> @@ -477,11 +453,7 @@ void ich9_pm_device_plug_cb(HotplugHandler *hotplug_dev, DeviceState *dev,
> dev, errp);
> }
> } else if (object_dynamic_cast(OBJECT(dev), TYPE_CPU)) {
> - if (lpc->pm.cpu_hotplug_legacy) {
> - legacy_acpi_cpu_plug_cb(hotplug_dev, &lpc->pm.gpe_cpu, dev, errp);
> - } else {
> - acpi_cpu_plug_cb(hotplug_dev, &lpc->pm.cpuhp_state, dev, errp);
> - }
> + acpi_cpu_plug_cb(hotplug_dev, &lpc->pm.cpuhp_state, dev, errp);
> } else if (object_dynamic_cast(OBJECT(dev), TYPE_PCI_DEVICE)) {
> acpi_pcihp_device_plug_cb(hotplug_dev, &lpc->pm.acpi_pci_hotplug,
> dev, errp);
> @@ -500,8 +472,7 @@ void ich9_pm_device_unplug_request_cb(HotplugHandler *hotplug_dev,
> acpi_memory_unplug_request_cb(hotplug_dev,
> &lpc->pm.acpi_memory_hotplug, dev,
> errp);
> - } else if (object_dynamic_cast(OBJECT(dev), TYPE_CPU) &&
> - !lpc->pm.cpu_hotplug_legacy) {
> + } else if (object_dynamic_cast(OBJECT(dev), TYPE_CPU)) {
> uint64_t negotiated = lpc->smi_negotiated_features;
>
> if (negotiated & BIT_ULL(ICH9_LPC_SMI_F_BROADCAST_BIT) &&
> @@ -533,8 +504,7 @@ void ich9_pm_device_unplug_cb(HotplugHandler *hotplug_dev, DeviceState *dev,
>
> if (object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) {
> acpi_memory_unplug_cb(&lpc->pm.acpi_memory_hotplug, dev, errp);
> - } else if (object_dynamic_cast(OBJECT(dev), TYPE_CPU) &&
> - !lpc->pm.cpu_hotplug_legacy) {
> + } else if (object_dynamic_cast(OBJECT(dev), TYPE_CPU)) {
> acpi_cpu_unplug_cb(&lpc->pm.cpuhp_state, dev, errp);
> } else if (object_dynamic_cast(OBJECT(dev), TYPE_PCI_DEVICE)) {
> acpi_pcihp_device_unplug_cb(hotplug_dev, &lpc->pm.acpi_pci_hotplug,
> @@ -556,7 +526,5 @@ void ich9_pm_ospm_status(AcpiDeviceIf *adev, ACPIOSTInfoList ***list)
> ICH9LPCState *s = ICH9_LPC_DEVICE(adev);
>
> acpi_memory_ospm_status(&s->pm.acpi_memory_hotplug, list);
> - if (!s->pm.cpu_hotplug_legacy) {
> - acpi_cpu_ospm_status(&s->pm.cpuhp_state, list);
> - }
> + acpi_cpu_ospm_status(&s->pm.cpuhp_state, list);
> }
> diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
> index a7a29b0d09a9..6ad5f1d1c19d 100644
> --- a/hw/acpi/piix4.c
> +++ b/hw/acpi/piix4.c
> @@ -336,11 +336,7 @@ static void piix4_device_plug_cb(HotplugHandler *hotplug_dev,
> } else if (object_dynamic_cast(OBJECT(dev), TYPE_PCI_DEVICE)) {
> acpi_pcihp_device_plug_cb(hotplug_dev, &s->acpi_pci_hotplug, dev, errp);
> } else if (object_dynamic_cast(OBJECT(dev), TYPE_CPU)) {
> - if (s->cpu_hotplug_legacy) {
> - legacy_acpi_cpu_plug_cb(hotplug_dev, &s->gpe_cpu, dev, errp);
> - } else {
> - acpi_cpu_plug_cb(hotplug_dev, &s->cpuhp_state, dev, errp);
> - }
> + acpi_cpu_plug_cb(hotplug_dev, &s->cpuhp_state, dev, errp);
> } else {
> g_assert_not_reached();
> }
> @@ -358,8 +354,7 @@ static void piix4_device_unplug_request_cb(HotplugHandler *hotplug_dev,
> } else if (object_dynamic_cast(OBJECT(dev), TYPE_PCI_DEVICE)) {
> acpi_pcihp_device_unplug_request_cb(hotplug_dev, &s->acpi_pci_hotplug,
> dev, errp);
> - } else if (object_dynamic_cast(OBJECT(dev), TYPE_CPU) &&
> - !s->cpu_hotplug_legacy) {
> + } else if (object_dynamic_cast(OBJECT(dev), TYPE_CPU)) {
> acpi_cpu_unplug_request_cb(hotplug_dev, &s->cpuhp_state, dev, errp);
> } else {
> error_setg(errp, "acpi: device unplug request for not supported device"
> @@ -378,8 +373,7 @@ static void piix4_device_unplug_cb(HotplugHandler *hotplug_dev,
> } else if (object_dynamic_cast(OBJECT(dev), TYPE_PCI_DEVICE)) {
> acpi_pcihp_device_unplug_cb(hotplug_dev, &s->acpi_pci_hotplug, dev,
> errp);
> - } else if (object_dynamic_cast(OBJECT(dev), TYPE_CPU) &&
> - !s->cpu_hotplug_legacy) {
> + } else if (object_dynamic_cast(OBJECT(dev), TYPE_CPU)) {
> acpi_cpu_unplug_cb(&s->cpuhp_state, dev, errp);
> } else {
> error_setg(errp, "acpi: device unplug for not supported device"
> @@ -523,26 +517,6 @@ static const MemoryRegionOps piix4_gpe_ops = {
> .endianness = DEVICE_LITTLE_ENDIAN,
> };
>
> -
> -static bool piix4_get_cpu_hotplug_legacy(Object *obj, Error **errp)
> -{
> - PIIX4PMState *s = PIIX4_PM(obj);
> -
> - return s->cpu_hotplug_legacy;
> -}
> -
> -static void piix4_set_cpu_hotplug_legacy(Object *obj, bool value, Error **errp)
> -{
> - PIIX4PMState *s = PIIX4_PM(obj);
> -
> - assert(!value);
> - if (s->cpu_hotplug_legacy && value == false) {
> - acpi_switch_to_modern_cphp(&s->gpe_cpu, &s->cpuhp_state,
> - PIIX4_CPU_HOTPLUG_IO_BASE);
> - }
> - s->cpu_hotplug_legacy = value;
> -}
> -
> static void piix4_acpi_system_hot_add_init(MemoryRegion *parent,
> PCIBus *bus, PIIX4PMState *s)
> {
> @@ -558,10 +532,6 @@ static void piix4_acpi_system_hot_add_init(MemoryRegion *parent,
> qbus_set_hotplug_handler(BUS(pci_get_bus(PCI_DEVICE(s))), OBJECT(s));
> }
>
> - s->cpu_hotplug_legacy = false;
> - object_property_add_bool(OBJECT(s), "cpu-hotplug-legacy",
> - piix4_get_cpu_hotplug_legacy,
> - piix4_set_cpu_hotplug_legacy);
> cpu_hotplug_hw_init(parent, OBJECT(s), &s->cpuhp_state,
> PIIX4_CPU_HOTPLUG_IO_BASE);
>
> @@ -576,9 +546,7 @@ static void piix4_ospm_status(AcpiDeviceIf *adev, ACPIOSTInfoList ***list)
> PIIX4PMState *s = PIIX4_PM(adev);
>
> acpi_memory_ospm_status(&s->acpi_memory_hotplug, list);
> - if (!s->cpu_hotplug_legacy) {
> - acpi_cpu_ospm_status(&s->cpuhp_state, list);
> - }
> + acpi_cpu_ospm_status(&s->cpuhp_state, list);
> }
>
> static void piix4_send_gpe(AcpiDeviceIf *adev, AcpiEventStatusBits ev)
> diff --git a/hw/i386/acpi-build.c b/hw/i386/acpi-build.c
> index 23147ddc25e7..bf7ed2e50837 100644
> --- a/hw/i386/acpi-build.c
> +++ b/hw/i386/acpi-build.c
> @@ -960,9 +960,7 @@ build_dsdt(GArray *table_data, BIOSLinker *linker,
> }
> aml_append(dsdt, scope);
>
> - if (pcmc->legacy_cpu_hotplug) {
> - build_legacy_cpu_hotplug_aml(dsdt, machine, pm->cpu_hp_io_base);
> - } else {
> + {
> CPUHotplugFeatures opts = {
> .acpi_1_compatible = true,
> .smi_path = pm->smi_on_cpuhp ? "\\_SB.PCI0.SMI0.SMIC" : NULL,
> diff --git a/include/hw/acpi/ich9.h b/include/hw/acpi/ich9.h
> index 245fe08dc245..6a21472eb32e 100644
> --- a/include/hw/acpi/ich9.h
> +++ b/include/hw/acpi/ich9.h
> @@ -53,8 +53,6 @@ typedef struct ICH9LPCPMRegs {
> uint32_t pm_io_base;
> Notifier powerdown_notifier;
>
> - bool cpu_hotplug_legacy;
> - AcpiCpuHotplug gpe_cpu;
> CPUHotplugState cpuhp_state;
>
> bool keep_pci_slot_hpc;
> diff --git a/include/hw/acpi/piix4.h b/include/hw/acpi/piix4.h
> index eb1c122d8069..e075f0cbeaf1 100644
> --- a/include/hw/acpi/piix4.h
> +++ b/include/hw/acpi/piix4.h
> @@ -63,8 +63,6 @@ struct PIIX4PMState {
> uint8_t disable_s4;
> uint8_t s4_val;
>
> - bool cpu_hotplug_legacy;
> - AcpiCpuHotplug gpe_cpu;
> CPUHotplugState cpuhp_state;
>
> MemHotplugState acpi_memory_hotplug;
> diff --git a/include/hw/i386/pc.h b/include/hw/i386/pc.h
> index e83157ab358f..698e3fb84af0 100644
> --- a/include/hw/i386/pc.h
> +++ b/include/hw/i386/pc.h
> @@ -110,9 +110,6 @@ struct PCMachineClass {
> bool enforce_amd_1tb_hole;
> bool isa_bios_alias;
>
> - /* generate legacy CPU hotplug AML */
> - bool legacy_cpu_hotplug;
> -
> /* use PVH to load kernels that support this feature */
> bool pvh_enabled;
>
next prev parent reply other threads:[~2025-12-17 13:57 UTC|newest]
Thread overview: 52+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-12-02 16:28 [PATCH v5 00/28] hw/i386/pc: Remove deprecated 2.6 and 2.7 PC machines Zhao Liu
2025-12-02 16:28 ` [PATCH v5 01/28] hw/i386/pc: Remove deprecated pc-q35-2.6 and pc-i440fx-2.6 machines Zhao Liu
2025-12-10 14:01 ` Igor Mammedov
2025-12-02 16:28 ` [PATCH v5 02/28] tests/acpi: Allow DSDT table change for x86 machines Zhao Liu
2025-12-02 16:28 ` [PATCH v5 03/28] pc: Start with modern CPU hotplug interface by default Zhao Liu
2025-12-17 13:32 ` Igor Mammedov
2025-12-18 7:52 ` Zhao Liu
2025-12-02 16:28 ` [PATCH v5 04/28] hw/i386/pc: Remove PCMachineClass::legacy_cpu_hotplug field Zhao Liu
2025-12-17 13:57 ` Igor Mammedov [this message]
2025-12-02 16:28 ` [PATCH v5 05/28] acpi: Remove legacy cpu hotplug utilities Zhao Liu
2025-12-17 13:59 ` Igor Mammedov
2025-12-02 16:28 ` [PATCH v5 06/28] docs/specs/acpi_cpu_hotplug: Remove legacy cpu hotplug descriptions Zhao Liu
2025-12-17 14:00 ` Igor Mammedov
2025-12-02 16:28 ` [PATCH v5 07/28] tests/acpi: Update DSDT tables for pc machine Zhao Liu
2025-12-17 14:16 ` Igor Mammedov
2025-12-18 7:48 ` Zhao Liu
2025-12-02 16:28 ` [PATCH v5 08/28] tests/acpi: Update DSDT tables for q35 machine Zhao Liu
2025-12-17 14:03 ` Igor Mammedov
2025-12-02 16:28 ` [PATCH v5 09/28] hw/nvram/fw_cfg: Rename fw_cfg_init_mem() with '_nodma' suffix Zhao Liu
2025-12-02 16:28 ` [PATCH v5 10/28] hw/mips/loongson3_virt: Prefer using fw_cfg_init_mem_nodma() Zhao Liu
2025-12-02 16:28 ` [PATCH v5 11/28] hw/nvram/fw_cfg: Factor fw_cfg_init_mem_internal() out Zhao Liu
2025-12-02 16:28 ` [PATCH v5 12/28] hw/nvram/fw_cfg: Rename fw_cfg_init_mem_wide() -> fw_cfg_init_mem_dma() Zhao Liu
2025-12-02 16:28 ` [PATCH v5 13/28] hw/i386/x86: Remove X86MachineClass::fwcfg_dma_enabled field Zhao Liu
2025-12-02 16:28 ` [PATCH v5 14/28] hw/i386/pc: Remove multiboot.bin Zhao Liu
2025-12-17 14:07 ` Igor Mammedov
2025-12-02 16:28 ` [PATCH v5 15/28] hw/i386: Assume fw_cfg DMA is always enabled Zhao Liu
2025-12-03 6:11 ` Philippe Mathieu-Daudé
2025-12-17 14:52 ` Igor Mammedov
2025-12-02 16:28 ` [PATCH v5 16/28] hw/i386: Remove linuxboot.bin Zhao Liu
2025-12-17 14:55 ` Igor Mammedov
2025-12-18 7:45 ` Zhao Liu
2025-12-18 14:33 ` Igor Mammedov
2025-12-19 8:44 ` Zhao Liu
2025-12-02 16:28 ` [PATCH v5 17/28] hw/i386/pc: Remove pc_compat_2_6[] array Zhao Liu
2025-12-18 13:16 ` Igor Mammedov
2025-12-02 16:28 ` [PATCH v5 18/28] hw/intc/apic: Remove APICCommonState::legacy_instance_id field Zhao Liu
2025-12-02 16:28 ` [PATCH v5 19/28] hw/core/machine: Remove hw_compat_2_6[] array Zhao Liu
2025-12-18 13:33 ` Igor Mammedov
2025-12-02 16:28 ` [PATCH v5 20/28] hw/virtio/virtio-mmio: Remove VirtIOMMIOProxy::format_transport_address field Zhao Liu
2025-12-18 13:43 ` Igor Mammedov
2025-12-02 16:28 ` [PATCH v5 21/28] hw/i386/pc: Remove deprecated pc-q35-2.7 and pc-i440fx-2.7 machines Zhao Liu
2025-12-02 16:28 ` [PATCH v5 22/28] hw/i386/pc: Remove pc_compat_2_7[] array Zhao Liu
2025-12-18 13:44 ` Igor Mammedov
2025-12-02 16:28 ` [PATCH v5 23/28] target/i386/cpu: Remove CPUX86State::full_cpuid_auto_level field Zhao Liu
2025-12-18 13:51 ` Igor Mammedov
2025-12-02 16:28 ` [PATCH v5 24/28] hw/audio/pcspk: Remove PCSpkState::migrate field Zhao Liu
2025-12-02 16:28 ` [PATCH v5 25/28] hw/core/machine: Remove hw_compat_2_7[] array Zhao Liu
2025-12-18 14:04 ` Igor Mammedov
2025-12-02 16:28 ` [PATCH v5 26/28] hw/i386/intel_iommu: Remove IntelIOMMUState::buggy_eim field Zhao Liu
2025-12-02 16:28 ` [PATCH v5 27/28] hw/virtio/virtio-pci: Remove VirtIOPCIProxy::ignore_backend_features field Zhao Liu
2025-12-02 16:28 ` [PATCH v5 28/28] hw/char/virtio-serial: Do not expose the 'emergency-write' property Zhao Liu
2025-12-18 14:26 ` Igor Mammedov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20251217145709.21b9e2d6@imammedo \
--to=imammedo@redhat.com \
--cc=alistair.francis@wdc.com \
--cc=amit@kernel.org \
--cc=anisinha@redhat.com \
--cc=balaton@eik.bme.hu \
--cc=berrange@redhat.com \
--cc=chenhuacai@kernel.org \
--cc=clement.mathieu--drif@eviden.com \
--cc=dbarboza@ventanamicro.com \
--cc=deller@gmx.de \
--cc=devel@lists.libvirt.org \
--cc=eduardo@habkost.net \
--cc=farosas@suse.de \
--cc=jasowang@redhat.com \
--cc=jdenemar@redhat.com \
--cc=jiaxun.yang@flygoat.com \
--cc=kraxel@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=liwei1518@gmail.com \
--cc=lvivier@redhat.com \
--cc=marcandre.lureau@redhat.com \
--cc=marcel.apfelbaum@gmail.com \
--cc=mark.caveayland@nutanix.com \
--cc=mst@redhat.com \
--cc=mtosatti@redhat.com \
--cc=palmer@dabbelt.com \
--cc=pbonzini@redhat.com \
--cc=peter.maydell@linaro.org \
--cc=philmd@linaro.org \
--cc=pkrempa@redhat.com \
--cc=qemu-arm@nongnu.org \
--cc=qemu-devel@nongnu.org \
--cc=qemu-riscv@nongnu.org \
--cc=richard.henderson@linaro.org \
--cc=slp@redhat.com \
--cc=thuth@redhat.com \
--cc=wangyanan55@huawei.com \
--cc=xiaoyao.li@intel.com \
--cc=yi.l.liu@intel.com \
--cc=zhao1.liu@intel.com \
--cc=zhiwei_liu@linux.alibaba.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.