xen-devel
[Xen-devel] RE: qemu-dm cpu utilization
Anthony,
>You want to set it to NULL after a qemu_del_timer only in the connection
>teardown code.
Setting "ts->timer=NULL" and blocking access to this pointer in qemu_mod_timer
seemed to resolve the issue. When I close the vnc window qemu-dm drops to 0%.
Opening and closing a connection to the guest with vncviewer doesn't seem to
change the way time is being managed in the virtual machine.
Is this the right fix for this problem?
Signed-off-by: Tommie McAfee <tommie.mcafee@xxxxxxxxxx>
diff -r 8273f730371b tools/ioemu/vl.c
--- a/tools/ioemu/vl.c Tue Aug 29 12:23:11 2006 +0100
+++ b/tools/ioemu/vl.c Wed Aug 30 13:03:01 2006 -0400
@@ -731,6 +731,8 @@ void qemu_mod_timer(QEMUTimer *ts, int64
{
QEMUTimer **pt, *t;
+ if(!ts)
+ return;
qemu_del_timer(ts);
/* add the timer in the sorted list */
diff -r 8273f730371b tools/ioemu/vnc.c
--- a/tools/ioemu/vnc.c Tue Aug 29 12:23:11 2006 +0100
+++ b/tools/ioemu/vnc.c Wed Aug 30 13:03:01 2006 -0400
@@ -626,6 +626,7 @@ static int vnc_client_io_error(VncState
buffer_reset(&vs->input);
buffer_reset(&vs->output);
vs->need_update = 0;
+ vs->timer=NULL;
return 0;
}
return ret;
--------------------------
-----Original Message-----
From: Anthony Liguori [mailto:aliguori@xxxxxxxxxxxxx]
Sent: Wed 8/30/2006 5:05 PM
To: McAfee, Tommie M
Cc: Anthony Liguori; xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: Re: qemu-dm cpu utilization
McAfee, Tommie M wrote:
> Anthony,
>
>
>> If you delete the timer (and set vs->timer = NULL) in
>> vnc_client_io_error(), does it reduce the usage?
>>
>
> setting vs->timer=NULL causes qemu-dm to segfault
You want to set it to NULL after a qemu_del_timer only in the connection
teardown code.
> According to strace, the timers account for a lot of qemu-dm's activity.
> Is this polling a bit excessive?
>
I don't fully understand the performance of qemu bits in qemu-dm.
Christian could probably offer a better insight especially since I think
he changed the normal timers a bit (at least the GUI timer).
When completely idle, qemu normally won't occupy that much CPU (often
less than a few percent). I'd expect it to be a little higher with qemu-dm.
Regards,
Anthony Liguori
> Tommie McAfee
> Xen-Testing
>
>
>
> -----Original Message-----
> From: Anthony Liguori [mailto:anthony@xxxxxxxxxxxxx]
> Sent: Tue 8/29/2006 7:43 PM
> To: McAfee, Tommie M
> Subject: Re: qemu-dm cpu utilization
>
> McAfee, Tommie M wrote:
>
>> Using an 8-way ES7000 with 32GB of ram, I'm running xen at changset 11217
>> with dom0_mem=3092M as a kernel parameter on a x86_64 hyperviser.
>>
>> It appears that qemu is adding too much overhead to
>> virtual machines to display graphics.
>> If I boot a sles9sp3 domVT in runlevel 5 with vga=0x314 for a graphicalboot,
>> and immediately use
>> vncviewer simply to watch the virtual machine as it boots,
>> qemu-dm consumes 40% cpu as soon as vncviewer is launched and remains that
>> way throughout this entire process without settling down when the login
>> screen appears.
>> Even If I close the console that's viewing the virtual host, qemu-dm
>> remains at 40-44%.
>>
>
> Almost everything in the VNC code resets when a guest disconnected
> except for the timer. If a client disconnects, the timer routine should
> be almost a nop but it's possible that it's somehow causing qemu-dm to
> do something funky.
>
> If you delete the timer (and set vs->timer = NULL) in
> vnc_client_io_error(), does it reduce the usage?
>
> BTW, if you're using 800x600, I suspect that you may be falling back to
> MMIO instead of a linear framebuffer. Try moving to 1024x768 and see if
> that helps.
>
> Regards,
>
> Anthony Liguori
>
>
>> When booting the same domVT in runlevel 5 without ever attempting to connect
>> to it with
>> vncviewer, qemu-dm fluctuated from 1-3% while the host was booting and then
>> settled to 0.2% after 4-5 mins. Assuming that the boot process was
>> complete, I launched vncviewer and qemu-dm jumped up to a 40-44% range again.
>>
>> Lastly I started the same host in runlevel 3 in pure text mode without any
>> vga parameters on the kernel line, connected to the virtual machine with
>> vncviewer, and watched the machine boot until a login prompt appeared. At
>> this point, top showed qemu-dm as using 0% of the cpu. Logging into the
>> virtual machine and running 'startx' however sent qemu-dm back up to a 40-
>> 44% range.
>>
>> Why is qemu-dm consuming so much of the cpu? Why is qemu-dm still high
>> even when I close my vncviewer?
>>
>> Tommie,
>> Xen Test Team
>> Unisys
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@xxxxxxxxxxxxxxxxxxx
>> http://lists.xensource.com/xen-devel
>>
>
>
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|