Confirming this, I have noticed this as well after waking from suspend. Every so often, graphics will be noticeably slower after resume from suspend, and everything suffers, from scrolling in browser, to 3D stuff.
For me, the issue started with Ubuntu Lucid kernel 2.6.32-26. Earlier kernels did not have the problem. Also seen on 2.6.35-based kernel.
I have a very reliable work-around though: disable hyper-threading processors before suspending, re-enable them after resume is finished. If I do this, the slowdown never occurs.
So I have this little script in /etc/pm/sleep.d/ which does the job for my Core i7 620 M:
# Disable hyper-threading processor cores on suspend and hibernate, re-enable them
# on resume. Presumably helps for buggy nvidia behaviour.
# This file goes into /etc/pm/sleep.d/
case $1 in
echo 0 > /sys/devices/system/cpu/cpu1/online
echo 0 > /sys/devices/system/cpu/cpu3/online
echo 1 > /sys/devices/system/cpu/cpu1/online
echo 1 > /sys/devices/system/cpu/cpu3/online
If you have a multi-core CPU with hyper-threading, you can try this and see if it removes the problem. The script needs to be adapted to CPU type (i.e. which processor ids need disabling/enabling, usually only the odd numbers from 1 to N-1, where N is the total number of logical processors that Linux sees when hyperthreading is enabled. It definitely works for me.
I don't know what the cause of problem is, maybe some race condition or IRQ issue. I've a Dell E6510 with Nvidia NVS 3100M and a Core i7 CPU (with hyper-threading enabled in BIOS). Using 195.36.24 nvidia driver (no later version of the nvidia driver works reliably on my laptop with Ubuntu Lucid 64bit :/ ). Also using Gnome+Compiz combo.
Related bug reports from Launchpad:
(several people mention slowdowns after suspend)
(I reported this, directly related to the issue)