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

From: Paolo Bonzini
Date: Fri Jul 09 2021 - 11:52:21 EST


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.

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