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

From: Radim KrÄmÃÅ
Date: Mon Mar 10 2014 - 08:17:26 EST


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.)
--
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/