[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH v6 16/20] microvm: wire up hotplug
From: |
Sergio Lopez |
Subject: |
Re: [PATCH v6 16/20] microvm: wire up hotplug |
Date: |
Thu, 27 Aug 2020 16:54:45 +0200 |
On Wed, Aug 26, 2020 at 12:52:50PM +0200, Gerd Hoffmann wrote:
> The cpu hotplug code handles the initialization of coldplugged cpus
> too, so it is needed even in case cpu hotplug is not supported.
>
> Wire cpu hotplug up for microvm.
> Without this we get a broken MADT table.
>
> Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
> Reviewed-by: Igor Mammedov <imammedo@redhat.com>
> ---
> hw/i386/microvm.c | 42 ++++++++++++++++++++++++++++++++++++++++++
> 1 file changed, 42 insertions(+)
Reviewed-by: Sergio Lopez <slp@redhat.com>
> diff --git a/hw/i386/microvm.c b/hw/i386/microvm.c
> index 9df15354ce0f..8de8ca864963 100644
> --- a/hw/i386/microvm.c
> +++ b/hw/i386/microvm.c
> @@ -320,6 +320,39 @@ static void microvm_fix_kernel_cmdline(MachineState
> *machine)
> g_free(cmdline);
> }
>
> +static void microvm_device_pre_plug_cb(HotplugHandler *hotplug_dev,
> + DeviceState *dev, Error **errp)
> +{
> + x86_cpu_pre_plug(hotplug_dev, dev, errp);
> +}
> +
> +static void microvm_device_plug_cb(HotplugHandler *hotplug_dev,
> + DeviceState *dev, Error **errp)
> +{
> + x86_cpu_plug(hotplug_dev, dev, errp);
> +}
> +
> +static void microvm_device_unplug_request_cb(HotplugHandler *hotplug_dev,
> + DeviceState *dev, Error **errp)
> +{
> + error_setg(errp, "unplug not supported by microvm");
> +}
> +
> +static void microvm_device_unplug_cb(HotplugHandler *hotplug_dev,
> + DeviceState *dev, Error **errp)
> +{
> + error_setg(errp, "unplug not supported by microvm");
> +}
> +
> +static HotplugHandler *microvm_get_hotplug_handler(MachineState *machine,
> + DeviceState *dev)
> +{
> + if (object_dynamic_cast(OBJECT(dev), TYPE_CPU)) {
> + return HOTPLUG_HANDLER(machine);
> + }
> + return NULL;
> +}
> +
> static void microvm_machine_state_init(MachineState *machine)
> {
> MicrovmMachineState *mms = MICROVM_MACHINE(machine);
> @@ -503,6 +536,7 @@ static void microvm_machine_initfn(Object *obj)
> static void microvm_class_init(ObjectClass *oc, void *data)
> {
> MachineClass *mc = MACHINE_CLASS(oc);
> + HotplugHandlerClass *hc = HOTPLUG_HANDLER_CLASS(oc);
>
> mc->init = microvm_machine_state_init;
>
> @@ -524,6 +558,13 @@ static void microvm_class_init(ObjectClass *oc, void
> *data)
> /* Machine class handlers */
> mc->reset = microvm_machine_reset;
>
> + /* hotplug (for cpu coldplug) */
> + mc->get_hotplug_handler = microvm_get_hotplug_handler;
> + hc->pre_plug = microvm_device_pre_plug_cb;
> + hc->plug = microvm_device_plug_cb;
> + hc->unplug_request = microvm_device_unplug_request_cb;
> + hc->unplug = microvm_device_unplug_cb;
> +
> object_class_property_add(oc, MICROVM_MACHINE_PIC, "OnOffAuto",
> microvm_machine_get_pic,
> microvm_machine_set_pic,
> @@ -573,6 +614,7 @@ static const TypeInfo microvm_machine_info = {
> .class_size = sizeof(MicrovmMachineClass),
> .class_init = microvm_class_init,
> .interfaces = (InterfaceInfo[]) {
> + { TYPE_HOTPLUG_HANDLER },
> { }
> },
> };
> --
> 2.27.0
>
signature.asc
Description: PGP signature
- Re: [PATCH v6 12/20] microvm/acpi: disable virtio-mmio cmdline hack, (continued)
- [PATCH v6 10/20] microvm/acpi: use GSI 16-23 for virtio, Gerd Hoffmann, 2020/08/26
- [PATCH v6 07/20] microvm: make virtio irq base runtime configurable, Gerd Hoffmann, 2020/08/26
- [PATCH v6 20/20] tests/acpi: update expected data files for microvm, Gerd Hoffmann, 2020/08/26
- [PATCH v6 08/20] microvm/acpi: add minimal acpi support, Gerd Hoffmann, 2020/08/26
- [PATCH v6 17/20] tests/acpi: allow microvm test data updates., Gerd Hoffmann, 2020/08/26
- [PATCH v6 09/20] microvm/acpi: add acpi_dsdt_add_virtio() for x86, Gerd Hoffmann, 2020/08/26
- [PATCH v6 11/20] microvm/acpi: use seabios with acpi=on, Gerd Hoffmann, 2020/08/26
- [PATCH v6 16/20] microvm: wire up hotplug, Gerd Hoffmann, 2020/08/26
- Re: [PATCH v6 16/20] microvm: wire up hotplug,
Sergio Lopez <=
- [PATCH v6 14/20] x86: move acpi_dev from pc/microvm, Gerd Hoffmann, 2020/08/26
- [PATCH v6 18/20] tests/acpi: allow override blkdev, Gerd Hoffmann, 2020/08/26
- [PATCH v6 06/20] acpi: move acpi_dsdt_add_power_button() to ged, Gerd Hoffmann, 2020/08/26
- [PATCH v6 13/20] x86: constify x86_machine_is_*_enabled, Gerd Hoffmann, 2020/08/26