Poor NVIDIA S3 resume performance (updated)
Published on 2007/02/06 by Igor Levicki
I have recently bought EVGA e-GeForce 8800GTX 768MB video card and did a fresh reinstall of Windows XP SP2 with all the relevant hotfixes and updates. I have installed latest Forceware 97.92 WHQL drivers and so far I didn't have any troubles with them given that I don't play latest games that much.
However, I like my system to be as sharp as possible when it comes to booting and resuming from standby so I perform quite some clean-up and tune-up after all installations and settings are in place. For the final tuning I use Bootvis tool which is unfortunately discontinued by Microsoft, but you can obtain the latest version on various download sites such as MAJOR GEEKS or SOFTPEDIA.
Having experienced resume times shorter than typical 5 seconds recommended in the Microsoft document above, you could only imagine my surprise when I ran Standby/Resume trace on my computer. Results are pictured below:
If you take a carefull look at those screenshots you will see that the NVIDIA is the one to blame for poor S3 resume performance -- 10 seconds are wasted in nv4_mini.sys (main NVIDIA display driver file).
I have repeated the above measurement three times to be sure, and it always takes exactly 10 seconds. Moreover, it doesn't happen while booting, just while resuming the system from S3 suspend mode. Programmers among you may notice that during the time spent in NVIDIA driver, both CPU cores are pegged at 100% usage.
Most likely this is some kind of thread synchronization issue with a fixed timeout of 10 seconds, and NVIDIA is getting away with it under Windows XP. However, that issue may as well be the reason why latest Forceware 100.59 cannot recover from S3 resume state at all under Windows Vista.
UPDATE (2007/02/07):
It seems that this S3 resume issue is not related to the number of CPU cores. I have performed additional testing with one CPU core disabled in BIOS and still nv4_mini.sys takes 10 seconds to complete with 100% CPU usage. See it for yourself:
Will it be fixed so that our PCs can resume in less than 5 seconds as Microsoft intended? Don't ask me -- ask NVIDIA.
UPDATE (2007/03/11):
It seems that this issue is fixed in Forceware 100.87 for Windows XP. Too bad they are still not official, WHQL'd, and posted on NVIDIA site. Here take a look at how the trace should look like when the drivers are working correctly:
NOW that's some resume time! Respect to driver developers and let us hope that thiss fix doesn't disappear in the official release when it comes out.