Attached patch implements lazy FPU save/restore for SVM. It's much more conservative than my previous patch. We can now mark the guest FPU as inactive whenever we want which will trigger CR0.TS to be set in the guest's shadowed CR0. Right now, we only mark the FPU as inactive when the guest does (via a mov %cr0, clts, etc.) or during a mov %cr3. There may be a better heuristic out there but this seemed like the obvious one. I'm still playing around with the VT version of this patch so I'll post that tomorrow. I've tested on a 32bit and 64bit SVM host using Avi's previously posted fpu-test and some others. Everything seems to be fine. Regards, Anthony Liguori