Re: [PATCH] KVM: X86: Also reload the debug registers before kvm_x86->run() when the host is using them

From: Jim Mattson
Date: Fri Jul 09 2021 - 12:36:06 EST


On Fri, Jul 9, 2021 at 8:52 AM Paolo Bonzini <pbonzini@xxxxxxxxxx> wrote:
>
> On 09/07/21 12:05, Lai Jiangshan wrote:
> >
> >
> > On 2021/7/9 17:49, Paolo Bonzini wrote:
> >> On 09/07/21 05:09, Lai Jiangshan wrote:
> >>> I just noticed that emulation.c fails to emulate with DBn.
> >>> Is there any problem around it?
> >>
> >> Just what you said, it's not easy and the needs are limited. I
> >> implemented kvm_vcpu_check_breakpoint because I was interested in
> >> using hardware breakpoints from gdb, even with unrestricted_guest=0
> >> and invalid guest state, but that's it.
> >
> > It seems kvm_vcpu_check_breakpoint() handles only for code breakpoint
> > and doesn't handle for data breakpoints.
>
> Correct, there's a comment above the call. But data breakpoint are much
> harder and relatively less useful.

Data breakpoints are actually quite useful. I/O breakpoints not so much.

> > And no code handles DR7_GD bit when the emulation is not resulted from
> > vm-exit. (for example, the non-first instruction when kvm emulates
> > instructions back to back and the instruction accesses to DBn).
>
> Good point, that should be fixed too.
>
> Paolo
>