[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-ppc] [PATCH v2 3/6] spapr: add hotplug interrupt machine options
From: |
Michael Roth |
Subject: |
[Qemu-ppc] [PATCH v2 3/6] spapr: add hotplug interrupt machine options |
Date: |
Wed, 26 Oct 2016 16:59:22 -0500 |
This adds machine options of the form:
-machine pseries,modern-hotplug-events=true
-machine pseries,modern-hotplug-events=false
If false, QEMU will force the use of "legacy" style hotplug events,
which are surfaced through EPOW events instead of a dedicated
hot plug event source, and lack certain features necessary, mainly,
for memory unplug support.
If true, QEMU will enable support for "modern" dedicated hot plug
event source. Note that we will still default to "legacy" style unless
the guest advertises support for the "modern" hotplug events via
ibm,client-architecture-support hcall during early boot.
For pseries-2.7 and earlier we default to false, for newer machine
types we default to true.
Signed-off-by: Michael Roth <address@hidden>
---
hw/ppc/spapr.c | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 9ddf2ff..fe91883 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -2143,16 +2143,41 @@ static void spapr_set_kvm_type(Object *obj, const char
*value, Error **errp)
spapr->kvm_type = g_strdup(value);
}
+static bool spapr_get_modern_hotplug_events(Object *obj, Error **errp)
+{
+ sPAPRMachineState *spapr = SPAPR_MACHINE(obj);
+
+ return spapr->use_hotplug_event_source;
+}
+
+static void spapr_set_modern_hotplug_events(Object *obj, bool value,
+ Error **errp)
+{
+ sPAPRMachineState *spapr = SPAPR_MACHINE(obj);
+
+ spapr->use_hotplug_event_source = value;
+}
+
static void spapr_machine_initfn(Object *obj)
{
sPAPRMachineState *spapr = SPAPR_MACHINE(obj);
spapr->htab_fd = -1;
+ spapr->use_hotplug_event_source = true;
object_property_add_str(obj, "kvm-type",
spapr_get_kvm_type, spapr_set_kvm_type, NULL);
object_property_set_description(obj, "kvm-type",
"Specifies the KVM virtualization mode
(HV, PR)",
NULL);
+ object_property_add_bool(obj, "modern-hotplug-events",
+ spapr_get_modern_hotplug_events,
+ spapr_set_modern_hotplug_events,
+ NULL);
+ object_property_set_description(obj, "modern-hotplug-events",
+ "Use dedicated hotplug event mechanism in"
+ " place of standard EPOW events when
possible"
+ " (required for memory hot-unplug
support)",
+ NULL);
}
static void spapr_machine_finalizefn(Object *obj)
@@ -2599,7 +2624,10 @@ static void phb_placement_2_7(sPAPRMachineState *spapr,
uint32_t index,
static void spapr_machine_2_7_instance_options(MachineState *machine)
{
+ sPAPRMachineState *spapr = SPAPR_MACHINE(machine);
+
spapr_machine_2_8_instance_options(machine);
+ spapr->use_hotplug_event_source = false;
}
static void spapr_machine_2_7_class_options(MachineClass *mc)
--
1.9.1
- [Qemu-ppc] [PATCH v2 0/6] spapr: dedicated hotplug events and memory unplug support, Michael Roth, 2016/10/26
- [Qemu-ppc] [PATCH v2 3/6] spapr: add hotplug interrupt machine options,
Michael Roth <=
- [Qemu-ppc] [PATCH v2 1/6] spapr: update spapr hotplug documentation, Michael Roth, 2016/10/26
- [Qemu-ppc] [PATCH v2 5/6] spapr: use count+index for memory hotplug, Michael Roth, 2016/10/26
- [Qemu-ppc] [PATCH v2 2/6] spapr_events: add support for dedicated hotplug event source, Michael Roth, 2016/10/26
- [Qemu-ppc] [PATCH v2 6/6] spapr: Memory hot-unplug support, Michael Roth, 2016/10/26
- [Qemu-ppc] [PATCH v2 4/6] spapr: Add DRC count indexed hotplug identifier type, Michael Roth, 2016/10/26
- Re: [Qemu-ppc] [PATCH v2 0/6] spapr: dedicated hotplug events and memory unplug support, David Gibson, 2016/10/27