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

Latest RHEV Windows Paravirtual Block Drivers

In this post, I provide the latest build of the Windows Paravirtual Block Drivers pulled from the git repository. The most recent change to the source code was made on November 25th 2009 so it’s a little over a month old. I’ll walk you through upgrading your current installation of kvm windows paravirtual block drivers if you already have them installed. If you’re installing these drivers for the first time, you can find the procedure for doing so at another post here. Upgrading is simple and straightforward. Upgrading these drivers is like upgrading any other driver in windows but I decided to outline the procedure below for the benefit of those who have never done it before.

 

Changelog

Below shows the changelog based on git logs. Just changes relevant to viostor driver are shown.

[VirtIO] Add op to the library enable\disable the interrupts
      Correct clean up during surprise removal. The bug was found during WHQL tests of Windows 2008 R2
      [WIN-GUEST-DRIVERS] Initial support for MSI interrupts and DPC\Interrupt behaviour
      [WIN-GUEST-DRIVERS] viostor driver. Code cleanup. Getting rid of the Registry stuff.
      On SMP guests, reads from the ring might bypass used index reads. This causes guest crashes because host writes to used index to signa
      [WIN-GUEST-DRIVERS] viostor driver. Switch to full-duplex mode.
      [WIN-GUEST-DRIVERS] viostor driver. Complete SRBs at DPC level. Fixing previous commit.
      [WIN-GUEST-DRIVERS] viostor driver. Add support for serial number feature.
      [WIN-GUEST-DRIVERS] Add MSI-X support for viostor driver
      [WIN-GUEST-DRIVERS] Fix clean.bat for viostor to delete *.err files that might be created due to failed compilation.
      [WIN-GUEST-DRIVERS] viostor. Fix broken XP build
      [WIN-GUEST-DRIVERS] Clean up prefast (MS static code analyzer tool) errors.
      [WIN-GUEST-DRIVERS] viostor driver. remove trailing white spaces
      [WIN-GUEST-DRIVERS] viostor driver.Add memory read barrier - synch with fix for Linux guests by Michael S. Tsirkin<mst@redhat.com>
      [WIN-GUEST-DRIVERS] Fix the driver version report through OID. Will fix the warning during MS tests.
      [WIN-GUEST_DRIVERS]     viostor driver. some steps toward better performance on XP.
      [WIN-GUEST_DRIVERS] viostor driver. fix PREfast warnings.
      [WIN-GUEST_DRIVERS] viostor driver. Xp driver performance.
      [WIN-GUEST_DRIVERS]     viostor driver. small fix in startio routine (storport related path).

 

Upgrading KVM Windows block drivers

Navigate to your hardware drivers by right clicking on your “My Computer” icon and select Properties. Select “Hardware” then “Device Manager”. Navigate to “SCSI and RAID controllers” and select any one of the “Red Hat VirtIO SCSI controller” devices. Right click on the controller and select “Upgrade Driver...”

 

The hardware wizard update will appear. Select “No, not at this time” to specify the location of the drivers.

Select “Install from a list or specific location”

Navigate to the CDROM iso provided at the end of this post. This driver included are for Windows 2003 and 2008 for both 32 and 64 bit architectures. The example below shows how to select drivers for 32-bit windows 2003.

Select Next to begin Installation.

The installation/upgrade process will begin.

After the installation you’ll see the following windows notifying you that it was successfully completed. Note that it says “The hardware you installed will not work until you restart your computer”. This will only apply if you upgraded the driver for your system disk. If you upgraded a non system disk you will not be prompted to reboot your computer.

To confirm that your driver has been updated you can look at the properties of your block drivers before and after upgrade. You’ll see that the driver version and date has been upaded as shown below.

Below shows my driver date and version before update

Below shows my driver date and version after update.

I haven’t gotten these drivers to work with 32-bit windows xp guest and to be honest haven’t really tried since I mostly use a windows 2003 guest. Give these drivers a try and feel free to post any comments or questions.

AttachmentSize
viostor-2009-11-25.iso1.45 MB

See Also

Comments

windows xp

the driver definitely not working with windows xp. I've had to copy back the old driver files.

Win 2008

I've updated the attached drivers for Windows 2008 64bit (after self-signing), but they still show the same version as before: 1.0.0.3183 from 18.06.2009, even though the file size is different. Any idea why?

Changelog?

Any changelog? Is it worth to update?

Re: changelog

Good point. Should have included that.. I've added it in the post..

Re: win2008

Cris,

No idea. I'll have to test this out myself to see if I see the same thing.

I can update this driver on

I can update this driver on XP/64bit, but CAN NOT update on windows7/32bit.

Windows7 always say i already installed the most update driver. do not let me install this driver.

Re: win2008 rhev block drivers update

Cris,

I followed this procedure on a windows 2008 64-bit guest and didn't see what you did. I don't know why you're seeing those driver versions. How did you install the drivers initially? Did you use a procedure like the one outlined at the following link?

http://www.linux-kvm.com/content/redhat-54-windows-virtio-drivers-part-2-block-drivers

Haydn, Thanks for following

Haydn,
Thanks for following up.
Initially the drivers were installed as per the link, but they were digitally self-signed first, as is needed for Windows 2008. What version and what date it shows for you?

Re: following up

Cris,

The version shown on my 2008 is exactly the same for 2003 in this post ie. 4.3.0.17241 and 5.3.0.17241. Since the only difference in what we did was the self signing vs no signing I can only guess that maybe that's the reason.

New driver has problems with crash dump and hibernation

I have tried to install Windows Server 2003 R2 SP2 Standard 32-bit edition using this viostor driver (identified as 10.10.2009, 5.3.0.17241 in device manager). The host is CentOS 5.4 (kernel-2.6.18-164.10.1.el5, kmod-kvm-83-105.el5_4.13, kvm-83-105.el5_4.13).

(BTW, for installation directly on a virtio disk you need to add both CD and HDD into the boot device list - e.g., with libvirt you should have:

  <boot dev='cdrom'/>
  <boot dev='hd'/>

Otherwise the installation seems to start, but the reboot after the textmode setup fails.)

After booting there are some errors in the System event log:

  • Source=Ftdisk, ID=45: The system could not successfully load the crash dump driver.
  • Source=Ftdisk, ID=49: Configuring the page file for crash dump failed. Make sure there is a page
    file on the boot partition and that is large enough to contain all physical
    memory.

(not sure about the exact text - actually I use Russian version, but apparently event IDs are stable across languages).

Also, when I enable hibernation and then try to hibernate the system, the hibernation attempt fails with error 0xc0000263.

With the older driver version from linux-kvm.org (24Sep2009, identified as 05.05.2009, 4.3.0.17241 in device manager) there are no such errors in the event log, and hibernation works.

How Do you made signing 64bit drv?

How Do you made self-signing for 64bit Win2008R2?

Re: How Do you made signing 64bit drv?

I wrote a post about it some time ago, have a look at:
http://www.linux-kvm.com/content/redhat-54-windows-virtio-drivers-part-2...

It's the same procedure for Windows 2008 R2.

Best Regards
Kenni

Post new comment

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