harbar.net component based software & platform hygiene

Does Windows 7 break Firewire?

Print | posted on Sunday, November 22, 2009 5:18 PM

It sure does on both my MacBook Pros and Sony VAIO.

For a long time now I’ve been running a mobile rig on the MBP with VMWare. This rig allows me to demonstrate a five machine SharePoint setup at acceptable speeds with PowerPoint on the host. It’s worked really really well over the past couple years with only one problem child due to insufficient warm up time (the presenter before us overran). I was doing this using an external firewire disk for the VHDs. It wasn’t super fast, but it was workable and efficient.

However since upgrading to Windows 7 this has been a disaster. The VMs stall for a couple minutes each time you do something new on the machines (like opening the event viewer or whatever). Then they’d come back to life. The same thing happens with just a single VM. Under VMWare Fusion on MacOS this stuff is not a problem at all.

Initially I thought this might be something to do with VMWare so I waited for the v7 upgrade there, but alas the same experience. Booting to Windows 2008 and using the exact same VM on the exact same disk, the problems do not occur. Boot to Windows 2008 R2 and I get the terrible performance again. If I use the exact same disk with the exact same VM over USB, the problem does not occur at all.

A couple searches later and it appears that Windows 7 (and of course R2) introduce a new Firewire driver. So I set the driver to the Legacy one, and things improve a little bit, but USB is still faster for file copy and running VMs! Over on R2 using Hyper-V another VM is totally unusable due to these pauses regardless and over USB it’s fine.

I also tried the new Bootcamp v3 drivers, but that makes no difference here really at all as it doesn’t actually touch the firewire drivers at all. I also tried all these tests on two MBPs to make sure it wasn’t a hardware fault in one of them.

Here are some stats, all using the same disk and the same VHD file (and no fiddling with write-caching):

Boot VM Firewire Legacy Driver 2m31s
Boot VM USB 1m21s
File TeraCopy (7Gb) Firewire 853kb/s!!!!!!!
File TeraCopy (7Gb) Legacy Firewire Driver 6Mb/s
File TeraCopy (7Gb) USB 15Mb/s

 

Now that just isn't right. Next up I tried another machine (a Sony VAIO SZ4) with Windows 7 and i get the same behaviour with file copy except i don’t need to go back to the legacy driver. And this box uses the same Texas Instruments firewire as the MacBook! So I blat that box and put Windows Vista on it and do the VMWare test – guess what? – no such VM stalling issues at all. Grrrr.

So I’m really not at all sure what is going on here, but it seems a combination of Windows 7 (and therefore R2 of course) and firewire is a disaster zone. So I’ll be sticking to USB for now. If anyone knows what the hell is going on, or why Microsoft so kindly decided to shaft the firewire stack in Windows 7 please drop me a note!