|
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] Qemu-xen: HVM S3 bugfix
Anthony PERARD wrote:
> On 13/08/13 15:15, Liu, Jinsong wrote:
>> From fc928436df17673bfea1d902859c682c99c1489d Mon Sep 17 00:00:00
>> 2001 From: Liu Jinsong <jinsong.liu@xxxxxxxxx>
>> Date: Wed, 14 Aug 2013 05:26:56 +0800
>> Subject: [PATCH] Qemu-xen: HVM S3 bugfix
>>
>> This patch is used to fix HVM S3 bug caused from the difference
>> between qemu-traditioanl and standard qemu (which qemu-xen stems
>> from).
>> For qemu-traditional, hvm s3 resumes via 'xl trigger' command
>> interface. For standard qemu, hvm s3 resumes via keyboard triggering.
>>
>> So currently for qemu-xen, both 'xl' interface and keyboard
>> triggering
>> hvm s3 cannot work. 'xl' interface didn't reset ioemu devices, while
>> keyboard triggering didn't unpause hvm domain.
>>
>> This patch fixes the bug. It keeps compatible w/ current xen 'xl'
>> interface, by moving qemu system reset logic forward to qemu suspend.
>>
>> Signed-off-by: Liu Jinsong <jinsong.liu@xxxxxxxxx>
>> ---
>> vl.c | 25 ++++++++++++++++---------
>> 1 files changed, 16 insertions(+), 9 deletions(-)
>>
>> diff --git a/vl.c b/vl.c
>> index 5314f55..deea92c 100644
>> --- a/vl.c
>> +++ b/vl.c
>> @@ -1619,10 +1619,15 @@ void qemu_system_reset_request(void)
>>
>> static void qemu_system_suspend(void)
>> {
>> - pause_all_vcpus();
>> - notifier_list_notify(&suspend_notifiers, NULL);
>> - runstate_set(RUN_STATE_SUSPENDED);
>> - monitor_protocol_event(QEVENT_SUSPEND, NULL);
>> + if (!xen_enabled()) {
>> + pause_all_vcpus();
>> + notifier_list_notify(&suspend_notifiers, NULL);
>> + runstate_set(RUN_STATE_SUSPENDED);
>> + monitor_protocol_event(QEVENT_SUSPEND, NULL); + } else {
>> + notifier_list_notify(&suspend_notifiers, NULL);
>> + qemu_system_reset(VMRESET_SILENT);
>> + }
>> }
>>
>> void qemu_system_suspend_request(void)
>> @@ -1740,11 +1745,13 @@ static bool main_loop_should_exit(void)
>> } }
>> if (qemu_wakeup_requested()) {
>> - pause_all_vcpus();
>> - cpu_synchronize_all_states();
>> - qemu_system_reset(VMRESET_SILENT);
>> - resume_all_vcpus();
>> - monitor_protocol_event(QEVENT_WAKEUP, NULL);
>> + if (!xen_enabled()) {
>> + pause_all_vcpus();
>> + cpu_synchronize_all_states();
>> + qemu_system_reset(VMRESET_SILENT);
>> + resume_all_vcpus();
>> + monitor_protocol_event(QEVENT_WAKEUP, NULL); + }
>> }
>> if (qemu_powerdown_requested()) {
>> qemu_system_powerdown();
>
> Hi,
>
> I don't think changing vl.c is a good idee for this.
>
> Could you try to use a QMP command instead ? Look for the QMP command
> "system_wakeup", it's probably what's needed to be called on qemu-xen.
>
Good idea! thanks!
2 patches will send out later.
Regards,
Jinsong
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
http://lists.xen.org/xen-devel
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |