Qemu vs. Qemu+USB Tablet vs. VMPlayer using PCMark05


I have been running a WinXP 32-bit guest on a Debian x86 host computer for some time. I began by using Qemu+KQEMU in -kernel-kqemu mode. I switched to the free vmplayer because I noticed that it was faster than Qemu. When running Qemu, my host processor seemed to spend a majority of its time in kernel mode. This was as reported by top, which apprently is quite unreliable, but was a hint at a problem with my configuration. Apparently, using the very convenient usb tablet emulation wastes a lot of CPU cycles. So I determined to see how much of a difference there was between Qemu+KQEMU and Qemu+KQEMU with usb tablet emulation. While I was at this, I figured I would run a benchmark on the vmplayer.

Host System

CPU Pentium 4 2.66GHz

Qemu+KQEMU without USB Tablet Emulation CVS 20061216
qemu -hda windowsxp.qcow -m 512 -kernel-kqemu -net nic -net tap,ifname=tap3

Qemu+KQEMU with USB Tablet Emulation CVS 20061216
qemu -hda windowsxp.qcow -m 512 -kernel-kqemu -net nic -net tap,ifname=tap3 -usbdevice tablet

Qemu+KQEMU with USB Tablet Emulation Patch CVS 20061219
qemu -hda windowsxp.qcow -m 512 -kernel-kqemu -net nic -net tap,ifname=tap3 -usbdevice tablet

VMPlayer 1.0.2 build-29634
config.version = "8"
virtualHW.version = "3"
ide0:0.present = "TRUE"
ide0:0.filename = "winxp2.vmdk"
memsize = "512"
MemAllowAutoScaleDown = "FALSE"
ide1:0.present = "TRUE"
ide1:0.fileName = "auto detect"
ide1:0.deviceType = "cdrom-raw"
ide1:0.autodetect = "TRUE"
floppy0.present = "FALSE"
ethernet0.present = "TRUE"
usb.present = "FALSE"
sound.present = "FALSE"
sound.virtualDev = "es1371"
displayName = "Windows XP Pro"
guestOS = "winxppro"
nvram = "winxp2.nvram"
MemTrimRate = "-1"
ide0:0.redo = ""
ethernet0.addressType = "generated"
uuid.location = "56 4d 88 59 b6 23 e5 8c-3d 31 6d 36 ad 34 c7 99"
uuid.bios = "56 4d 88 59 b6 23 e5 8c-3d 31 6d 36 ad 34 c7 99"
ethernet0.generatedAddress = "00:0c:29:34:c7:99"
ethernet0.generatedAddressOffset = "0"
tools.syncTime = "TRUE"
ide1:0.startConnected = "TRUE"
uuid.action = "create"
checkpoint.vmState = ""
tools.remindInstall = "TRUE"

I used Futuremark’s PCMark05 for no particular reason, and it was particularly cranky with my display adapters and drivers. I have no expertise or experience benchmarking anything and I do not lay claim to be a benchmarking expert. I performed these tests to determine if there was a *noticeable* difference in two particular areas. HDD I/O and memory access speeds. I am assuming that since Qemu+KQEMU and VMPlayer are both virtualization products they should perform similarly well with CPU-intensive tasks. I am not interested in finding small performance differences, I’m looking for something significant.

The percentages below are relative to the Qemu+KQEMU without USB tablet emulation. You can see that with the USB tablet emulation, Qemu is slowed to almost half the speed it would be without USB tablet emulation.

Qemu Qemu USB Tablet Qemu USB Tablet Patch VMPlayer
HDD – XP Startup 5.78 MB/s 4.94 MB/s 5.78 MB/s 9.25 MB/s
Web Page Rendering 0.58 Pages/s 0.26 MB/s 0.48 Pages/s 1.37 Pages/s
File Decryption 41.8 MB/s 24.44 MB/s 40.23 MB/s 47.91 MB/s
HDD – General Usage 8.02 MB/s 5.08 MB/s 7.17 MB/s 7.39 MB/s
MT / Audio Compression 726.63 KB/s 375.43 KB/s 690.24 KB/s 1247.69 KB/s
MT / Video Encoding 90.98 KB/s 47.01 KB/s 86.63 KB/s 115.04 KB/s
MT / Text Edit 15.1 Pages/s 7.51 Pages/s 14.77 Pages/s 45.92 Pages/s
MT / Image Decompression 7.3 MPixels/s 4.86 MPixels/s 7.53 MPixels/s 5.49 MPixels/s
MT / File Compression 1.65 MB/s 0.94 MB/s 1.64 MB/s 1.93 MB/s
MT / File Encryption 11.18 MB/s 7.01 MB/s 9.89 MB/s 13.42 MB/s
MT / HDD – Virus Scan 17.14 MB/s 9.53 MB/s 17.61 MB/s 21.4 MB/s
MT / Memory Latency – Random 16MB 1.03 MAccesses/s 0.31 MAccesses/s 1.07 MAccesses/s 4.31 MAccesses/s
Qemu USB Tablet % VMPlayer %
HDD – XP Startup 85.47% 160.03%
Web Page Rendering 44.83% 236.21%
File Decryption 58.47% 114.62%
HDD – General Usage 63.34% 92.14%
MT / Audio Compression 51.67% 171.71%
MT / Video Encoding 51.67% 126.45%
MT / Text Edit 49.74% 304.11%
MT / Image Decompression 66.58% 75.21%
MT / File Compression 56.97% 116.97%
MT / File Encryption 62.70% 120.04%
MT / HDD – Virus Scan 55.60% 124.85%
MT / Memory Latency – Random 16MB 30.10% 418.45%
Average (Completely Meaningless) 56.43% 171.73%

What Does It Mean?
Well, Qemu’s USB tablet emulation sucks, unless of course you really need it, then it’s great 😉 It is very interesting that the CPU speed results of Qemu vs. VMPlayer are similar and that the disk I/O speeds are also similar. Why is that interesting? Because the memory access of VMPlayer is about 4 times faster than Qemu. Almost all of the differences in performance between Qemu and VMPlayer in these results could be attributed to the memory performance differences. I consider this good news because disk I/O seems slightly faster in Qemu than VMPlayer. Once the memory access speed issue is worked out in Qemu, Qemu is likely to be faster than VMPlayer. I’m assuming that this is an issue for KQEMU or Qvm86 and that the Qemu developers can do little about it. Fabrice, what can be the culprit?

Leave a Reply

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>