* [Qemu-devel] [PATCH Part1 0/5] Common unplug and unplug request cb for memory and CPU hot-unplug.
@ 2014-11-17 5:03 Tang Chen
2014-11-17 5:03 ` [Qemu-devel] [PATCH Part1 1/5] acpi, pc: Add hotunplug request cb for pc machine Tang Chen
` (4 more replies)
0 siblings, 5 replies; 9+ messages in thread
From: Tang Chen @ 2014-11-17 5:03 UTC (permalink / raw)
To: qemu-devel, imammedo, mst, pbonzini
Cc: guz.fnst, hutao, isimatu.yasuaki, zhugh.fnst, tangchen
Memory and CPU 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.
They both need pc-machine, piix4 and ich9 unplug and unplug request cb.
So this patch set introduces these commom functions as part1, and memory
and CPU hot-unplug will come soon as part 2 and 3.
Tang Chen (5):
acpi, pc: Add hotunplug request cb for pc machine.
acpi, ich9: Add hotunplug request cb for ich9.
acpi, pc: Add unplug cb for pc machine.
acpi, ich9: Add unplug cb for ich9.
acpi, piix4: Add unplug cb for piix4.
hw/acpi/ich9.c | 14 ++++++++++++++
hw/acpi/piix4.c | 8 ++++++++
hw/i386/pc.c | 16 ++++++++++++++++
hw/isa/lpc_ich9.c | 14 ++++++++++++--
include/hw/acpi/ich9.h | 4 ++++
5 files changed, 54 insertions(+), 2 deletions(-)
--
1.8.4.2
^ permalink raw reply [flat|nested] 9+ messages in thread
* [Qemu-devel] [PATCH Part1 1/5] acpi, pc: Add hotunplug request cb for pc machine.
2014-11-17 5:03 [Qemu-devel] [PATCH Part1 0/5] Common unplug and unplug request cb for memory and CPU hot-unplug Tang Chen
@ 2014-11-17 5:03 ` Tang Chen
2014-11-18 12:44 ` Igor Mammedov
2014-11-17 5:03 ` [Qemu-devel] [PATCH Part1 2/5] acpi, ich9: Add hotunplug request cb for ich9 Tang Chen
` (3 subsequent siblings)
4 siblings, 1 reply; 9+ messages in thread
From: Tang Chen @ 2014-11-17 5:03 UTC (permalink / raw)
To: qemu-devel, imammedo, mst, pbonzini
Cc: guz.fnst, hutao, isimatu.yasuaki, zhugh.fnst, tangchen
Memory and CPU hot unplug are both asynchronize procedures.
They both need unplug request cb when the unplug operation happens.
This patch adds hotunplug request cb for pc machine, and memory and CPU
hot unplug will base on it.
Signed-off-by: Tang Chen <tangchen@cn.fujitsu.com>
---
hw/i386/pc.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 1205db8..5c48435 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1647,6 +1647,13 @@ static void pc_machine_device_plug_cb(HotplugHandler *hotplug_dev,
}
}
+static void pc_machine_device_unplug_request_cb(HotplugHandler *hotplug_dev,
+ DeviceState *dev, Error **errp)
+{
+ error_setg(errp, "acpi: device unplug request for not supported device"
+ " type: %s", object_get_typename(OBJECT(dev)));
+}
+
static HotplugHandler *pc_get_hotpug_handler(MachineState *machine,
DeviceState *dev)
{
@@ -1753,6 +1760,7 @@ static void pc_machine_class_init(ObjectClass *oc, void *data)
pcmc->get_hotplug_handler = mc->get_hotplug_handler;
mc->get_hotplug_handler = pc_get_hotpug_handler;
hc->plug = pc_machine_device_plug_cb;
+ hc->unplug_request = pc_machine_device_unplug_request_cb;
}
static const TypeInfo pc_machine_info = {
--
1.8.4.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Qemu-devel] [PATCH Part1 2/5] acpi, ich9: Add hotunplug request cb for ich9.
2014-11-17 5:03 [Qemu-devel] [PATCH Part1 0/5] Common unplug and unplug request cb for memory and CPU hot-unplug Tang Chen
2014-11-17 5:03 ` [Qemu-devel] [PATCH Part1 1/5] acpi, pc: Add hotunplug request cb for pc machine Tang Chen
@ 2014-11-17 5:03 ` Tang Chen
2014-11-17 5:03 ` [Qemu-devel] [PATCH Part1 3/5] acpi, pc: Add unplug cb for pc machine Tang Chen
` (2 subsequent siblings)
4 siblings, 0 replies; 9+ messages in thread
From: Tang Chen @ 2014-11-17 5:03 UTC (permalink / raw)
To: qemu-devel, imammedo, mst, pbonzini
Cc: guz.fnst, hutao, isimatu.yasuaki, zhugh.fnst, tangchen
Memory and CPU hot unplug are both asynchronize procedures.
They both need unplug request cb when the unplug operation happens.
This patch adds hotunplug request cb for ich9, and memory and CPU
hot unplug will base on it.
Signed-off-by: Tang Chen <tangchen@cn.fujitsu.com>
---
hw/acpi/ich9.c | 7 +++++++
hw/isa/lpc_ich9.c | 5 +++--
include/hw/acpi/ich9.h | 2 ++
3 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c
index ea991a3..5ce3aaf 100644
--- a/hw/acpi/ich9.c
+++ b/hw/acpi/ich9.c
@@ -301,6 +301,13 @@ 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)
+{
+ error_setg(errp, "acpi: device unplug request for not supported device"
+ " type: %s", object_get_typename(OBJECT(dev)));
+}
+
void ich9_pm_ospm_status(AcpiDeviceIf *adev, ACPIOSTInfoList ***list)
{
ICH9LPCState *s = ICH9_LPC_DEVICE(adev);
diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c
index 530b074..d00b223 100644
--- a/hw/isa/lpc_ich9.c
+++ b/hw/isa/lpc_ich9.c
@@ -610,8 +610,9 @@ static void ich9_device_plug_cb(HotplugHandler *hotplug_dev,
static void ich9_device_unplug_request_cb(HotplugHandler *hotplug_dev,
DeviceState *dev, Error **errp)
{
- error_setg(errp, "acpi: device unplug request for not supported device"
- " type: %s", object_get_typename(OBJECT(dev)));
+ ICH9LPCState *lpc = ICH9_LPC_DEVICE(hotplug_dev);
+
+ ich9_pm_device_unplug_request_cb(&lpc->pm, dev, errp);
}
static bool ich9_rst_cnt_needed(void *opaque)
diff --git a/include/hw/acpi/ich9.h b/include/hw/acpi/ich9.h
index fe975e6..86853c3 100644
--- a/include/hw/acpi/ich9.h
+++ b/include/hw/acpi/ich9.h
@@ -59,6 +59,8 @@ 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_ospm_status(AcpiDeviceIf *adev, ACPIOSTInfoList ***list);
#endif /* HW_ACPI_ICH9_H */
--
1.8.4.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Qemu-devel] [PATCH Part1 3/5] acpi, pc: Add unplug cb for pc machine.
2014-11-17 5:03 [Qemu-devel] [PATCH Part1 0/5] Common unplug and unplug request cb for memory and CPU hot-unplug Tang Chen
2014-11-17 5:03 ` [Qemu-devel] [PATCH Part1 1/5] acpi, pc: Add hotunplug request cb for pc machine Tang Chen
2014-11-17 5:03 ` [Qemu-devel] [PATCH Part1 2/5] acpi, ich9: Add hotunplug request cb for ich9 Tang Chen
@ 2014-11-17 5:03 ` Tang Chen
2014-11-17 5:03 ` [Qemu-devel] [PATCH Part1 4/5] acpi, ich9: Add unplug cb for ich9 Tang Chen
2014-11-17 5:03 ` [Qemu-devel] [PATCH Part1 5/5] acpi, piix4: Add unplug cb for piix4 Tang Chen
4 siblings, 0 replies; 9+ messages in thread
From: Tang Chen @ 2014-11-17 5:03 UTC (permalink / raw)
To: qemu-devel, imammedo, mst, pbonzini
Cc: guz.fnst, hutao, isimatu.yasuaki, zhugh.fnst, tangchen
Memory and CPU 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 hotunplug cb for pc machine, and memory and CPU
hot unplug will base on it.
Signed-off-by: Tang Chen <tangchen@cn.fujitsu.com>
---
hw/i386/pc.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/hw/i386/pc.c b/hw/i386/pc.c
index 5c48435..d5073df 100644
--- a/hw/i386/pc.c
+++ b/hw/i386/pc.c
@@ -1654,6 +1654,13 @@ static void pc_machine_device_unplug_request_cb(HotplugHandler *hotplug_dev,
" type: %s", object_get_typename(OBJECT(dev)));
}
+static void pc_machine_device_unplug_cb(HotplugHandler *hotplug_dev,
+ DeviceState *dev, Error **errp)
+{
+ error_setg(errp, "acpi: device unplug for not supported device"
+ " type: %s", object_get_typename(OBJECT(dev)));
+}
+
static HotplugHandler *pc_get_hotpug_handler(MachineState *machine,
DeviceState *dev)
{
@@ -1761,6 +1768,7 @@ static void pc_machine_class_init(ObjectClass *oc, void *data)
mc->get_hotplug_handler = pc_get_hotpug_handler;
hc->plug = pc_machine_device_plug_cb;
hc->unplug_request = pc_machine_device_unplug_request_cb;
+ hc->unplug = pc_machine_device_unplug_cb;
}
static const TypeInfo pc_machine_info = {
--
1.8.4.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Qemu-devel] [PATCH Part1 4/5] acpi, ich9: Add unplug cb for ich9.
2014-11-17 5:03 [Qemu-devel] [PATCH Part1 0/5] Common unplug and unplug request cb for memory and CPU hot-unplug Tang Chen
` (2 preceding siblings ...)
2014-11-17 5:03 ` [Qemu-devel] [PATCH Part1 3/5] acpi, pc: Add unplug cb for pc machine Tang Chen
@ 2014-11-17 5:03 ` Tang Chen
2014-11-17 5:03 ` [Qemu-devel] [PATCH Part1 5/5] acpi, piix4: Add unplug cb for piix4 Tang Chen
4 siblings, 0 replies; 9+ messages in thread
From: Tang Chen @ 2014-11-17 5:03 UTC (permalink / raw)
To: qemu-devel, imammedo, mst, pbonzini
Cc: guz.fnst, hutao, isimatu.yasuaki, zhugh.fnst, tangchen
Memory and CPU 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 hotunplug cb for ich9, and memory and CPU
hot unplug will base on it.
Signed-off-by: Tang Chen <tangchen@cn.fujitsu.com>
---
hw/acpi/ich9.c | 7 +++++++
hw/isa/lpc_ich9.c | 9 +++++++++
include/hw/acpi/ich9.h | 2 ++
3 files changed, 18 insertions(+)
diff --git a/hw/acpi/ich9.c b/hw/acpi/ich9.c
index 5ce3aaf..c48d176 100644
--- a/hw/acpi/ich9.c
+++ b/hw/acpi/ich9.c
@@ -308,6 +308,13 @@ void ich9_pm_device_unplug_request_cb(ICH9LPCPMRegs *pm, DeviceState *dev,
" type: %s", object_get_typename(OBJECT(dev)));
}
+void ich9_pm_device_unplug_cb(ICH9LPCPMRegs *pm, DeviceState *dev,
+ Error **errp)
+{
+ error_setg(errp, "acpi: device unplug for not supported device"
+ " type: %s", object_get_typename(OBJECT(dev)));
+}
+
void ich9_pm_ospm_status(AcpiDeviceIf *adev, ACPIOSTInfoList ***list)
{
ICH9LPCState *s = ICH9_LPC_DEVICE(adev);
diff --git a/hw/isa/lpc_ich9.c b/hw/isa/lpc_ich9.c
index d00b223..16f5a0d 100644
--- a/hw/isa/lpc_ich9.c
+++ b/hw/isa/lpc_ich9.c
@@ -615,6 +615,14 @@ static void ich9_device_unplug_request_cb(HotplugHandler *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;
@@ -678,6 +686,7 @@ static void ich9_lpc_class_init(ObjectClass *klass, void *data)
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;
adevc->ospm_status = ich9_pm_ospm_status;
}
diff --git a/include/hw/acpi/ich9.h b/include/hw/acpi/ich9.h
index 86853c3..fc87dad 100644
--- a/include/hw/acpi/ich9.h
+++ b/include/hw/acpi/ich9.h
@@ -61,6 +61,8 @@ 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,
+ Error **errp);
void ich9_pm_ospm_status(AcpiDeviceIf *adev, ACPIOSTInfoList ***list);
#endif /* HW_ACPI_ICH9_H */
--
1.8.4.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* [Qemu-devel] [PATCH Part1 5/5] acpi, piix4: Add unplug cb for piix4.
2014-11-17 5:03 [Qemu-devel] [PATCH Part1 0/5] Common unplug and unplug request cb for memory and CPU hot-unplug Tang Chen
` (3 preceding siblings ...)
2014-11-17 5:03 ` [Qemu-devel] [PATCH Part1 4/5] acpi, ich9: Add unplug cb for ich9 Tang Chen
@ 2014-11-17 5:03 ` Tang Chen
4 siblings, 0 replies; 9+ messages in thread
From: Tang Chen @ 2014-11-17 5:03 UTC (permalink / raw)
To: qemu-devel, imammedo, mst, pbonzini
Cc: guz.fnst, hutao, isimatu.yasuaki, zhugh.fnst, tangchen
Memory and CPU 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 hotunplug cb for piix4, and memory and CPU
hot unplug will base on it.
Signed-off-by: Tang Chen <tangchen@cn.fujitsu.com>
---
hw/acpi/piix4.c | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/hw/acpi/piix4.c b/hw/acpi/piix4.c
index 78c0a6d..353f91a 100644
--- a/hw/acpi/piix4.c
+++ b/hw/acpi/piix4.c
@@ -369,6 +369,13 @@ static void piix4_device_unplug_request_cb(HotplugHandler *hotplug_dev,
}
}
+static void piix4_device_unplug_cb(HotplugHandler *hotplug_dev,
+ DeviceState *dev, Error **errp)
+{
+ error_setg(errp, "acpi: device unplug for not supported device"
+ " type: %s", object_get_typename(OBJECT(dev)));
+}
+
static void piix4_update_bus_hotplug(PCIBus *pci_bus, void *opaque)
{
PIIX4PMState *s = opaque;
@@ -606,6 +613,7 @@ static void piix4_pm_class_init(ObjectClass *klass, void *data)
dc->hotpluggable = false;
hc->plug = piix4_device_plug_cb;
hc->unplug_request = piix4_device_unplug_request_cb;
+ hc->unplug = piix4_device_unplug_cb;
adevc->ospm_status = piix4_ospm_status;
}
--
1.8.4.2
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [Qemu-devel] [PATCH Part1 1/5] acpi, pc: Add hotunplug request cb for pc machine.
2014-11-17 5:03 ` [Qemu-devel] [PATCH Part1 1/5] acpi, pc: Add hotunplug request cb for pc machine Tang Chen
@ 2014-11-18 12:44 ` Igor Mammedov
2014-12-10 7:02 ` Tang Chen
0 siblings, 1 reply; 9+ messages in thread
From: Igor Mammedov @ 2014-11-18 12:44 UTC (permalink / raw)
To: Tang Chen
Cc: zhugh.fnst, mst, hutao, qemu-devel, isimatu.yasuaki, guz.fnst,
pbonzini
On Mon, 17 Nov 2014 13:03:13 +0800
Tang Chen <tangchen@cn.fujitsu.com> wrote:
in subj s/cb/callback|handler/
> Memory and CPU hot unplug are both asynchronize procedures.
s/asynchronize/asynchronous/
> They both need unplug request cb when the unplug operation happens.
s/cb when the unplug operation happens/callback to initiate unplug operation/
>
> This patch adds hotunplug request cb for pc machine, and memory and CPU
> hot unplug will base on it.
Add unplug handler to pc machine that will be used by following
CPU and memory unplug patches.
>
> Signed-off-by: Tang Chen <tangchen@cn.fujitsu.com>
> ---
> hw/i386/pc.c | 8 ++++++++
> 1 file changed, 8 insertions(+)
>
> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> index 1205db8..5c48435 100644
> --- a/hw/i386/pc.c
> +++ b/hw/i386/pc.c
> @@ -1647,6 +1647,13 @@ static void pc_machine_device_plug_cb(HotplugHandler *hotplug_dev,
> }
> }
>
> +static void pc_machine_device_unplug_request_cb(HotplugHandler *hotplug_dev,
> + DeviceState *dev, Error **errp)
> +{
> + error_setg(errp, "acpi: device unplug request for not supported device"
> + " type: %s", object_get_typename(OBJECT(dev)));
it's not necessarily acpi related in general so maybe drop 'acpi:' prefix.
Also it would be nice to add device's ID or use it instead of type name.
> +}
> +
> static HotplugHandler *pc_get_hotpug_handler(MachineState *machine,
> DeviceState *dev)
> {
> @@ -1753,6 +1760,7 @@ static void pc_machine_class_init(ObjectClass *oc, void *data)
> pcmc->get_hotplug_handler = mc->get_hotplug_handler;
> mc->get_hotplug_handler = pc_get_hotpug_handler;
> hc->plug = pc_machine_device_plug_cb;
> + hc->unplug_request = pc_machine_device_unplug_request_cb;
> }
>
> static const TypeInfo pc_machine_info = {
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Qemu-devel] [PATCH Part1 1/5] acpi, pc: Add hotunplug request cb for pc machine.
2014-11-18 12:44 ` Igor Mammedov
@ 2014-12-10 7:02 ` Tang Chen
2014-12-10 10:36 ` Igor Mammedov
0 siblings, 1 reply; 9+ messages in thread
From: Tang Chen @ 2014-12-10 7:02 UTC (permalink / raw)
To: Igor Mammedov
Cc: zhugh.fnst, mst, hutao, qemu-devel, isimatu.yasuaki, guz.fnst,
pbonzini
Hi Igor,
On 11/18/2014 08:44 PM, Igor Mammedov wrote:
> On Mon, 17 Nov 2014 13:03:13 +0800
> Tang Chen <tangchen@cn.fujitsu.com> wrote:
>
> in subj s/cb/callback|handler/
>
>> Memory and CPU hot unplug are both asynchronize procedures.
> s/asynchronize/asynchronous/
>> They both need unplug request cb when the unplug operation happens.
> s/cb when the unplug operation happens/callback to initiate unplug operation/
>
>> This patch adds hotunplug request cb for pc machine, and memory and CPU
>> hot unplug will base on it.
> Add unplug handler to pc machine that will be used by following
> CPU and memory unplug patches.
>
>
>> Signed-off-by: Tang Chen <tangchen@cn.fujitsu.com>
>> ---
>> hw/i386/pc.c | 8 ++++++++
>> 1 file changed, 8 insertions(+)
>>
>> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
>> index 1205db8..5c48435 100644
>> --- a/hw/i386/pc.c
>> +++ b/hw/i386/pc.c
>> @@ -1647,6 +1647,13 @@ static void pc_machine_device_plug_cb(HotplugHandler *hotplug_dev,
>> }
>> }
>>
>> +static void pc_machine_device_unplug_request_cb(HotplugHandler *hotplug_dev,
>> + DeviceState *dev, Error **errp)
>> +{
>> + error_setg(errp, "acpi: device unplug request for not supported device"
>> + " type: %s", object_get_typename(OBJECT(dev)));
> it's not necessarily acpi related in general so maybe drop 'acpi:' prefix.
> Also it would be nice to add device's ID or use it instead of type name.
Since QEmu 2.2 has been released, I'm now rebasing this patch-set.
Here, you suggested to use device id instead device type name.
But all existing plug handles are using device type name.
Should I send patches to change them all ?
Thanks.
>
>> +}
>> +
>> static HotplugHandler *pc_get_hotpug_handler(MachineState *machine,
>> DeviceState *dev)
>> {
>> @@ -1753,6 +1760,7 @@ static void pc_machine_class_init(ObjectClass *oc, void *data)
>> pcmc->get_hotplug_handler = mc->get_hotplug_handler;
>> mc->get_hotplug_handler = pc_get_hotpug_handler;
>> hc->plug = pc_machine_device_plug_cb;
>> + hc->unplug_request = pc_machine_device_unplug_request_cb;
>> }
>>
>> static const TypeInfo pc_machine_info = {
> .
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [Qemu-devel] [PATCH Part1 1/5] acpi, pc: Add hotunplug request cb for pc machine.
2014-12-10 7:02 ` Tang Chen
@ 2014-12-10 10:36 ` Igor Mammedov
0 siblings, 0 replies; 9+ messages in thread
From: Igor Mammedov @ 2014-12-10 10:36 UTC (permalink / raw)
To: Tang Chen
Cc: zhugh.fnst, mst, hutao, qemu-devel, isimatu.yasuaki, guz.fnst,
pbonzini
On Wed, 10 Dec 2014 15:02:44 +0800
Tang Chen <tangchen@cn.fujitsu.com> wrote:
> Hi Igor,
>
> On 11/18/2014 08:44 PM, Igor Mammedov wrote:
> > On Mon, 17 Nov 2014 13:03:13 +0800
> > Tang Chen <tangchen@cn.fujitsu.com> wrote:
> >
> > in subj s/cb/callback|handler/
> >
> >> Memory and CPU hot unplug are both asynchronize procedures.
> > s/asynchronize/asynchronous/
> >> They both need unplug request cb when the unplug operation happens.
> > s/cb when the unplug operation happens/callback to initiate unplug operation/
> >
> >> This patch adds hotunplug request cb for pc machine, and memory and CPU
> >> hot unplug will base on it.
> > Add unplug handler to pc machine that will be used by following
> > CPU and memory unplug patches.
> >
> >
> >> Signed-off-by: Tang Chen <tangchen@cn.fujitsu.com>
> >> ---
> >> hw/i386/pc.c | 8 ++++++++
> >> 1 file changed, 8 insertions(+)
> >>
> >> diff --git a/hw/i386/pc.c b/hw/i386/pc.c
> >> index 1205db8..5c48435 100644
> >> --- a/hw/i386/pc.c
> >> +++ b/hw/i386/pc.c
> >> @@ -1647,6 +1647,13 @@ static void pc_machine_device_plug_cb(HotplugHandler *hotplug_dev,
> >> }
> >> }
> >>
> >> +static void pc_machine_device_unplug_request_cb(HotplugHandler *hotplug_dev,
> >> + DeviceState *dev, Error **errp)
> >> +{
> >> + error_setg(errp, "acpi: device unplug request for not supported device"
> >> + " type: %s", object_get_typename(OBJECT(dev)));
> > it's not necessarily acpi related in general so maybe drop 'acpi:' prefix.
> > Also it would be nice to add device's ID or use it instead of type name.
>
> Since QEmu 2.2 has been released, I'm now rebasing this patch-set.
>
> Here, you suggested to use device id instead device type name.
> But all existing plug handles are using device type name.
>
> Should I send patches to change them all ?
May be better would be to just leave it as is for now (i.e. out of this series).
>
> Thanks.
>
> >
> >> +}
> >> +
> >> static HotplugHandler *pc_get_hotpug_handler(MachineState *machine,
> >> DeviceState *dev)
> >> {
> >> @@ -1753,6 +1760,7 @@ static void pc_machine_class_init(ObjectClass *oc, void *data)
> >> pcmc->get_hotplug_handler = mc->get_hotplug_handler;
> >> mc->get_hotplug_handler = pc_get_hotpug_handler;
> >> hc->plug = pc_machine_device_plug_cb;
> >> + hc->unplug_request = pc_machine_device_unplug_request_cb;
> >> }
> >>
> >> static const TypeInfo pc_machine_info = {
> > .
> >
>
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2014-12-10 10:37 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-11-17 5:03 [Qemu-devel] [PATCH Part1 0/5] Common unplug and unplug request cb for memory and CPU hot-unplug Tang Chen
2014-11-17 5:03 ` [Qemu-devel] [PATCH Part1 1/5] acpi, pc: Add hotunplug request cb for pc machine Tang Chen
2014-11-18 12:44 ` Igor Mammedov
2014-12-10 7:02 ` Tang Chen
2014-12-10 10:36 ` Igor Mammedov
2014-11-17 5:03 ` [Qemu-devel] [PATCH Part1 2/5] acpi, ich9: Add hotunplug request cb for ich9 Tang Chen
2014-11-17 5:03 ` [Qemu-devel] [PATCH Part1 3/5] acpi, pc: Add unplug cb for pc machine Tang Chen
2014-11-17 5:03 ` [Qemu-devel] [PATCH Part1 4/5] acpi, ich9: Add unplug cb for ich9 Tang Chen
2014-11-17 5:03 ` [Qemu-devel] [PATCH Part1 5/5] acpi, piix4: Add unplug cb for piix4 Tang Chen
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).