Message ID | 1398329494-33114-2-git-send-email-jfrei@linux.vnet.ibm.com |
---|---|
State | New |
Headers | show |
On 24/04/14 10:51, Jens Freimann wrote: > From: David Hildenbrand <dahi@linux.vnet.ibm.com> > > This patch creates empty function stubs (used by the gdbserver) in preparation > for the hw debugging support by kvm on s390, which will enable the > __KVM_HAVE_GUEST_DEBUG define in the linux headers and require these methods on > the qemu side. > > Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com> > Signed-off-by: Jens Freimann <jfrei@linux.vnet.ibm.com> > Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> Conny, can you take that patch in your next pull request? Otherwise qemu will fail to build as soon as somebody does a headersync from kvm/queue. > Cc: qemu-stable@nongnu.org > --- > target-s390x/kvm.c | 28 ++++++++++++++++++++++++++++ > 1 file changed, 28 insertions(+) > > diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c > index 56b9af7..2b2dcdc 100644 > --- a/target-s390x/kvm.c > +++ b/target-s390x/kvm.c > @@ -383,6 +383,26 @@ int kvm_arch_remove_sw_breakpoint(CPUState *cs, struct kvm_sw_breakpoint *bp) > return 0; > } > > +int kvm_arch_insert_hw_breakpoint(target_ulong addr, > + target_ulong len, int type) > +{ > + return -ENOSYS; > +} > + > +int kvm_arch_remove_hw_breakpoint(target_ulong addr, > + target_ulong len, int type) > +{ > + return -ENOSYS; > +} > + > +void kvm_arch_remove_all_hw_breakpoints(void) > +{ > +} > + > +void kvm_arch_update_guest_debug(CPUState *cpu, struct kvm_guest_debug *dbg) > +{ > +} > + > void kvm_arch_pre_run(CPUState *cpu, struct kvm_run *run) > { > } > @@ -844,6 +864,11 @@ static int handle_tsch(S390CPU *cpu) > return ret; > } > > +static int kvm_arch_handle_debug_exit(S390CPU *cpu) > +{ > + return -ENOSYS; > +} > + > int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run) > { > S390CPU *cpu = S390_CPU(cs); > @@ -859,6 +884,9 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run) > case KVM_EXIT_S390_TSCH: > ret = handle_tsch(cpu); > break; > + case KVM_EXIT_DEBUG: > + ret = kvm_arch_handle_debug_exit(cpu); > + break; > default: > fprintf(stderr, "Unknown KVM exit: %d\n", run->exit_reason); > break; >
On Thu, 24 Apr 2014 16:56:02 +0200 Christian Borntraeger <borntraeger@de.ibm.com> wrote: > On 24/04/14 10:51, Jens Freimann wrote: > > From: David Hildenbrand <dahi@linux.vnet.ibm.com> > > > > This patch creates empty function stubs (used by the gdbserver) in preparation > > for the hw debugging support by kvm on s390, which will enable the > > __KVM_HAVE_GUEST_DEBUG define in the linux headers and require these methods on > > the qemu side. > > > > Signed-off-by: David Hildenbrand <dahi@linux.vnet.ibm.com> > > Signed-off-by: Jens Freimann <jfrei@linux.vnet.ibm.com> > > Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com> > Acked-by: Christian Borntraeger <borntraeger@de.ibm.com> > > > Conny, can you take that patch in your next pull request? Otherwise > qemu will fail to build as soon as somebody does a headersync from kvm/queue. Yup, will send this + the two onereg patches. > > > > Cc: qemu-stable@nongnu.org > > --- > > target-s390x/kvm.c | 28 ++++++++++++++++++++++++++++ > > 1 file changed, 28 insertions(+)
diff --git a/target-s390x/kvm.c b/target-s390x/kvm.c index 56b9af7..2b2dcdc 100644 --- a/target-s390x/kvm.c +++ b/target-s390x/kvm.c @@ -383,6 +383,26 @@ int kvm_arch_remove_sw_breakpoint(CPUState *cs, struct kvm_sw_breakpoint *bp) return 0; } +int kvm_arch_insert_hw_breakpoint(target_ulong addr, + target_ulong len, int type) +{ + return -ENOSYS; +} + +int kvm_arch_remove_hw_breakpoint(target_ulong addr, + target_ulong len, int type) +{ + return -ENOSYS; +} + +void kvm_arch_remove_all_hw_breakpoints(void) +{ +} + +void kvm_arch_update_guest_debug(CPUState *cpu, struct kvm_guest_debug *dbg) +{ +} + void kvm_arch_pre_run(CPUState *cpu, struct kvm_run *run) { } @@ -844,6 +864,11 @@ static int handle_tsch(S390CPU *cpu) return ret; } +static int kvm_arch_handle_debug_exit(S390CPU *cpu) +{ + return -ENOSYS; +} + int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run) { S390CPU *cpu = S390_CPU(cs); @@ -859,6 +884,9 @@ int kvm_arch_handle_exit(CPUState *cs, struct kvm_run *run) case KVM_EXIT_S390_TSCH: ret = handle_tsch(cpu); break; + case KVM_EXIT_DEBUG: + ret = kvm_arch_handle_debug_exit(cpu); + break; default: fprintf(stderr, "Unknown KVM exit: %d\n", run->exit_reason); break;