Re: [PATCH 0/7] KVM: x86: Additional rflags.rf fixes

From: Paolo Bonzini
Date: Mon Jul 21 2014 - 08:20:38 EST


Il 21/07/2014 13:37, Nadav Amit ha scritto:
> RFLAGS.RF is not handled well by kvm, in both the x86 emulator and vmx code.
> This flag should be cleared after every instruction emulation (other than
> IRETD/IRETQ). It should be set in various conditions as described in Intel SDM
> 17.3.1.1. This series of patches addresses the clearing of RF on emulated
> instructions, the setting the RF upon fault injection. It does not handle the
> case of traps and interrupts injection during REP-string, since there is
> no easy indication whether the first iteration of a rep-string occurred.
> The value of RF depends on whether the first iteration took place.
>
> Thanks for reviewing the patches.
>
> Nadav Amit (7):
> KVM: x86: Defining missing x86 vectors
> KVM: x86: Function for determining exception type
> KVM: x86: Clearing rflags.rf upon skipped emulated instruction
> KVM: vmx: set rflags.rf during fault injection
> KVM: x86: popf emulation should not change RF
> KVM: x86: Clear rflags.rf on emulated instructions
> KVM: x86: Cleanup of rflags.rf cleaning
>
> arch/x86/include/uapi/asm/kvm.h | 3 +++
> arch/x86/kvm/emulate.c | 13 ++++++++-----
> arch/x86/kvm/vmx.c | 11 ++++++++++-
> arch/x86/kvm/x86.c | 37 +++++++++++++++++++++++++++++++++++++
> arch/x86/kvm/x86.h | 9 +++++++++
> 5 files changed, 67 insertions(+), 6 deletions(-)
>

I'm not applying patches 2 and 4 yet. I have applied the others:

KVM: x86: Clearing rflags.rf upon skipped emulated instruction
KVM: x86: popf emulation should not change RF
KVM: x86: Clear rflags.rf on emulated instructions
KVM: x86: Cleanup of rflags.rf cleaning
KVM: x86: emulator injects #DB when RFLAGS.RF is set
KVM: x86: Defining missing x86 vectors

since the remaining two are independent.

Thanks!

Paolo
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/