[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH RESEND v1 Part2 04/13] acpi, mem-hotplug: Add unplug
From: |
Tang Chen |
Subject: |
[Qemu-devel] [PATCH RESEND v1 Part2 04/13] acpi, mem-hotplug: Add unplug request cb for memory device. |
Date: |
Thu, 11 Dec 2014 14:19:43 +0800 |
Memory hot unplug are both asynchronize procedures.
When the unplug operation happens, unplug request cb is called first.
And when ghest OS finished handling unplug, unplug cb will be called
to do the real removal of device.
This patch adds unplug request cb for memory device. Add a new bool
member named is_removing to MemStatus indicating that the memory slot
is being removed. Set it to true in acpi_memory_unplug_request_cb(),
and send SCI to guest.
Signed-off-by: Tang Chen <address@hidden>
---
hw/acpi/memory_hotplug.c | 16 ++++++++++++++++
include/hw/acpi/memory_hotplug.h | 4 ++++
2 files changed, 20 insertions(+)
diff --git a/hw/acpi/memory_hotplug.c b/hw/acpi/memory_hotplug.c
index 9839963..3d8e398 100644
--- a/hw/acpi/memory_hotplug.c
+++ b/hw/acpi/memory_hotplug.c
@@ -211,6 +211,22 @@ void acpi_memory_plug_cb(ACPIREGS *ar, qemu_irq irq,
MemHotplugState *mem_st,
acpi_memory_hotplug_sci(ar, irq);
}
+void acpi_memory_unplug_request_cb(ACPIREGS *ar, qemu_irq irq,
+ MemHotplugState *mem_st,
+ DeviceState *dev, Error **errp)
+{
+ MemStatus *mdev;
+
+ mdev = acpi_memory_get_slot_status_descriptor(mem_st, dev, errp);
+ if (!mdev)
+ return;
+
+ mdev->is_removing = true;
+
+ /* Do ACPI magic */
+ acpi_memory_hotplug_sci(ar, irq);
+}
+
static const VMStateDescription vmstate_memhp_sts = {
.name = "memory hotplug device state",
.version_id = 1,
diff --git a/include/hw/acpi/memory_hotplug.h b/include/hw/acpi/memory_hotplug.h
index 7bbf8a0..c437a85 100644
--- a/include/hw/acpi/memory_hotplug.h
+++ b/include/hw/acpi/memory_hotplug.h
@@ -11,6 +11,7 @@ typedef struct MemStatus {
DeviceState *dimm;
bool is_enabled;
bool is_inserting;
+ bool is_removing;
uint32_t ost_event;
uint32_t ost_status;
} MemStatus;
@@ -28,6 +29,9 @@ void acpi_memory_hotplug_init(MemoryRegion *as, Object *owner,
void acpi_memory_plug_cb(ACPIREGS *ar, qemu_irq irq, MemHotplugState *mem_st,
DeviceState *dev, Error **errp);
+void acpi_memory_unplug_request_cb(ACPIREGS *ar, qemu_irq irq,
+ MemHotplugState *mem_st,
+ DeviceState *dev, Error **errp);
extern const VMStateDescription vmstate_memory_hotplug;
#define VMSTATE_MEMORY_HOTPLUG(memhp, state) \
--
1.8.4.2
- [Qemu-devel] [PATCH RESEND v1 Part2 00/13] QEmu memory hot unplug support., Tang Chen, 2014/12/11
- [Qemu-devel] [PATCH RESEND v1 Part2 01/13] acpi, mem-hotplug: Use PC_DIMM_SLOT_PROP in acpi_memory_plug_cb()., Tang Chen, 2014/12/11
- [Qemu-devel] [PATCH RESEND v1 Part2 02/13] acpi, mem-hotplug: Add acpi_memory_get_slot_status_descriptor() to get MemStatus., Tang Chen, 2014/12/11
- [Qemu-devel] [PATCH RESEND v1 Part2 03/13] acpi, mem-hotplug: Add acpi_memory_hotplug_sci() to rise sci for memory hotplug., Tang Chen, 2014/12/11
- [Qemu-devel] [PATCH RESEND v1 Part2 04/13] acpi, mem-hotplug: Add unplug request cb for memory device.,
Tang Chen <=
- [Qemu-devel] [PATCH RESEND v1 Part2 05/13] acpi, piix4: Add memory hot unplug request support for piix4., Tang Chen, 2014/12/11
- [Qemu-devel] [PATCH RESEND v1 Part2 06/13] acpi, ich9: Add memory hot unplug request support for ich9., Tang Chen, 2014/12/11
- [Qemu-devel] [PATCH RESEND v1 Part2 07/13] pc-dimm: Add memory hot unplug request support for pc-dimm., Tang Chen, 2014/12/11
- [Qemu-devel] [PATCH RESEND v1 Part2 08/13] acpi, mem-hotplug: Add unplug cb for memory device., Tang Chen, 2014/12/11
- [Qemu-devel] [PATCH RESEND v1 Part2 09/13] acpi, piix4: Add memory hot unplug support for piix4., Tang Chen, 2014/12/11
- [Qemu-devel] [PATCH RESEND v1 Part2 10/13] acpi, ich9: Add memory hot unplug support for ich9., Tang Chen, 2014/12/11
- [Qemu-devel] [PATCH RESEND v1 Part2 11/13] pc-dimm: Add memory hot unplug support for pc-dimm., Tang Chen, 2014/12/11
- [Qemu-devel] [PATCH RESEND v1 Part2 12/13] acpi: Add hardware implementation for memory hot unplug., Tang Chen, 2014/12/11
- [Qemu-devel] [PATCH RESEND v1 Part2 13/13] pc, acpi bios: Add memory hot unplug interface., Tang Chen, 2014/12/11