Howdy, Attached patch implements lazy-fpu save/restore for VT. VMEXIT time improves by about 10% (~550 cycles). I had to do a couple more things to get it working than I had to do with SVM. I changed the CR0 host mask to be all 1's so that any attempt to write to CR0 causes a VMEXIT. I don't think there are any remaining bits now that we want to trap TS that are safe for the guest to access and are in the fast-paths. Since we're trapping TS, I had to implement CLTS exit handling. vcpu->cr0 also had a rather bizarre life cycle. After a set_cr0, it was a proper shadow of the guest's CR0. However, after a decache_cr0, it would contain the host's version of the bits covered by the CR0 host mask so it was no longer a proper shadow. I got rid of the CR0 caching and made vcpu->cr0 always be equivalent to CR0_READ_SHADOW. Once these changes were made, the rest of the patch was much like the SVM one. Regards, Anthony Liguori