Re: [PATCH 4/7] KVM: vmx: Allow the guest to run with dirty debug registers

Radim Krčmář
2014-03-10T12:17:04Z

2014-03-09 21:12+0100, Paolo Bonzini:
> Il 09/03/2014 19:26, Radim Krčmář ha scritto:
> >> +
> >> + /*
> >> + * No more DR vmexits; force a reload of the debug registers
> >> + * and reenter on this instruction. The next vmexit will
> >> + * retrieve the full state of the debug registers.
> >> + */
> >> + vcpu->arch.switch_db_regs |= KVM_DEBUGREG_WONT_EXIT;
> >> + return 1;
> >> + }
> >> +
> >
> >We could make the code slighly uglier and move the functional part of
> >this block before the previous one, so it would do both things in one
> >exit.
>
> I considered this, but decided that it's unlikely for emulation to
> be faster than hardware---especially on those AMD CPUs that lack
> decode assists (and it's good for VMX and SVM code to look as
> similar as possible).

I meant to move it before the block that exits if there is the
'exception on access' bit set in cr7, so we wouldn't exit again right
away on the actual access, which is quite likely.
(Exiting without emulation was a great move.)

> >(Exception handler will likely access DR too.)
>
> Which exception handler?

For #DB. (Pure guesswork, I haven't seen any of them.)