KVM - The Linux Kernel-Based Virtual Machine
News, Blogs and Resources on the Linux (KVM) Kernel-Based Virtual Machine

Windows Binary Virtio Drivers Finally Released

The broken download links for the recently released open source Windows virtio drivers are now fixed on the official kvm wiki page. The announcement just went out a short time ago and comes from the official KVM development team. Thanks to Martin Maurer for spotting this first. If you’ve been following this release you know that the wiki link has been broken for the last couple of weeks. Give the drivers a test and post your comments.

Click on screenshot below to go to download page

 

See Also

Comments

Not looking good on Windows XP 32bit...

I did some benchmarking and it doesn't look good on Windows XP 32bit..

I created two raw images of 5GB and attached them to a WinXP SP3 virtual machine with:
"-drive file=virtio.img,if=virtio -drive file=ide.img,if=ide"

I installed the VirtIO drivers, rebooted, formatted the new virtual HDDs with NTFS and downloaded IOMeter. Three different test were run; database workload, maximum read throughput and maximum write throughput. All results are the average of two individual runs of the test. Each test ran for 3 minutes.

Typical database workload ("default" in Iometer: 2kb, 67% read, 33% write, 100% random, 0% sequential)

Total I/Os per sec:
IDE: 86,67
VirtIO: 66,84

Total MBs per second:
IDE: 0,17MB/sec
VirtIO: 0,13MB/sec

Average I/O response time:
IDE: 11,59ms
VirtIO: 14,96ms

Maximum I/O response time:
IDE: 177,06ms
VirtIO: 244,52ms

% CPU Utilization:
IDE: 3,15%
VirtIO: 2,55%

Maximum reading throughput (64kb, 100% read, 0% write, 0% random, 100% sequential)

Total I/Os per sec:
IDE: 3266,17
VirtIO: 2694,34

Total MBs per second:
IDE: 204,14MB/sec
VirtIO: 168,40MB/sec

Average I/O response time:
IDE: 0,3053ms
VirtIO: 0,3710ms

Maximum I/O response time:
IDE: 210,60ms
VirtIO: 180,65ms

% CPU Utilization:
IDE: 70,4%
VirtIO: 55,66%

Maximum writing throughput (64kb, 0% read, 100% write, 0% random, 100% sequential)

Total I/Os per sec:
IDE: 258,92
VirtIO: 123,69

Total MBs per second:
IDE: 16,18MB/sec
VirtIO: 7,74MB/sec

Average I/O response time:
IDE: 3,89ms
VirtIO: 8,17ms

Maximum I/O response time:
IDE: 241,99ms
VirtIO: 838,19ms

% CPU Utilization:
IDE: 8,21%
VirtIO: 4,88%

I certainly hope the performance is not as bad on Windows 2003/2008/Vista/7. It makes no sense using VirtIO on XP at the moment.

This was tested on a Arch Linux host with kernel 2.6.30.6 and kvm-88. One CPU and 2GB of RAM was assigned to the virtual machine.

Fell free to use the same settings as I did, for benchmarking of other Windows versions. The settings were taken from the Iometer documentation.

Expected behavior

According to the developer, the bad performance is expected behavior, but newer versions of Windows is not affected:
http://article.gmane.org/gmane.comp.emulators.kvm.devel/40762

Conclusion atm: If you're on XP, stick with IDE.

Is it good for winxp x64?

Is it good for winxp x64?

RE: Is it good for winxp x64?

There is no 64bit driver for XP in the binary driver package, only XP 32bit. If you can get some of the other 64bit drivers to work with your XP 64 bit, then you should not have this performance issue.

EDIT: It could seem like the Windows 2003 64 bit driver is the one to use for XP 64...at least according to this post:
http://www.linux-kvm.com/content/redhat-54-windows-virtio-drivers-part-2...

Yes, this one (windows 2003

Yes, this one (windows 2003 x64) work on my windows XP x64.

NetKVM Drivers

Hi All:

Ok, improvement using the new NetKvM drivers.
Here is my KVM calling syntax:
export SDL_VIDEO_X11_DGAMOUSE=0
kvm -boot c -hda /home/jserink/winxp1.img -m 2000 -net nic,vlan=0,model=virtio -net user -localtime -no-quit &
/home/jserink/qgt-2005-03-02-19/host-linux 127.0.0.1 > /dev/null 2>&1 &

Here are my test scripts in Windows XP32:
C:\>cat testcopy.bat

copy c:\50meg e:\50meg

C:\>cat testcopyr.bat

copy e:\50meg c:\50meg

Using timeit:
C:\>copy c:\50meg e:\50meg

1 file(s) copied.

Version Number: Windows NT 5.1 (Build 2600)

Exit Time: 1:49 pm, Tuesday, October 6 2009

Elapsed Time: 0:00:36.281

Process Time: 0:00:00.453

System Calls: 102215

Context Switches: 20518

Page Faults: 22045

Bytes Read: 50216520

Bytes Written: 50154136

Bytes Other: 255922

So, I'm copying from my virtual machine to a local samba share, speed ignoring protocol overhead is ~11Mbps. Not great but better than the 9Mbps before.

Copying the other way:
C:\>copy e:\50meg c:\50meg

1 file(s) copied.

Version Number: Windows NT 5.1 (Build 2600)

Exit Time: 1:53 pm, Tuesday, October 6 2009

Elapsed Time: 0:00:11.140

Process Time: 0:00:00.125

System Calls: 41101

Context Switches: 7022

Page Faults: 16721

Bytes Read: 50056200

Bytes Written: 54429500

Bytes Other: 158776

That is, copying from the samba share to the local virtual disk, speed is ~36Mbps.

It is curious that copying FROM the samba share to the local drive is faster that the other way around. Never the less, its better than before.

Cheers,
john

How does one install the block driver on Win2008 64 bit?

I followed the instructions in http://www.linux-kvm.com/content/redhat-54-windows-virtio-drivers-part-2... but that left me with a system that only boots into repair mode and not into the desktop anymore.
I switched on the test-signing before installing the driver and after the installation windows complained that the drivers signature couldn't be verified.
What additional steps are necessary to get these drivers working in 2008R2/64?

Re: How does one install the block driver on Win2008 64 bit?

The drivers needs to be signed on most 64 bit Windows systems (Windows Server 2008, Windows Vista and Windows 7 as far as I have tested), it won't work if you only turn on testsigning.

You can use the following steps to sign the drivers with a testcertificate before installing them:
http://www.linux-kvm.com/content/redhat-54-windows-virtio-drivers-part-2...

Post new comment

The content of this field is kept private and will not be shown publicly.