>> - clr_cr_intercept(svm, INTERCEPT_CR0_WRITE); >> } else { >> set_cr_intercept(svm, INTERCEPT_CR0_READ); > (There is no point in checking fpu_active if cr0s are equal.) > >> - set_cr_intercept(svm, INTERCEPT_CR0_WRITE); > KVM uses lazy FPU and the state is undefined before the first access. > We set cr0.ts when !svm->vcpu.fpu_active to detect the first access, but > if we allow the guest to clear cr0.ts without exiting, it can access FPU > with undefined state. Thanks for the valuable feedback. It's apparent I hadn't thought through the interaction with lazy FPU and will need to go back and rethink my approach here. -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html