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 >