* [Qemu-devel] [PATCH for-4.0 0/5] spapr/virt/pc: Eliminate custom instance_init functions
@ 2018-12-05 20:58 Eduardo Habkost
2018-12-05 20:58 ` [Qemu-devel] [PATCH for-4.0 1/5] virt: Eliminate separate " Eduardo Habkost
` (4 more replies)
0 siblings, 5 replies; 12+ messages in thread
From: Eduardo Habkost @ 2018-12-05 20:58 UTC (permalink / raw)
To: qemu-devel
Cc: Paolo Bonzini, Marc-André Lureau, Eduardo Habkost,
Marcel Apfelbaum, Michael S. Tsirkin, David Gibson, qemu-arm,
qemu-ppc, Richard Henderson, Peter Maydell
Based-on: <154385451622.17724.12272989665681200621.stgit@gimli.home>
To help us make machine-type version differences introspectable
by QEMU, the info need to be available at class_init time, and
not require instantiating a machine object.
This series moves machine-type version differences to class_init
functions, and let us eliminate version-specific instance_init
functions from spapr and virt.
On PC the pc_compat_*() functions still have some KVM-specific
code that needs to be moved to class_init before we delete the
pc_compat_*() functions. We will probably be able to implement
this using AccelClass::compat_props later.
I also plan to move default_machine_opts data to
MachineClass::compat_props, after the compat_props/globals
cleanup[1] being implemented by Marc-André Lureau is merged.
[1] https://www.mail-archive.com/qemu-devel@nongnu.org/msg576381.html
Eduardo Habkost (5):
virt: Eliminate separate instance_init functions
spapr: Use default_machine_opts to set use_hotplug_event_source
spapr: Use default_machine_opts to set suppress_vmdesc
spapr: Delete instance_options functions
pc: Use default_machine_opts to set suppress_vmdesc
hw/arm/virt.c | 87 +++++++++++---------------------------------
hw/i386/pc_piix.c | 2 +-
hw/ppc/spapr.c | 91 ++---------------------------------------------
3 files changed, 24 insertions(+), 156 deletions(-)
--
2.18.0.rc1.1.g3f1ff2140
^ permalink raw reply [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH for-4.0 1/5] virt: Eliminate separate instance_init functions
2018-12-05 20:58 [Qemu-devel] [PATCH for-4.0 0/5] spapr/virt/pc: Eliminate custom instance_init functions Eduardo Habkost
@ 2018-12-05 20:58 ` Eduardo Habkost
2018-12-06 14:06 ` Peter Maydell
2018-12-05 20:58 ` [Qemu-devel] [PATCH for-4.0 2/5] spapr: Use default_machine_opts to set use_hotplug_event_source Eduardo Habkost
` (3 subsequent siblings)
4 siblings, 1 reply; 12+ messages in thread
From: Eduardo Habkost @ 2018-12-05 20:58 UTC (permalink / raw)
To: qemu-devel
Cc: Paolo Bonzini, Marc-André Lureau, Eduardo Habkost,
Marcel Apfelbaum, Michael S. Tsirkin, David Gibson, qemu-arm,
qemu-ppc, Richard Henderson, Peter Maydell
All instance_init functions for all virt machine-types run
exactly the same code, so we don't need separate functions. We
only need to set instance_init for TYPE_VIRT_MACHINE.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
hw/arm/virt.c | 87 +++++++++++++--------------------------------------
1 file changed, 21 insertions(+), 66 deletions(-)
diff --git a/hw/arm/virt.c b/hw/arm/virt.c
index beaf6bc439..17f1b49d11 100644
--- a/hw/arm/virt.c
+++ b/hw/arm/virt.c
@@ -74,7 +74,6 @@
static const TypeInfo machvirt_##major##_##minor##_info = { \
.name = MACHINE_TYPE_NAME("virt-" # major "." # minor), \
.parent = TYPE_VIRT_MACHINE, \
- .instance_init = virt_##major##_##minor##_instance_init, \
.class_init = virt_##major##_##minor##_class_init, \
}; \
static void machvirt_machine_##major##_##minor##_init(void) \
@@ -1778,26 +1777,7 @@ static void virt_machine_class_init(ObjectClass *oc, void *data)
hc->plug = virt_machine_device_plug_cb;
}
-static const TypeInfo virt_machine_info = {
- .name = TYPE_VIRT_MACHINE,
- .parent = TYPE_MACHINE,
- .abstract = true,
- .instance_size = sizeof(VirtMachineState),
- .class_size = sizeof(VirtMachineClass),
- .class_init = virt_machine_class_init,
- .interfaces = (InterfaceInfo[]) {
- { TYPE_HOTPLUG_HANDLER },
- { }
- },
-};
-
-static void machvirt_machine_init(void)
-{
- type_register_static(&virt_machine_info);
-}
-type_init(machvirt_machine_init);
-
-static void virt_4_0_instance_init(Object *obj)
+static void virt_instance_init(Object *obj)
{
VirtMachineState *vms = VIRT_MACHINE(obj);
VirtMachineClass *vmc = VIRT_MACHINE_GET_CLASS(vms);
@@ -1867,6 +1847,26 @@ static void virt_4_0_instance_init(Object *obj)
vms->irqmap = a15irqmap;
}
+static const TypeInfo virt_machine_info = {
+ .name = TYPE_VIRT_MACHINE,
+ .parent = TYPE_MACHINE,
+ .abstract = true,
+ .instance_size = sizeof(VirtMachineState),
+ .class_size = sizeof(VirtMachineClass),
+ .class_init = virt_machine_class_init,
+ .instance_init = virt_instance_init,
+ .interfaces = (InterfaceInfo[]) {
+ { TYPE_HOTPLUG_HANDLER },
+ { }
+ },
+};
+
+static void machvirt_machine_init(void)
+{
+ type_register_static(&virt_machine_info);
+}
+type_init(machvirt_machine_init);
+
static void virt_machine_4_0_options(MachineClass *mc)
{
}
@@ -1875,11 +1875,6 @@ DEFINE_VIRT_MACHINE_AS_LATEST(4, 0)
#define VIRT_COMPAT_3_1 \
HW_COMPAT_3_1
-static void virt_3_1_instance_init(Object *obj)
-{
- virt_4_0_instance_init(obj);
-}
-
static void virt_machine_3_1_options(MachineClass *mc)
{
virt_machine_4_0_options(mc);
@@ -1890,11 +1885,6 @@ DEFINE_VIRT_MACHINE(3, 1)
#define VIRT_COMPAT_3_0 \
HW_COMPAT_3_0
-static void virt_3_0_instance_init(Object *obj)
-{
- virt_3_1_instance_init(obj);
-}
-
static void virt_machine_3_0_options(MachineClass *mc)
{
virt_machine_3_1_options(mc);
@@ -1905,11 +1895,6 @@ DEFINE_VIRT_MACHINE(3, 0)
#define VIRT_COMPAT_2_12 \
HW_COMPAT_2_12
-static void virt_2_12_instance_init(Object *obj)
-{
- virt_3_0_instance_init(obj);
-}
-
static void virt_machine_2_12_options(MachineClass *mc)
{
VirtMachineClass *vmc = VIRT_MACHINE_CLASS(OBJECT_CLASS(mc));
@@ -1924,11 +1909,6 @@ DEFINE_VIRT_MACHINE(2, 12)
#define VIRT_COMPAT_2_11 \
HW_COMPAT_2_11
-static void virt_2_11_instance_init(Object *obj)
-{
- virt_2_12_instance_init(obj);
-}
-
static void virt_machine_2_11_options(MachineClass *mc)
{
VirtMachineClass *vmc = VIRT_MACHINE_CLASS(OBJECT_CLASS(mc));
@@ -1942,11 +1922,6 @@ DEFINE_VIRT_MACHINE(2, 11)
#define VIRT_COMPAT_2_10 \
HW_COMPAT_2_10
-static void virt_2_10_instance_init(Object *obj)
-{
- virt_2_11_instance_init(obj);
-}
-
static void virt_machine_2_10_options(MachineClass *mc)
{
virt_machine_2_11_options(mc);
@@ -1959,11 +1934,6 @@ DEFINE_VIRT_MACHINE(2, 10)
#define VIRT_COMPAT_2_9 \
HW_COMPAT_2_9
-static void virt_2_9_instance_init(Object *obj)
-{
- virt_2_10_instance_init(obj);
-}
-
static void virt_machine_2_9_options(MachineClass *mc)
{
virt_machine_2_10_options(mc);
@@ -1974,11 +1944,6 @@ DEFINE_VIRT_MACHINE(2, 9)
#define VIRT_COMPAT_2_8 \
HW_COMPAT_2_8
-static void virt_2_8_instance_init(Object *obj)
-{
- virt_2_9_instance_init(obj);
-}
-
static void virt_machine_2_8_options(MachineClass *mc)
{
VirtMachineClass *vmc = VIRT_MACHINE_CLASS(OBJECT_CLASS(mc));
@@ -1995,11 +1960,6 @@ DEFINE_VIRT_MACHINE(2, 8)
#define VIRT_COMPAT_2_7 \
HW_COMPAT_2_7
-static void virt_2_7_instance_init(Object *obj)
-{
- virt_2_8_instance_init(obj);
-}
-
static void virt_machine_2_7_options(MachineClass *mc)
{
VirtMachineClass *vmc = VIRT_MACHINE_CLASS(OBJECT_CLASS(mc));
@@ -2016,11 +1976,6 @@ DEFINE_VIRT_MACHINE(2, 7)
#define VIRT_COMPAT_2_6 \
HW_COMPAT_2_6
-static void virt_2_6_instance_init(Object *obj)
-{
- virt_2_7_instance_init(obj);
-}
-
static void virt_machine_2_6_options(MachineClass *mc)
{
VirtMachineClass *vmc = VIRT_MACHINE_CLASS(OBJECT_CLASS(mc));
--
2.18.0.rc1.1.g3f1ff2140
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH for-4.0 2/5] spapr: Use default_machine_opts to set use_hotplug_event_source
2018-12-05 20:58 [Qemu-devel] [PATCH for-4.0 0/5] spapr/virt/pc: Eliminate custom instance_init functions Eduardo Habkost
2018-12-05 20:58 ` [Qemu-devel] [PATCH for-4.0 1/5] virt: Eliminate separate " Eduardo Habkost
@ 2018-12-05 20:58 ` Eduardo Habkost
2018-12-05 22:29 ` David Gibson
2018-12-05 20:58 ` [Qemu-devel] [PATCH for-4.0 3/5] spapr: Use default_machine_opts to set suppress_vmdesc Eduardo Habkost
` (2 subsequent siblings)
4 siblings, 1 reply; 12+ messages in thread
From: Eduardo Habkost @ 2018-12-05 20:58 UTC (permalink / raw)
To: qemu-devel
Cc: Paolo Bonzini, Marc-André Lureau, Eduardo Habkost,
Marcel Apfelbaum, Michael S. Tsirkin, David Gibson, qemu-arm,
qemu-ppc, Richard Henderson, Peter Maydell
Instead of setting use_hotplug_event_source at instance_init
time, set default_machine_opts on spapr_machine_2_7_class_options()
to implement equivalent behavior.
This will let us eliminate the need for separate instance_init
functions for each spapr machine-type.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
hw/ppc/spapr.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 80d8498867..f6b60e6fbd 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -4240,10 +4240,7 @@ 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)
@@ -4252,6 +4249,7 @@ static void spapr_machine_2_7_class_options(MachineClass *mc)
spapr_machine_2_8_class_options(mc);
mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("power7_v2.3");
+ mc->default_machine_opts = "modern-hotplug-events=off";
SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_2_7);
smc->phb_placement = phb_placement_2_7;
}
--
2.18.0.rc1.1.g3f1ff2140
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH for-4.0 3/5] spapr: Use default_machine_opts to set suppress_vmdesc
2018-12-05 20:58 [Qemu-devel] [PATCH for-4.0 0/5] spapr/virt/pc: Eliminate custom instance_init functions Eduardo Habkost
2018-12-05 20:58 ` [Qemu-devel] [PATCH for-4.0 1/5] virt: Eliminate separate " Eduardo Habkost
2018-12-05 20:58 ` [Qemu-devel] [PATCH for-4.0 2/5] spapr: Use default_machine_opts to set use_hotplug_event_source Eduardo Habkost
@ 2018-12-05 20:58 ` Eduardo Habkost
2018-12-05 22:29 ` David Gibson
2018-12-05 20:58 ` [Qemu-devel] [PATCH for-4.0 4/5] spapr: Delete instance_options functions Eduardo Habkost
2018-12-05 20:58 ` [Qemu-devel] [PATCH for-4.0 5/5] pc: Use default_machine_opts to set suppress_vmdesc Eduardo Habkost
4 siblings, 1 reply; 12+ messages in thread
From: Eduardo Habkost @ 2018-12-05 20:58 UTC (permalink / raw)
To: qemu-devel
Cc: Paolo Bonzini, Marc-André Lureau, Eduardo Habkost,
Marcel Apfelbaum, Michael S. Tsirkin, David Gibson, qemu-arm,
qemu-ppc, Richard Henderson, Peter Maydell
Instead of setting suppress_vmdesc at instance_init time, set
default_machine_opts on spapr_machine_2_2_class_options() to
implement equivalent behavior.
This will let us eliminate the need for separate instance_init
functions for each spapr machine-type.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
hw/ppc/spapr.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index f6b60e6fbd..0c3b27a8cc 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -4368,13 +4368,13 @@ DEFINE_SPAPR_MACHINE(2_3, "2.3", false);
static void spapr_machine_2_2_instance_options(MachineState *machine)
{
spapr_machine_2_3_instance_options(machine);
- machine->suppress_vmdesc = true;
}
static void spapr_machine_2_2_class_options(MachineClass *mc)
{
spapr_machine_2_3_class_options(mc);
SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_2_2);
+ mc->default_machine_opts = "modern-hotplug-events=off,suppress-vmdesc=on";
}
DEFINE_SPAPR_MACHINE(2_2, "2.2", false);
--
2.18.0.rc1.1.g3f1ff2140
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH for-4.0 4/5] spapr: Delete instance_options functions
2018-12-05 20:58 [Qemu-devel] [PATCH for-4.0 0/5] spapr/virt/pc: Eliminate custom instance_init functions Eduardo Habkost
` (2 preceding siblings ...)
2018-12-05 20:58 ` [Qemu-devel] [PATCH for-4.0 3/5] spapr: Use default_machine_opts to set suppress_vmdesc Eduardo Habkost
@ 2018-12-05 20:58 ` Eduardo Habkost
2018-12-05 22:30 ` David Gibson
2018-12-05 20:58 ` [Qemu-devel] [PATCH for-4.0 5/5] pc: Use default_machine_opts to set suppress_vmdesc Eduardo Habkost
4 siblings, 1 reply; 12+ messages in thread
From: Eduardo Habkost @ 2018-12-05 20:58 UTC (permalink / raw)
To: qemu-devel
Cc: Paolo Bonzini, Marc-André Lureau, Eduardo Habkost,
Marcel Apfelbaum, Michael S. Tsirkin, David Gibson, qemu-arm,
qemu-ppc, Richard Henderson, Peter Maydell
Now that all instance_options functions for spapr are empty,
delete them.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
hw/ppc/spapr.c | 85 --------------------------------------------------
1 file changed, 85 deletions(-)
diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
index 0c3b27a8cc..523e5d83f8 100644
--- a/hw/ppc/spapr.c
+++ b/hw/ppc/spapr.c
@@ -3939,16 +3939,10 @@ static const TypeInfo spapr_machine_info = {
mc->is_default = 1; \
} \
} \
- static void spapr_machine_##suffix##_instance_init(Object *obj) \
- { \
- MachineState *machine = MACHINE(obj); \
- spapr_machine_##suffix##_instance_options(machine); \
- } \
static const TypeInfo spapr_machine_##suffix##_info = { \
.name = MACHINE_TYPE_NAME("pseries-" verstr), \
.parent = TYPE_SPAPR_MACHINE, \
.class_init = spapr_machine_##suffix##_class_init, \
- .instance_init = spapr_machine_##suffix##_instance_init, \
}; \
static void spapr_machine_register_##suffix(void) \
{ \
@@ -3959,10 +3953,6 @@ static const TypeInfo spapr_machine_info = {
/*
* pseries-4.0
*/
-static void spapr_machine_4_0_instance_options(MachineState *machine)
-{
-}
-
static void spapr_machine_4_0_class_options(MachineClass *mc)
{
/* Defaults for the latest behaviour inherited from the base class */
@@ -3976,11 +3966,6 @@ DEFINE_SPAPR_MACHINE(4_0, "4.0", true);
#define SPAPR_COMPAT_3_1 \
HW_COMPAT_3_1
-static void spapr_machine_3_1_instance_options(MachineState *machine)
-{
- spapr_machine_4_0_instance_options(machine);
-}
-
static void spapr_machine_3_1_class_options(MachineClass *mc)
{
spapr_machine_3_1_class_options(mc);
@@ -3995,11 +3980,6 @@ DEFINE_SPAPR_MACHINE(3_1, "3.1", false);
#define SPAPR_COMPAT_3_0 \
HW_COMPAT_3_0
-static void spapr_machine_3_0_instance_options(MachineState *machine)
-{
- spapr_machine_3_1_instance_options(machine);
-}
-
static void spapr_machine_3_0_class_options(MachineClass *mc)
{
sPAPRMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
@@ -4029,11 +4009,6 @@ DEFINE_SPAPR_MACHINE(3_0, "3.0", false);
.value = "on", \
},
-static void spapr_machine_2_12_instance_options(MachineState *machine)
-{
- spapr_machine_3_0_instance_options(machine);
-}
-
static void spapr_machine_2_12_class_options(MachineClass *mc)
{
sPAPRMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
@@ -4051,11 +4026,6 @@ static void spapr_machine_2_12_class_options(MachineClass *mc)
DEFINE_SPAPR_MACHINE(2_12, "2.12", false);
-static void spapr_machine_2_12_sxxm_instance_options(MachineState *machine)
-{
- spapr_machine_2_12_instance_options(machine);
-}
-
static void spapr_machine_2_12_sxxm_class_options(MachineClass *mc)
{
sPAPRMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
@@ -4074,11 +4044,6 @@ DEFINE_SPAPR_MACHINE(2_12_sxxm, "2.12-sxxm", false);
#define SPAPR_COMPAT_2_11 \
HW_COMPAT_2_11
-static void spapr_machine_2_11_instance_options(MachineState *machine)
-{
- spapr_machine_2_12_instance_options(machine);
-}
-
static void spapr_machine_2_11_class_options(MachineClass *mc)
{
sPAPRMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
@@ -4096,11 +4061,6 @@ DEFINE_SPAPR_MACHINE(2_11, "2.11", false);
#define SPAPR_COMPAT_2_10 \
HW_COMPAT_2_10
-static void spapr_machine_2_10_instance_options(MachineState *machine)
-{
- spapr_machine_2_11_instance_options(machine);
-}
-
static void spapr_machine_2_10_class_options(MachineClass *mc)
{
spapr_machine_2_11_class_options(mc);
@@ -4120,11 +4080,6 @@ DEFINE_SPAPR_MACHINE(2_10, "2.10", false);
.value = "on", \
}, \
-static void spapr_machine_2_9_instance_options(MachineState *machine)
-{
- spapr_machine_2_10_instance_options(machine);
-}
-
static void spapr_machine_2_9_class_options(MachineClass *mc)
{
sPAPRMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
@@ -4149,11 +4104,6 @@ DEFINE_SPAPR_MACHINE(2_9, "2.9", false);
.value = "off", \
},
-static void spapr_machine_2_8_instance_options(MachineState *machine)
-{
- spapr_machine_2_9_instance_options(machine);
-}
-
static void spapr_machine_2_8_class_options(MachineClass *mc)
{
spapr_machine_2_9_class_options(mc);
@@ -4238,11 +4188,6 @@ static void phb_placement_2_7(sPAPRMachineState *spapr, uint32_t index,
*/
}
-static void spapr_machine_2_7_instance_options(MachineState *machine)
-{
- spapr_machine_2_8_instance_options(machine);
-}
-
static void spapr_machine_2_7_class_options(MachineClass *mc)
{
sPAPRMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
@@ -4267,11 +4212,6 @@ DEFINE_SPAPR_MACHINE(2_7, "2.7", false);
.value = stringify(off),\
},
-static void spapr_machine_2_6_instance_options(MachineState *machine)
-{
- spapr_machine_2_7_instance_options(machine);
-}
-
static void spapr_machine_2_6_class_options(MachineClass *mc)
{
spapr_machine_2_7_class_options(mc);
@@ -4292,11 +4232,6 @@ DEFINE_SPAPR_MACHINE(2_6, "2.6", false);
.value = "off", \
},
-static void spapr_machine_2_5_instance_options(MachineState *machine)
-{
- spapr_machine_2_6_instance_options(machine);
-}
-
static void spapr_machine_2_5_class_options(MachineClass *mc)
{
sPAPRMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
@@ -4314,11 +4249,6 @@ DEFINE_SPAPR_MACHINE(2_5, "2.5", false);
#define SPAPR_COMPAT_2_4 \
HW_COMPAT_2_4
-static void spapr_machine_2_4_instance_options(MachineState *machine)
-{
- spapr_machine_2_5_instance_options(machine);
-}
-
static void spapr_machine_2_4_class_options(MachineClass *mc)
{
sPAPRMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
@@ -4341,11 +4271,6 @@ DEFINE_SPAPR_MACHINE(2_4, "2.4", false);
.value = "off",\
},
-static void spapr_machine_2_3_instance_options(MachineState *machine)
-{
- spapr_machine_2_4_instance_options(machine);
-}
-
static void spapr_machine_2_3_class_options(MachineClass *mc)
{
spapr_machine_2_4_class_options(mc);
@@ -4365,11 +4290,6 @@ DEFINE_SPAPR_MACHINE(2_3, "2.3", false);
.value = "0x20000000",\
},
-static void spapr_machine_2_2_instance_options(MachineState *machine)
-{
- spapr_machine_2_3_instance_options(machine);
-}
-
static void spapr_machine_2_2_class_options(MachineClass *mc)
{
spapr_machine_2_3_class_options(mc);
@@ -4384,11 +4304,6 @@ DEFINE_SPAPR_MACHINE(2_2, "2.2", false);
#define SPAPR_COMPAT_2_1 \
HW_COMPAT_2_1
-static void spapr_machine_2_1_instance_options(MachineState *machine)
-{
- spapr_machine_2_2_instance_options(machine);
-}
-
static void spapr_machine_2_1_class_options(MachineClass *mc)
{
spapr_machine_2_2_class_options(mc);
--
2.18.0.rc1.1.g3f1ff2140
^ permalink raw reply related [flat|nested] 12+ messages in thread
* [Qemu-devel] [PATCH for-4.0 5/5] pc: Use default_machine_opts to set suppress_vmdesc
2018-12-05 20:58 [Qemu-devel] [PATCH for-4.0 0/5] spapr/virt/pc: Eliminate custom instance_init functions Eduardo Habkost
` (3 preceding siblings ...)
2018-12-05 20:58 ` [Qemu-devel] [PATCH for-4.0 4/5] spapr: Delete instance_options functions Eduardo Habkost
@ 2018-12-05 20:58 ` Eduardo Habkost
4 siblings, 0 replies; 12+ messages in thread
From: Eduardo Habkost @ 2018-12-05 20:58 UTC (permalink / raw)
To: qemu-devel
Cc: Paolo Bonzini, Marc-André Lureau, Eduardo Habkost,
Marcel Apfelbaum, Michael S. Tsirkin, David Gibson, qemu-arm,
qemu-ppc, Richard Henderson, Peter Maydell
Instead of setting suppress_vmdesc at instance_init time, set
default_machine_opts on pc_i440fx_2_2_machine_options() to
implement equivalent behavior.
This will let us eliminate the need for pc_compat_*() functions
for PC machine-types.
Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
---
hw/i386/pc_piix.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/hw/i386/pc_piix.c b/hw/i386/pc_piix.c
index cfaa83ee2f..c1f6f3dfda 100644
--- a/hw/i386/pc_piix.c
+++ b/hw/i386/pc_piix.c
@@ -320,7 +320,6 @@ static void pc_compat_2_3(MachineState *machine)
static void pc_compat_2_2(MachineState *machine)
{
pc_compat_2_3(machine);
- machine->suppress_vmdesc = true;
}
static void pc_compat_2_1(MachineState *machine)
@@ -571,6 +570,7 @@ static void pc_i440fx_2_2_machine_options(MachineClass *m)
PCMachineClass *pcmc = PC_MACHINE_CLASS(m);
pc_i440fx_2_3_machine_options(m);
m->hw_version = "2.2.0";
+ m->default_machine_opts = "firmware=bios-256k.bin,suppress-vmdesc=on";
SET_MACHINE_COMPAT(m, PC_COMPAT_2_2);
pcmc->rsdp_in_ram = false;
}
--
2.18.0.rc1.1.g3f1ff2140
^ permalink raw reply related [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH for-4.0 2/5] spapr: Use default_machine_opts to set use_hotplug_event_source
2018-12-05 20:58 ` [Qemu-devel] [PATCH for-4.0 2/5] spapr: Use default_machine_opts to set use_hotplug_event_source Eduardo Habkost
@ 2018-12-05 22:29 ` David Gibson
0 siblings, 0 replies; 12+ messages in thread
From: David Gibson @ 2018-12-05 22:29 UTC (permalink / raw)
To: Eduardo Habkost
Cc: qemu-devel, Paolo Bonzini, Marc-André Lureau,
Marcel Apfelbaum, Michael S. Tsirkin, qemu-arm, qemu-ppc,
Richard Henderson, Peter Maydell
[-- Attachment #1: Type: text/plain, Size: 1689 bytes --]
On Wed, Dec 05, 2018 at 06:58:24PM -0200, Eduardo Habkost wrote:
> Instead of setting use_hotplug_event_source at instance_init
> time, set default_machine_opts on spapr_machine_2_7_class_options()
> to implement equivalent behavior.
>
> This will let us eliminate the need for separate instance_init
> functions for each spapr machine-type.
>
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
> ---
> hw/ppc/spapr.c | 4 +---
> 1 file changed, 1 insertion(+), 3 deletions(-)
>
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index 80d8498867..f6b60e6fbd 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -4240,10 +4240,7 @@ 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)
> @@ -4252,6 +4249,7 @@ static void spapr_machine_2_7_class_options(MachineClass *mc)
>
> spapr_machine_2_8_class_options(mc);
> mc->default_cpu_type = POWERPC_CPU_TYPE_NAME("power7_v2.3");
> + mc->default_machine_opts = "modern-hotplug-events=off";
> SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_2_7);
> smc->phb_placement = phb_placement_2_7;
> }
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH for-4.0 3/5] spapr: Use default_machine_opts to set suppress_vmdesc
2018-12-05 20:58 ` [Qemu-devel] [PATCH for-4.0 3/5] spapr: Use default_machine_opts to set suppress_vmdesc Eduardo Habkost
@ 2018-12-05 22:29 ` David Gibson
0 siblings, 0 replies; 12+ messages in thread
From: David Gibson @ 2018-12-05 22:29 UTC (permalink / raw)
To: Eduardo Habkost
Cc: qemu-devel, Paolo Bonzini, Marc-André Lureau,
Marcel Apfelbaum, Michael S. Tsirkin, qemu-arm, qemu-ppc,
Richard Henderson, Peter Maydell
[-- Attachment #1: Type: text/plain, Size: 1436 bytes --]
On Wed, Dec 05, 2018 at 06:58:25PM -0200, Eduardo Habkost wrote:
> Instead of setting suppress_vmdesc at instance_init time, set
> default_machine_opts on spapr_machine_2_2_class_options() to
> implement equivalent behavior.
>
> This will let us eliminate the need for separate instance_init
> functions for each spapr machine-type.
>
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
> ---
> hw/ppc/spapr.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index f6b60e6fbd..0c3b27a8cc 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -4368,13 +4368,13 @@ DEFINE_SPAPR_MACHINE(2_3, "2.3", false);
> static void spapr_machine_2_2_instance_options(MachineState *machine)
> {
> spapr_machine_2_3_instance_options(machine);
> - machine->suppress_vmdesc = true;
> }
>
> static void spapr_machine_2_2_class_options(MachineClass *mc)
> {
> spapr_machine_2_3_class_options(mc);
> SET_MACHINE_COMPAT(mc, SPAPR_COMPAT_2_2);
> + mc->default_machine_opts = "modern-hotplug-events=off,suppress-vmdesc=on";
> }
> DEFINE_SPAPR_MACHINE(2_2, "2.2", false);
>
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH for-4.0 4/5] spapr: Delete instance_options functions
2018-12-05 20:58 ` [Qemu-devel] [PATCH for-4.0 4/5] spapr: Delete instance_options functions Eduardo Habkost
@ 2018-12-05 22:30 ` David Gibson
2018-12-06 12:48 ` Eduardo Habkost
0 siblings, 1 reply; 12+ messages in thread
From: David Gibson @ 2018-12-05 22:30 UTC (permalink / raw)
To: Eduardo Habkost
Cc: qemu-devel, Paolo Bonzini, Marc-André Lureau,
Marcel Apfelbaum, Michael S. Tsirkin, qemu-arm, qemu-ppc,
Richard Henderson, Peter Maydell
[-- Attachment #1: Type: text/plain, Size: 8774 bytes --]
On Wed, Dec 05, 2018 at 06:58:26PM -0200, Eduardo Habkost wrote:
> Now that all instance_options functions for spapr are empty,
> delete them.
>
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
Acked-by: David Gibson <david@gibson.dropbear.id.au>
Do you want me to stage the ppc patches in my ppc-for-4.0 tree, or
would you prefer to keep your series together to go in via your tree?
> ---
> hw/ppc/spapr.c | 85 --------------------------------------------------
> 1 file changed, 85 deletions(-)
>
> diff --git a/hw/ppc/spapr.c b/hw/ppc/spapr.c
> index 0c3b27a8cc..523e5d83f8 100644
> --- a/hw/ppc/spapr.c
> +++ b/hw/ppc/spapr.c
> @@ -3939,16 +3939,10 @@ static const TypeInfo spapr_machine_info = {
> mc->is_default = 1; \
> } \
> } \
> - static void spapr_machine_##suffix##_instance_init(Object *obj) \
> - { \
> - MachineState *machine = MACHINE(obj); \
> - spapr_machine_##suffix##_instance_options(machine); \
> - } \
> static const TypeInfo spapr_machine_##suffix##_info = { \
> .name = MACHINE_TYPE_NAME("pseries-" verstr), \
> .parent = TYPE_SPAPR_MACHINE, \
> .class_init = spapr_machine_##suffix##_class_init, \
> - .instance_init = spapr_machine_##suffix##_instance_init, \
> }; \
> static void spapr_machine_register_##suffix(void) \
> { \
> @@ -3959,10 +3953,6 @@ static const TypeInfo spapr_machine_info = {
> /*
> * pseries-4.0
> */
> -static void spapr_machine_4_0_instance_options(MachineState *machine)
> -{
> -}
> -
> static void spapr_machine_4_0_class_options(MachineClass *mc)
> {
> /* Defaults for the latest behaviour inherited from the base class */
> @@ -3976,11 +3966,6 @@ DEFINE_SPAPR_MACHINE(4_0, "4.0", true);
> #define SPAPR_COMPAT_3_1 \
> HW_COMPAT_3_1
>
> -static void spapr_machine_3_1_instance_options(MachineState *machine)
> -{
> - spapr_machine_4_0_instance_options(machine);
> -}
> -
> static void spapr_machine_3_1_class_options(MachineClass *mc)
> {
> spapr_machine_3_1_class_options(mc);
> @@ -3995,11 +3980,6 @@ DEFINE_SPAPR_MACHINE(3_1, "3.1", false);
> #define SPAPR_COMPAT_3_0 \
> HW_COMPAT_3_0
>
> -static void spapr_machine_3_0_instance_options(MachineState *machine)
> -{
> - spapr_machine_3_1_instance_options(machine);
> -}
> -
> static void spapr_machine_3_0_class_options(MachineClass *mc)
> {
> sPAPRMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
> @@ -4029,11 +4009,6 @@ DEFINE_SPAPR_MACHINE(3_0, "3.0", false);
> .value = "on", \
> },
>
> -static void spapr_machine_2_12_instance_options(MachineState *machine)
> -{
> - spapr_machine_3_0_instance_options(machine);
> -}
> -
> static void spapr_machine_2_12_class_options(MachineClass *mc)
> {
> sPAPRMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
> @@ -4051,11 +4026,6 @@ static void spapr_machine_2_12_class_options(MachineClass *mc)
>
> DEFINE_SPAPR_MACHINE(2_12, "2.12", false);
>
> -static void spapr_machine_2_12_sxxm_instance_options(MachineState *machine)
> -{
> - spapr_machine_2_12_instance_options(machine);
> -}
> -
> static void spapr_machine_2_12_sxxm_class_options(MachineClass *mc)
> {
> sPAPRMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
> @@ -4074,11 +4044,6 @@ DEFINE_SPAPR_MACHINE(2_12_sxxm, "2.12-sxxm", false);
> #define SPAPR_COMPAT_2_11 \
> HW_COMPAT_2_11
>
> -static void spapr_machine_2_11_instance_options(MachineState *machine)
> -{
> - spapr_machine_2_12_instance_options(machine);
> -}
> -
> static void spapr_machine_2_11_class_options(MachineClass *mc)
> {
> sPAPRMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
> @@ -4096,11 +4061,6 @@ DEFINE_SPAPR_MACHINE(2_11, "2.11", false);
> #define SPAPR_COMPAT_2_10 \
> HW_COMPAT_2_10
>
> -static void spapr_machine_2_10_instance_options(MachineState *machine)
> -{
> - spapr_machine_2_11_instance_options(machine);
> -}
> -
> static void spapr_machine_2_10_class_options(MachineClass *mc)
> {
> spapr_machine_2_11_class_options(mc);
> @@ -4120,11 +4080,6 @@ DEFINE_SPAPR_MACHINE(2_10, "2.10", false);
> .value = "on", \
> }, \
>
> -static void spapr_machine_2_9_instance_options(MachineState *machine)
> -{
> - spapr_machine_2_10_instance_options(machine);
> -}
> -
> static void spapr_machine_2_9_class_options(MachineClass *mc)
> {
> sPAPRMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
> @@ -4149,11 +4104,6 @@ DEFINE_SPAPR_MACHINE(2_9, "2.9", false);
> .value = "off", \
> },
>
> -static void spapr_machine_2_8_instance_options(MachineState *machine)
> -{
> - spapr_machine_2_9_instance_options(machine);
> -}
> -
> static void spapr_machine_2_8_class_options(MachineClass *mc)
> {
> spapr_machine_2_9_class_options(mc);
> @@ -4238,11 +4188,6 @@ static void phb_placement_2_7(sPAPRMachineState *spapr, uint32_t index,
> */
> }
>
> -static void spapr_machine_2_7_instance_options(MachineState *machine)
> -{
> - spapr_machine_2_8_instance_options(machine);
> -}
> -
> static void spapr_machine_2_7_class_options(MachineClass *mc)
> {
> sPAPRMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
> @@ -4267,11 +4212,6 @@ DEFINE_SPAPR_MACHINE(2_7, "2.7", false);
> .value = stringify(off),\
> },
>
> -static void spapr_machine_2_6_instance_options(MachineState *machine)
> -{
> - spapr_machine_2_7_instance_options(machine);
> -}
> -
> static void spapr_machine_2_6_class_options(MachineClass *mc)
> {
> spapr_machine_2_7_class_options(mc);
> @@ -4292,11 +4232,6 @@ DEFINE_SPAPR_MACHINE(2_6, "2.6", false);
> .value = "off", \
> },
>
> -static void spapr_machine_2_5_instance_options(MachineState *machine)
> -{
> - spapr_machine_2_6_instance_options(machine);
> -}
> -
> static void spapr_machine_2_5_class_options(MachineClass *mc)
> {
> sPAPRMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
> @@ -4314,11 +4249,6 @@ DEFINE_SPAPR_MACHINE(2_5, "2.5", false);
> #define SPAPR_COMPAT_2_4 \
> HW_COMPAT_2_4
>
> -static void spapr_machine_2_4_instance_options(MachineState *machine)
> -{
> - spapr_machine_2_5_instance_options(machine);
> -}
> -
> static void spapr_machine_2_4_class_options(MachineClass *mc)
> {
> sPAPRMachineClass *smc = SPAPR_MACHINE_CLASS(mc);
> @@ -4341,11 +4271,6 @@ DEFINE_SPAPR_MACHINE(2_4, "2.4", false);
> .value = "off",\
> },
>
> -static void spapr_machine_2_3_instance_options(MachineState *machine)
> -{
> - spapr_machine_2_4_instance_options(machine);
> -}
> -
> static void spapr_machine_2_3_class_options(MachineClass *mc)
> {
> spapr_machine_2_4_class_options(mc);
> @@ -4365,11 +4290,6 @@ DEFINE_SPAPR_MACHINE(2_3, "2.3", false);
> .value = "0x20000000",\
> },
>
> -static void spapr_machine_2_2_instance_options(MachineState *machine)
> -{
> - spapr_machine_2_3_instance_options(machine);
> -}
> -
> static void spapr_machine_2_2_class_options(MachineClass *mc)
> {
> spapr_machine_2_3_class_options(mc);
> @@ -4384,11 +4304,6 @@ DEFINE_SPAPR_MACHINE(2_2, "2.2", false);
> #define SPAPR_COMPAT_2_1 \
> HW_COMPAT_2_1
>
> -static void spapr_machine_2_1_instance_options(MachineState *machine)
> -{
> - spapr_machine_2_2_instance_options(machine);
> -}
> -
> static void spapr_machine_2_1_class_options(MachineClass *mc)
> {
> spapr_machine_2_2_class_options(mc);
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH for-4.0 4/5] spapr: Delete instance_options functions
2018-12-05 22:30 ` David Gibson
@ 2018-12-06 12:48 ` Eduardo Habkost
2018-12-07 0:22 ` David Gibson
0 siblings, 1 reply; 12+ messages in thread
From: Eduardo Habkost @ 2018-12-06 12:48 UTC (permalink / raw)
To: David Gibson
Cc: qemu-devel, Paolo Bonzini, Marc-André Lureau,
Marcel Apfelbaum, Michael S. Tsirkin, qemu-arm, qemu-ppc,
Richard Henderson, Peter Maydell
On Thu, Dec 06, 2018 at 09:30:35AM +1100, David Gibson wrote:
> On Wed, Dec 05, 2018 at 06:58:26PM -0200, Eduardo Habkost wrote:
> > Now that all instance_options functions for spapr are empty,
> > delete them.
> >
> > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
>
> Acked-by: David Gibson <david@gibson.dropbear.id.au>
Thanks!
>
> Do you want me to stage the ppc patches in my ppc-for-4.0 tree, or
> would you prefer to keep your series together to go in via your tree?
I wouldn't mind to get this queued through the ppc tree, but
maybe it will be easier to get them through the machine tree
because of the dependency on the 4.0 machine-type patch.
--
Eduardo
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH for-4.0 1/5] virt: Eliminate separate instance_init functions
2018-12-05 20:58 ` [Qemu-devel] [PATCH for-4.0 1/5] virt: Eliminate separate " Eduardo Habkost
@ 2018-12-06 14:06 ` Peter Maydell
0 siblings, 0 replies; 12+ messages in thread
From: Peter Maydell @ 2018-12-06 14:06 UTC (permalink / raw)
To: Eduardo Habkost
Cc: QEMU Developers, Paolo Bonzini, Marc-André Lureau,
Marcel Apfelbaum, Michael S. Tsirkin, David Gibson, qemu-arm,
qemu-ppc, Richard Henderson
On Wed, 5 Dec 2018 at 20:58, Eduardo Habkost <ehabkost@redhat.com> wrote:
>
> All instance_init functions for all virt machine-types run
> exactly the same code, so we don't need separate functions. We
> only need to set instance_init for TYPE_VIRT_MACHINE.
>
> Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> ---
> hw/arm/virt.c | 87 +++++++++++++--------------------------------------
> 1 file changed, 21 insertions(+), 66 deletions(-)
>
> +static const TypeInfo virt_machine_info = {
> + .name = TYPE_VIRT_MACHINE,
> + .parent = TYPE_MACHINE,
> + .abstract = true,
> + .instance_size = sizeof(VirtMachineState),
> + .class_size = sizeof(VirtMachineClass),
> + .class_init = virt_machine_class_init,
> + .instance_init = virt_instance_init,
Indentation looks like it's not quite right here.
> + .interfaces = (InterfaceInfo[]) {
> + { TYPE_HOTPLUG_HANDLER },
> + { }
> + },
> +};
Otherwise
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
thanks
-- PMM
^ permalink raw reply [flat|nested] 12+ messages in thread
* Re: [Qemu-devel] [PATCH for-4.0 4/5] spapr: Delete instance_options functions
2018-12-06 12:48 ` Eduardo Habkost
@ 2018-12-07 0:22 ` David Gibson
0 siblings, 0 replies; 12+ messages in thread
From: David Gibson @ 2018-12-07 0:22 UTC (permalink / raw)
To: Eduardo Habkost
Cc: qemu-devel, Paolo Bonzini, Marc-André Lureau,
Marcel Apfelbaum, Michael S. Tsirkin, qemu-arm, qemu-ppc,
Richard Henderson, Peter Maydell
[-- Attachment #1: Type: text/plain, Size: 990 bytes --]
On Thu, Dec 06, 2018 at 10:48:51AM -0200, Eduardo Habkost wrote:
> On Thu, Dec 06, 2018 at 09:30:35AM +1100, David Gibson wrote:
> > On Wed, Dec 05, 2018 at 06:58:26PM -0200, Eduardo Habkost wrote:
> > > Now that all instance_options functions for spapr are empty,
> > > delete them.
> > >
> > > Signed-off-by: Eduardo Habkost <ehabkost@redhat.com>
> >
> > Acked-by: David Gibson <david@gibson.dropbear.id.au>
>
> Thanks!
>
> >
> > Do you want me to stage the ppc patches in my ppc-for-4.0 tree, or
> > would you prefer to keep your series together to go in via your tree?
>
> I wouldn't mind to get this queued through the ppc tree, but
> maybe it will be easier to get them through the machine tree
> because of the dependency on the 4.0 machine-type patch.
Sure.
--
David Gibson | I'll have my music baroque, and my code
david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_
| _way_ _around_!
http://www.ozlabs.org/~dgibson
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 833 bytes --]
^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2018-12-07 0:47 UTC | newest]
Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2018-12-05 20:58 [Qemu-devel] [PATCH for-4.0 0/5] spapr/virt/pc: Eliminate custom instance_init functions Eduardo Habkost
2018-12-05 20:58 ` [Qemu-devel] [PATCH for-4.0 1/5] virt: Eliminate separate " Eduardo Habkost
2018-12-06 14:06 ` Peter Maydell
2018-12-05 20:58 ` [Qemu-devel] [PATCH for-4.0 2/5] spapr: Use default_machine_opts to set use_hotplug_event_source Eduardo Habkost
2018-12-05 22:29 ` David Gibson
2018-12-05 20:58 ` [Qemu-devel] [PATCH for-4.0 3/5] spapr: Use default_machine_opts to set suppress_vmdesc Eduardo Habkost
2018-12-05 22:29 ` David Gibson
2018-12-05 20:58 ` [Qemu-devel] [PATCH for-4.0 4/5] spapr: Delete instance_options functions Eduardo Habkost
2018-12-05 22:30 ` David Gibson
2018-12-06 12:48 ` Eduardo Habkost
2018-12-07 0:22 ` David Gibson
2018-12-05 20:58 ` [Qemu-devel] [PATCH for-4.0 5/5] pc: Use default_machine_opts to set suppress_vmdesc Eduardo Habkost
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.