What do you do when you want to run Windows XP on a Solid State Drive?

1.  #1  THE BIG UNO!  Properly align your partition with diskpar/diskpart and THEN install your XP build into that aligned partition.

This link has a great explanation and how-to so I’m not going to re-invent the wheel. 

I’m not certain I agree with the rest of the proposals there necessarily, I’m thinking more in line for Enterprise level customers rather than gamers here.  Though the RAMDRIVE idea is interesting Smile.

Also!  Very important, use AHCI or SATA RAID or IRRT rather than IDE Compatibility mode in BIOS.  This is huge.

2.  In Windows, disable the following, some to improve the functional life of the drive in terms of wear fatigue and some for performance:

Windows XP Prefetcher

Any Windows Defragmentation

System Restore

8.3 Filenames (unless you have a legacy app that requires them)

File “Last Accessed” time

Set the system to use “Large System Cache”

3.  Unlike many posts on the internet, leave Windows Indexing Service alone, quoting some smart folks:

”It doesn’t turn off and shouldn’t be turned off specifically on SSD’s.   If the user doesn’t want the feature (it can be great and several features like explorer’s search and OL search utilize the index), then they can disable it.  It shouldn’t be in this recommendation this way.”

4.  XP does NOT support TRIM.  So run the Garbage Collector provided by the OEM of your drive on a periodic basis (if recommended by the vendor, most likey YES)

5.  Keep your Intel/AMD SATA controller driver up to date.  Keep BIOS up to date.  Keep firmware on the SSD up to date.

6.  Use this to verify you are track aligned if you wish to verify your process works:  http://www.techpowerup.com/articles/other/157

Hope this helps in your SSD efforts.  Bottom line though, strongly consider deploying Windows 7 on SSD based systems.  There are performance gains in 7 and it natively detects non-rotating media for disabling the defragmentation task from working, and disabled Prefetch for you…

High Privileged Mode CPU on 1 of 64 cores–quick fix

I was contacted recently about a server with 64 cores that, with no work load, had one core, ordinal 34, running very high on CPU.  Looking closer, it was all being used by process ‘System (4)’.

So that’s a fun one.  I had them collect an xperf trace using the following command:

xperf –on base+cswitch+disk_io_init+latency+dispatcher –stackwalk threadcreate+readythread+cswitch+profile –f kernel.etl –buffersize 1024 –maxbuffers 1024 –maxfile 1024 –filemode circular

and then stopped the xperf trace after collecting the high CPU at idle for a few minutes.

I then opened the kernel.etl file in xperfview.exe and got to work.

I was looking for what System was doing on core 34, so I had some hints to get started.

I went and verified in CPU Sampling by CPU that CPU was in fact hittin 100% on core 34:

clip_image001

I then drilled down in “CPU Sampling by Thread” to see which thread it was:

 

clip_image001[6]

Turns out it was thread 372.

This thread was busy in WmiApSrv.exe and wmiprov.dll, but also a lot of work being done in ntoskrnl and storport:

clip_image001[10]

I looked at their version of storport.sys, it was stock for 2008 R2 (not SP1).  So I suggested they apply http://support.microsoft.com/kb/981208 to address storport known issues.

When that was applied, the problem went away and they were back in business.