Friday, November 13, 2009

Building multi-threaded XaoS in Windows

XaoS is a fractal viewer program which is designed for smooth continuous zooming. It's a great way to explore fractals such as the Mandelbrot Set. Nowadays, multi-core CPUs are the norm, but the Windows binary of XaoS does not support multi-thread operation.

XaoS is easy to build in Cygwin. The only problem is that XaoS is set up to build for MinGW (using -mno-cygwin) and Cygwin doesn't provide Pthreads support for MinGW applications. The solution is to use Pthreads-w32. Using this and running with the "-threads 4" option I'm able to use up to 100% CPU on my Q6600, and XaoS is much faster.

Thursday, November 12, 2009

Intel Matrix Storage Manager driver causes 0x9088 bluescreen

I just saw my first Windows 7 problem. My computer locked up with the hard drive LED lit after resuming from sleep. Then I reset my computer, it started resuming from disk, and I got a blue screen.

I had never seen the 0x9088 (sometimes written as 0x00009088 or 9088) code, and very little information was available online. Fortunately, WinDbg was able to help. The crash was in iaStor.sys, the driver for the ICH9R SATA controller on my GA-P35-DS3R motherboard. Release notes for version 8.6.0.1007 mentioned fixes for that error. I guess those fixes weren't sufficient, because I was using Matrix Storage Manager 8.9.0.1023.

After a bit of searching, I saw that there was a new Intel Rapid Storage Technology 9.5.0.1037 driver. It wasn't available from Intel, but it was digitally signed and available from many places online. I still don't know if it fixes the problem, and it will be hard to tell because this problem must be rare.