+ * If the exit was due to a NPF we may already have a GPA. + * If the GPA is present, use it to avoid the GVA to GPA table walk. + * Note, this cannot be used on string operations since string + * operation using rep will only have the initial GPA from the NPF + * occurred. + */I was wondering if it would make sense to get rid of gpa_available and rather define a new function: bool exception_gpa_valid(struct kvm_vcpu) { // check if svm // check if exit code is NPF // check ctxt }No, this would be a layering violation. The emulator ops don't know about svm and exit codes (and in fact it's trivial to implement this optimization for vmx, with a slightly different logic), so we need to have gpa_available.
I was rather thinking about adding an vmx/svm independent callback, which would return false for vmx for now. I just saw the variable
and was wondering if it is really necessary. -- David

