On Fri, Aug 05, 2022, Michal Luczaj wrote: > On Fri, 5 Aug 2022 13:42:40 +0200, Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote: > > On 8/3/22 20:21, Sean Christopherson wrote: > > >> I've noticed test_illegal_movbe() does not execute with KVM_FEP. > > >> Just making sure: is it intentional? > > > It's intentional. FEP isn't needed because KVM emulates MOVBE on #UD when it's > > > not supported by the host, e.g. to allow migrating to an older host. > > > > > > GP(EmulateOnUD | ModRM, &three_byte_0f_38_f0), > > > GP(EmulateOnUD | ModRM, &three_byte_0f_38_f1), > > > > > > > *puts historian hat on* > > > > The original reason was to test Linux using MOVBE even on non-Atom > > machines, when MOVBE was only on Atoms. :) > > So the emulator's logic for MOVBE is meant to be tested only when the > guest supports MOVBE while the host does not? Ah, I see what you're asking. No, it's perfectly legal to test MOVBE emulation on hosts that support MOVBE, i.e. using FEP is allowed. But because KVM emulates MOVBE on #UD and the KUT testcase is guaranteed to generate a #UD (barring a hardware bug), there's no need to use FEP. And not using FEP is advantageous because it avoids depending on an opt-in non-production module param.