From: Marcel Apfelbaum <marcel@redhat.com>
To: Igor Mammedov <imammedo@redhat.com>, qemu-devel@nongnu.org
Cc: mst@redhat.com
Subject: Re: [Qemu-devel] [PATCH v2 14/33] pc: use AcpiDeviceIfClass.send_event to issue GPE events
Date: Thu, 2 Jun 2016 14:13:23 +0300 [thread overview]
Message-ID: <575014D3.5090007@redhat.com> (raw)
In-Reply-To: <1464688877-163217-1-git-send-email-imammedo@redhat.com>
On 05/31/2016 01:01 PM, Igor Mammedov wrote:
> it reduces number of args passed in handlers by 1 and
> a number of used proxy wrappers saving ~20LOC.
> Also it allows to make cpu/mem hotplug code more
> universal as it would allow ARM to reuse it without
> rewrite by providing its own send_event callback
> to trigger events usiong GPIO instead of GPE
> as fixed hadrware ACPI model doen't have GPE at all.
>
> Signed-off-by: Igor Mammedov <imammedo@redhat.com>
> ---
> v2:
> - make ACPI_SEND_EVENT macro a function
> Marcel Apfelbaum <marcel@redhat.com>
> ---
> hw/acpi/cpu_hotplug.c | 5 ++---
> hw/acpi/ich9.c | 33 ++++++++++++++++++++-------------
> hw/acpi/memory_hotplug.c | 12 ++++--------
> hw/acpi/pcihp.c | 10 ++++------
> hw/acpi/piix4.c | 11 +++++------
> hw/isa/lpc_ich9.c | 30 +++---------------------------
> include/hw/acpi/cpu_hotplug.h | 3 ++-
> include/hw/acpi/ich9.h | 9 +++++----
> include/hw/acpi/memory_hotplug.h | 4 ++--
> include/hw/acpi/pcihp.h | 5 +++--
> 10 files changed, 50 insertions(+), 72 deletions(-)
>
> diff --git a/hw/acpi/cpu_hotplug.c b/hw/acpi/cpu_hotplug.c
> index 9d71d2f..fe75bd9 100644
> --- a/hw/acpi/cpu_hotplug.c
> +++ b/hw/acpi/cpu_hotplug.c
> @@ -62,15 +62,14 @@ static void acpi_set_cpu_present_bit(AcpiCpuHotplug *g, CPUState *cpu,
> g->sts[cpu_id / 8] |= (1 << (cpu_id % 8));
> }
>
> -void legacy_acpi_cpu_plug_cb(ACPIREGS *ar, qemu_irq irq,
> +void legacy_acpi_cpu_plug_cb(HotplugHandler *hotplug_dev,
> AcpiCpuHotplug *g, DeviceState *dev, Error **errp)
> {
> acpi_set_cpu_present_bit(g, CPU(dev), errp);
> if (*errp != NULL) {
> return;
> }
> -
> - acpi_send_gpe_event(ar, irq, ACPI_CPU_HOTPLUG_STATUS);
> + acpi_send_event(DEVICE(hotplug_dev), ACPI_CPU_HOTPLUG_STATUS);
The patch looks good to me. I have only one question.
Why do you cast hotplug_dev to DEVICE and not a the safer expected interface? Or even HotplugHandler
Thanks,
Marcel
> }
>
> void legacy_acpi_cpu_hotplug_init(MemoryRegion *parent, Object *owner,
> diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c
> index af340d0..853c9c4 100644
> --- a/hw/acpi/ich9.c
> +++ b/hw/acpi/ich9.c
> @@ -430,40 +430,47 @@ void ich9_pm_add_properties(Object *obj, ICH9LPCPMRegs *pm, Error **errp)
> NULL);
> }
>
> -void ich9_pm_device_plug_cb(ICH9LPCPMRegs *pm, DeviceState *dev, Error **errp)
> +void ich9_pm_device_plug_cb(HotplugHandler *hotplug_dev, DeviceState *dev,
> + Error **errp)
> {
> - if (pm->acpi_memory_hotplug.is_enabled &&
> + ICH9LPCState *lpc = ICH9_LPC_DEVICE(hotplug_dev);
> +
> + if (lpc->pm.acpi_memory_hotplug.is_enabled &&
> object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) {
> - acpi_memory_plug_cb(&pm->acpi_regs, pm->irq, &pm->acpi_memory_hotplug,
> + acpi_memory_plug_cb(hotplug_dev, &lpc->pm.acpi_memory_hotplug,
> dev, errp);
> } else if (object_dynamic_cast(OBJECT(dev), TYPE_CPU)) {
> - legacy_acpi_cpu_plug_cb(&pm->acpi_regs, pm->irq,
> - &pm->gpe_cpu, dev, errp);
> + legacy_acpi_cpu_plug_cb(hotplug_dev, &lpc->pm.gpe_cpu, dev, errp);
> } else {
> error_setg(errp, "acpi: device plug request for not supported device"
> " type: %s", object_get_typename(OBJECT(dev)));
> }
> }
>
> -void ich9_pm_device_unplug_request_cb(ICH9LPCPMRegs *pm, DeviceState *dev,
> - Error **errp)
> +void ich9_pm_device_unplug_request_cb(HotplugHandler *hotplug_dev,
> + DeviceState *dev, Error **errp)
> {
> - if (pm->acpi_memory_hotplug.is_enabled &&
> + ICH9LPCState *lpc = ICH9_LPC_DEVICE(hotplug_dev);
> +
> + if (lpc->pm.acpi_memory_hotplug.is_enabled &&
> object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) {
> - acpi_memory_unplug_request_cb(&pm->acpi_regs, pm->irq,
> - &pm->acpi_memory_hotplug, dev, errp);
> + acpi_memory_unplug_request_cb(hotplug_dev,
> + &lpc->pm.acpi_memory_hotplug, dev,
> + errp);
> } else {
> error_setg(errp, "acpi: device unplug request for not supported device"
> " type: %s", object_get_typename(OBJECT(dev)));
> }
> }
>
> -void ich9_pm_device_unplug_cb(ICH9LPCPMRegs *pm, DeviceState *dev,
> +void ich9_pm_device_unplug_cb(HotplugHandler *hotplug_dev, DeviceState *dev,
> Error **errp)
> {
> - if (pm->acpi_memory_hotplug.is_enabled &&
> + ICH9LPCState *lpc = ICH9_LPC_DEVICE(hotplug_dev);
> +
> + if (lpc->pm.acpi_memory_hotplug.is_enabled &&
> object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) {
> - acpi_memory_unplug_cb(&pm->acpi_memory_hotplug, dev, errp);
> + acpi_memory_unplug_cb(&lpc->pm.acpi_memory_hotplug, dev, errp);
> } else {
> error_setg(errp, "acpi: device unplug for not supported device"
> " type: %s", object_get_typename(OBJECT(dev)));
> diff --git a/hw/acpi/memory_hotplug.c b/hw/acpi/memory_hotplug.c
> index f65a3a2..ec4e64b 100644
> --- a/hw/acpi/memory_hotplug.c
> +++ b/hw/acpi/memory_hotplug.c
> @@ -228,7 +228,7 @@ acpi_memory_slot_status(MemHotplugState *mem_st,
> return &mem_st->devs[slot];
> }
>
> -void acpi_memory_plug_cb(ACPIREGS *ar, qemu_irq irq, MemHotplugState *mem_st,
> +void acpi_memory_plug_cb(HotplugHandler *hotplug_dev, MemHotplugState *mem_st,
> DeviceState *dev, Error **errp)
> {
> MemStatus *mdev;
> @@ -247,13 +247,11 @@ void acpi_memory_plug_cb(ACPIREGS *ar, qemu_irq irq, MemHotplugState *mem_st,
> mdev->is_enabled = true;
> if (dev->hotplugged) {
> mdev->is_inserting = true;
> -
> - /* do ACPI magic */
> - acpi_send_gpe_event(ar, irq, ACPI_MEMORY_HOTPLUG_STATUS);
> + acpi_send_event(DEVICE(hotplug_dev), ACPI_MEMORY_HOTPLUG_STATUS);
> }
> }
>
> -void acpi_memory_unplug_request_cb(ACPIREGS *ar, qemu_irq irq,
> +void acpi_memory_unplug_request_cb(HotplugHandler *hotplug_dev,
> MemHotplugState *mem_st,
> DeviceState *dev, Error **errp)
> {
> @@ -265,9 +263,7 @@ void acpi_memory_unplug_request_cb(ACPIREGS *ar, qemu_irq irq,
> }
>
> mdev->is_removing = true;
> -
> - /* Do ACPI magic */
> - acpi_send_gpe_event(ar, irq, ACPI_MEMORY_HOTPLUG_STATUS);
> + acpi_send_event(DEVICE(hotplug_dev), ACPI_MEMORY_HOTPLUG_STATUS);
> }
>
> void acpi_memory_unplug_cb(MemHotplugState *mem_st,
> diff --git a/hw/acpi/pcihp.c b/hw/acpi/pcihp.c
> index 71f4c4e..d957d1e 100644
> --- a/hw/acpi/pcihp.c
> +++ b/hw/acpi/pcihp.c
> @@ -182,7 +182,7 @@ void acpi_pcihp_reset(AcpiPciHpState *s)
> acpi_pcihp_update(s);
> }
>
> -void acpi_pcihp_device_plug_cb(ACPIREGS *ar, qemu_irq irq, AcpiPciHpState *s,
> +void acpi_pcihp_device_plug_cb(HotplugHandler *hotplug_dev, AcpiPciHpState *s,
> DeviceState *dev, Error **errp)
> {
> PCIDevice *pdev = PCI_DEVICE(dev);
> @@ -202,11 +202,10 @@ void acpi_pcihp_device_plug_cb(ACPIREGS *ar, qemu_irq irq, AcpiPciHpState *s,
> }
>
> s->acpi_pcihp_pci_status[bsel].up |= (1U << slot);
> -
> - acpi_send_gpe_event(ar, irq, ACPI_PCI_HOTPLUG_STATUS);
> + acpi_send_event(DEVICE(hotplug_dev), ACPI_PCI_HOTPLUG_STATUS);
> }
>
> -void acpi_pcihp_device_unplug_cb(ACPIREGS *ar, qemu_irq irq, AcpiPciHpState *s,
> +void acpi_pcihp_device_unplug_cb(HotplugHandler *hotplug_dev, AcpiPciHpState *s,
> DeviceState *dev, Error **errp)
> {
> PCIDevice *pdev = PCI_DEVICE(dev);
> @@ -219,8 +218,7 @@ void acpi_pcihp_device_unplug_cb(ACPIREGS *ar, qemu_irq irq, AcpiPciHpState *s,
> }
>
> s->acpi_pcihp_pci_status[bsel].down |= (1U << slot);
> -
> - acpi_send_gpe_event(ar, irq, ACPI_PCI_HOTPLUG_STATUS);
> + acpi_send_event(DEVICE(hotplug_dev), ACPI_PCI_HOTPLUG_STATUS);
> }
>
> static uint64_t pci_read(void *opaque, hwaddr addr, unsigned int size)
> diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
> index 5b4fcb5..c48cb1b 100644
> --- a/hw/acpi/piix4.c
> +++ b/hw/acpi/piix4.c
> @@ -348,12 +348,11 @@ static void piix4_device_plug_cb(HotplugHandler *hotplug_dev,
>
> if (s->acpi_memory_hotplug.is_enabled &&
> object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) {
> - acpi_memory_plug_cb(&s->ar, s->irq, &s->acpi_memory_hotplug, dev, errp);
> + acpi_memory_plug_cb(hotplug_dev, &s->acpi_memory_hotplug, dev, errp);
> } else if (object_dynamic_cast(OBJECT(dev), TYPE_PCI_DEVICE)) {
> - acpi_pcihp_device_plug_cb(&s->ar, s->irq, &s->acpi_pci_hotplug, dev,
> - errp);
> + acpi_pcihp_device_plug_cb(hotplug_dev, &s->acpi_pci_hotplug, dev, errp);
> } else if (object_dynamic_cast(OBJECT(dev), TYPE_CPU)) {
> - legacy_acpi_cpu_plug_cb(&s->ar, s->irq, &s->gpe_cpu, dev, errp);
> + legacy_acpi_cpu_plug_cb(hotplug_dev, &s->gpe_cpu, dev, errp);
> } else {
> error_setg(errp, "acpi: device plug request for not supported device"
> " type: %s", object_get_typename(OBJECT(dev)));
> @@ -367,10 +366,10 @@ static void piix4_device_unplug_request_cb(HotplugHandler *hotplug_dev,
>
> if (s->acpi_memory_hotplug.is_enabled &&
> object_dynamic_cast(OBJECT(dev), TYPE_PC_DIMM)) {
> - acpi_memory_unplug_request_cb(&s->ar, s->irq, &s->acpi_memory_hotplug,
> + acpi_memory_unplug_request_cb(hotplug_dev, &s->acpi_memory_hotplug,
> dev, errp);
> } else if (object_dynamic_cast(OBJECT(dev), TYPE_PCI_DEVICE)) {
> - acpi_pcihp_device_unplug_cb(&s->ar, s->irq, &s->acpi_pci_hotplug, dev,
> + acpi_pcihp_device_unplug_cb(hotplug_dev, &s->acpi_pci_hotplug, dev,
> errp);
> } else {
> error_setg(errp, "acpi: device unplug request for not supported device"
> diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c
> index 72d0781..2a2d52e 100644
> --- a/hw/isa/lpc_ich9.c
> +++ b/hw/isa/lpc_ich9.c
> @@ -637,30 +637,6 @@ static void ich9_lpc_realize(PCIDevice *d, Error **errp)
> 1);
> }
>
> -static void ich9_device_plug_cb(HotplugHandler *hotplug_dev,
> - DeviceState *dev, Error **errp)
> -{
> - ICH9LPCState *lpc = ICH9_LPC_DEVICE(hotplug_dev);
> -
> - ich9_pm_device_plug_cb(&lpc->pm, dev, errp);
> -}
> -
> -static void ich9_device_unplug_request_cb(HotplugHandler *hotplug_dev,
> - DeviceState *dev, Error **errp)
> -{
> - ICH9LPCState *lpc = ICH9_LPC_DEVICE(hotplug_dev);
> -
> - ich9_pm_device_unplug_request_cb(&lpc->pm, dev, errp);
> -}
> -
> -static void ich9_device_unplug_cb(HotplugHandler *hotplug_dev,
> - DeviceState *dev, Error **errp)
> -{
> - ICH9LPCState *lpc = ICH9_LPC_DEVICE(hotplug_dev);
> -
> - ich9_pm_device_unplug_cb(&lpc->pm, dev, errp);
> -}
> -
> static bool ich9_rst_cnt_needed(void *opaque)
> {
> ICH9LPCState *lpc = opaque;
> @@ -733,9 +709,9 @@ static void ich9_lpc_class_init(ObjectClass *klass, void *data)
> * pc_q35_init()
> */
> dc->cannot_instantiate_with_device_add_yet = true;
> - hc->plug = ich9_device_plug_cb;
> - hc->unplug_request = ich9_device_unplug_request_cb;
> - hc->unplug = ich9_device_unplug_cb;
> + hc->plug = ich9_pm_device_plug_cb;
> + hc->unplug_request = ich9_pm_device_unplug_request_cb;
> + hc->unplug = ich9_pm_device_unplug_cb;
> adevc->ospm_status = ich9_pm_ospm_status;
> adevc->send_event = ich9_send_gpe;
> }
> diff --git a/include/hw/acpi/cpu_hotplug.h b/include/hw/acpi/cpu_hotplug.h
> index 6d729d8..6fef67e 100644
> --- a/include/hw/acpi/cpu_hotplug.h
> +++ b/include/hw/acpi/cpu_hotplug.h
> @@ -15,13 +15,14 @@
> #include "hw/acpi/acpi.h"
> #include "hw/acpi/pc-hotplug.h"
> #include "hw/acpi/aml-build.h"
> +#include "hw/hotplug.h"
>
> typedef struct AcpiCpuHotplug {
> MemoryRegion io;
> uint8_t sts[ACPI_GPE_PROC_LEN];
> } AcpiCpuHotplug;
>
> -void legacy_acpi_cpu_plug_cb(ACPIREGS *ar, qemu_irq irq,
> +void legacy_acpi_cpu_plug_cb(HotplugHandler *hotplug_dev,
> AcpiCpuHotplug *g, DeviceState *dev, Error **errp);
>
> void legacy_acpi_cpu_hotplug_init(MemoryRegion *parent, Object *owner,
> diff --git a/include/hw/acpi/ich9.h b/include/hw/acpi/ich9.h
> index 63fa198..bbd657c 100644
> --- a/include/hw/acpi/ich9.h
> +++ b/include/hw/acpi/ich9.h
> @@ -69,10 +69,11 @@ extern const VMStateDescription vmstate_ich9_pm;
>
> void ich9_pm_add_properties(Object *obj, ICH9LPCPMRegs *pm, Error **errp);
>
> -void ich9_pm_device_plug_cb(ICH9LPCPMRegs *pm, DeviceState *dev, Error **errp);
> -void ich9_pm_device_unplug_request_cb(ICH9LPCPMRegs *pm, DeviceState *dev,
> - Error **errp);
> -void ich9_pm_device_unplug_cb(ICH9LPCPMRegs *pm, DeviceState *dev,
> +void ich9_pm_device_plug_cb(HotplugHandler *hotplug_dev, DeviceState *dev,
> + Error **errp);
> +void ich9_pm_device_unplug_request_cb(HotplugHandler *hotplug_dev,
> + DeviceState *dev, Error **errp);
> +void ich9_pm_device_unplug_cb(HotplugHandler *hotplug_dev, DeviceState *dev,
> Error **errp);
>
> void ich9_pm_ospm_status(AcpiDeviceIf *adev, ACPIOSTInfoList ***list);
> diff --git a/include/hw/acpi/memory_hotplug.h b/include/hw/acpi/memory_hotplug.h
> index 3a646b1..d2c7452 100644
> --- a/include/hw/acpi/memory_hotplug.h
> +++ b/include/hw/acpi/memory_hotplug.h
> @@ -32,9 +32,9 @@ typedef struct MemHotplugState {
> void acpi_memory_hotplug_init(MemoryRegion *as, Object *owner,
> MemHotplugState *state);
>
> -void acpi_memory_plug_cb(ACPIREGS *ar, qemu_irq irq, MemHotplugState *mem_st,
> +void acpi_memory_plug_cb(HotplugHandler *hotplug_dev, MemHotplugState *mem_st,
> DeviceState *dev, Error **errp);
> -void acpi_memory_unplug_request_cb(ACPIREGS *ar, qemu_irq irq,
> +void acpi_memory_unplug_request_cb(HotplugHandler *hotplug_dev,
> MemHotplugState *mem_st,
> DeviceState *dev, Error **errp);
> void acpi_memory_unplug_cb(MemHotplugState *mem_st,
> diff --git a/include/hw/acpi/pcihp.h b/include/hw/acpi/pcihp.h
> index 79a4392..04528b7 100644
> --- a/include/hw/acpi/pcihp.h
> +++ b/include/hw/acpi/pcihp.h
> @@ -29,6 +29,7 @@
>
> #include "hw/acpi/acpi.h"
> #include "migration/vmstate.h"
> +#include "hw/hotplug.h"
>
> #define ACPI_PCIHP_IO_BASE_PROP "acpi-pcihp-io-base"
> #define ACPI_PCIHP_IO_LEN_PROP "acpi-pcihp-io-len"
> @@ -56,9 +57,9 @@ typedef struct AcpiPciHpState {
> void acpi_pcihp_init(Object *owner, AcpiPciHpState *, PCIBus *root,
> MemoryRegion *address_space_io, bool bridges_enabled);
>
> -void acpi_pcihp_device_plug_cb(ACPIREGS *ar, qemu_irq irq, AcpiPciHpState *s,
> +void acpi_pcihp_device_plug_cb(HotplugHandler *hotplug_dev, AcpiPciHpState *s,
> DeviceState *dev, Error **errp);
> -void acpi_pcihp_device_unplug_cb(ACPIREGS *ar, qemu_irq irq, AcpiPciHpState *s,
> +void acpi_pcihp_device_unplug_cb(HotplugHandler *hotplug_dev, AcpiPciHpState *s,
> DeviceState *dev, Error **errp);
>
> /* Called on reset */
>
next prev parent reply other threads:[~2016-06-02 11:13 UTC|newest]
Thread overview: 83+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-05-17 14:42 [Qemu-devel] [PATCH 00/33] ACPI CPU hotplug refactoring to support more than 255 CPUs and PXM/OST methods Igor Mammedov
2016-05-17 14:42 ` [Qemu-devel] [PATCH 01/33] tests: acpi: report names of expected files in verbose mode Igor Mammedov
2016-05-24 16:58 ` Marcel Apfelbaum
2016-05-26 9:46 ` [Qemu-devel] [PATCH v2 1/33] " Igor Mammedov
2016-05-30 18:14 ` Marcel Apfelbaum
2016-06-02 11:02 ` Marcel Apfelbaum
2016-05-17 14:42 ` [Qemu-devel] [PATCH 02/33] acpi: add aml_debug() Igor Mammedov
2016-05-24 16:59 ` Marcel Apfelbaum
2016-05-17 14:42 ` [Qemu-devel] [PATCH 03/33] acpi: add aml_refof() Igor Mammedov
2016-05-24 17:00 ` Marcel Apfelbaum
2016-05-17 14:42 ` [Qemu-devel] [PATCH 04/33] pc: acpi: remove AML for empty/not used GPE handlers Igor Mammedov
2016-05-25 9:11 ` Marcel Apfelbaum
2016-05-25 13:19 ` Igor Mammedov
2016-05-31 10:06 ` Marcel Apfelbaum
2016-05-17 14:42 ` [Qemu-devel] [PATCH 05/33] pc: acpi: consolidate CPU hotplug AML Igor Mammedov
2016-05-30 18:18 ` Marcel Apfelbaum
2016-05-31 7:50 ` Igor Mammedov
2016-05-31 10:18 ` Marcel Apfelbaum
2016-05-31 12:49 ` Igor Mammedov
2016-05-17 14:42 ` [Qemu-devel] [PATCH 06/33] pc: acpi: consolidate \GPE._E02 with the rest of " Igor Mammedov
2016-05-30 18:22 ` Marcel Apfelbaum
2016-05-17 14:42 ` [Qemu-devel] [PATCH 07/33] pc: acpi: cpu-hotplug: make AML CPU_foo defines local to cpu_hotplug_acpi_table.c Igor Mammedov
2016-05-30 18:23 ` Marcel Apfelbaum
2016-05-17 14:43 ` [Qemu-devel] [PATCH 08/33] pc: acpi: mark current CPU hotplug functions as legacy Igor Mammedov
2016-05-30 18:28 ` Marcel Apfelbaum
2016-05-17 14:43 ` [Qemu-devel] [PATCH 09/33] pc: acpi: consolidate legacy CPU hotplug in one file Igor Mammedov
2016-05-30 18:31 ` Marcel Apfelbaum
2016-05-17 14:43 ` [Qemu-devel] [PATCH 10/33] pc: acpi: simplify build_legacy_cpu_hotplug_aml() signature Igor Mammedov
2016-05-30 18:31 ` Marcel Apfelbaum
2016-05-17 14:43 ` [Qemu-devel] [PATCH 11/33] pc: acpi: cpuhp-legacy: switch ProcessorID to possible_cpus idx Igor Mammedov
2016-05-30 18:39 ` Marcel Apfelbaum
2016-05-31 13:03 ` Igor Mammedov
2016-05-17 14:43 ` [Qemu-devel] [PATCH 12/33] tests: acpi: update tables with consolidated legacy cpu-hotplug AML Igor Mammedov
2016-05-17 14:43 ` [Qemu-devel] [PATCH 13/33] acpi: extend ACPI interface to provide send_event hook Igor Mammedov
2016-05-30 18:45 ` Marcel Apfelbaum
2016-05-31 9:57 ` [Qemu-devel] [PATCH v2 " Igor Mammedov
2016-06-02 11:09 ` Marcel Apfelbaum
2016-06-02 11:19 ` Igor Mammedov
2016-06-02 11:21 ` Marcel Apfelbaum
2016-05-17 14:43 ` [Qemu-devel] [PATCH 14/33] pc: use AcpiDeviceIfClass.send_event to issue GPE events Igor Mammedov
2016-05-31 10:01 ` [Qemu-devel] [PATCH v2 " Igor Mammedov
2016-06-02 11:13 ` Marcel Apfelbaum [this message]
2016-06-02 11:29 ` Igor Mammedov
2016-05-17 14:43 ` [Qemu-devel] [PATCH 15/33] docs: update ACPI CPU hotplug spec with new protocol Igor Mammedov
2016-05-31 4:49 ` Michael S. Tsirkin
2016-05-31 15:07 ` Igor Mammedov
2016-05-31 21:09 ` Michael S. Tsirkin
2016-06-06 9:57 ` Igor Mammedov
2016-05-17 14:43 ` [Qemu-devel] [PATCH 16/33] acpi: hardware side of CPU hotplug Igor Mammedov
2016-05-30 18:50 ` Marcel Apfelbaum
2016-05-31 13:24 ` Igor Mammedov
2016-05-17 14:43 ` [Qemu-devel] [PATCH 17/33] pc: add generic CPU unplug callbacks Igor Mammedov
2016-05-17 14:43 ` [Qemu-devel] [PATCH 18/33] pc: add 2.7 machine Igor Mammedov
2016-05-30 18:53 ` Marcel Apfelbaum
2016-05-30 19:04 ` Eduardo Habkost
2016-05-17 14:43 ` [Qemu-devel] [PATCH 19/33] pc: piix4/ich9: add 'cpu-hotplug-legacy' property Igor Mammedov
2016-05-30 18:59 ` Marcel Apfelbaum
2016-05-17 14:43 ` [Qemu-devel] [PATCH 20/33] pc: q35: initialize new CPU hotplug hw Igor Mammedov
2016-05-30 19:02 ` Marcel Apfelbaum
2016-05-31 10:06 ` Igor Mammedov
2016-05-31 10:21 ` Marcel Apfelbaum
2016-05-31 12:51 ` Igor Mammedov
2016-05-31 12:52 ` Michael S. Tsirkin
2016-05-31 13:18 ` Igor Mammedov
2016-05-17 14:43 ` [Qemu-devel] [PATCH 21/33] pc: piix4: " Igor Mammedov
2016-05-17 14:43 ` [Qemu-devel] [PATCH 22/33] pc: acpi: introduce AcpiDeviceIfClass.madt_cpu hook Igor Mammedov
2016-05-17 14:43 ` [Qemu-devel] [PATCH 23/33] acpi: add CPU devices AML to DSDT Igor Mammedov
2016-05-17 14:43 ` [Qemu-devel] [PATCH 24/33] acpi: add CPU hotplug methods " Igor Mammedov
2016-05-31 4:38 ` Michael S. Tsirkin
2016-05-31 8:45 ` Igor Mammedov
2016-05-17 14:43 ` [Qemu-devel] [PATCH 25/33] qdev: hotplug: Introduce HotplugHandler.pre_plug() callback Igor Mammedov
2016-05-17 14:43 ` [Qemu-devel] [PATCH 26/33] target-i386: add X86CPU.node property Igor Mammedov
2016-05-17 14:43 ` [Qemu-devel] [PATCH 27/33] pc: numa: replace node_cpu indexing by apic_id with possible_cpus index Igor Mammedov
2016-05-17 14:43 ` [Qemu-devel] [PATCH 28/33] pc: set X86CPU.node property if QEMU starts with numa enabled Igor Mammedov
2016-05-17 14:43 ` [Qemu-devel] [PATCH 29/33] acpi: cpuhp: provide cpu._PXM method if running in numa mode Igor Mammedov
2016-05-17 14:43 ` [Qemu-devel] [PATCH 30/33] acpi: cpuhp: add cpu._OST handling Igor Mammedov
2016-05-17 15:29 ` Eric Blake
2016-05-18 8:09 ` Igor Mammedov
2016-05-30 18:21 ` Michael S. Tsirkin
2016-05-31 12:53 ` Igor Mammedov
2016-05-17 14:43 ` [Qemu-devel] [PATCH 31/33] tests: acpi: update expected tables with new cpu-hotplug methods enabled by default Igor Mammedov
2016-05-17 14:43 ` [Qemu-devel] [PATCH 32/33] tests: acpi: add CPU hotplug testcase Igor Mammedov
2016-05-17 14:43 ` [Qemu-devel] [PATCH 33/33] tests: acpi: add DSDT/MADT expected tables for cpu-hotplug case 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=575014D3.5090007@redhat.com \
--to=marcel@redhat.com \
--cc=imammedo@redhat.com \
--cc=mst@redhat.com \
--cc=qemu-devel@nongnu.org \
/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.