On AMD hardware, Hyper-V doesn't work nested on KVM if L1 is started with more than one vCPU. The problem is in NMI which is heavily used by Windows on SMP systems. This series fixes a couple of related issues with the current NMI singlestep logic and makes Windows with Hyper-V happy. v1->v2: * simplified patch 4 to call smp_send_reschedule instead of intercepting iret (Paolo) * added patch 5 to suppress singlestep on GIF=0 and nested exit (Paolo) * dropped most of the cover letter blurb because we now singlestep only over iret, as originally intended (Radim) * still left nmi_singlestep_guest_rflags and the defensive code accessing it in -- it shouldn't be needed if we really singlestep only over iret but it is more robust this way (Radim) * ran eventinj.flat, found no regression (baseline appears to be broken on nested, I'll look into it separately) (Paolo) Ladi Prosek (5): KVM: SVM: introduce disable_nmi_singlestep helper KVM: nSVM: do not forward NMI window singlestep VM exits to L1 KVM: SVM: hide TF/RF flags used by NMI singlestep KVM: SVM: don't NMI singlestep over event injection KVM: SVM: suppress unnecessary NMI singlestep on GIF=0 and nested exit