Re: [PATCH 4/4] kvmppc/booke: exit_nr fixup for guest debug single step

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Am 03.02.2010 um 08:53 schrieb Liu Yu <yu.liu@xxxxxxxxxxxxx>:

As BOOKE doesn't have hardware support for virtualization,
hardware never know who's guest and host.

When enable hardware single step in guest,
we cannot disabled it at the point we switch back to host.

Why not? We directly arrive in our code. So we can just disable it, no?

Or does that break when you'd try to debug the guest interrupt handlers?

Thus, we'll see that an single step interrupt happens at
the beginning of guest exit path.

Then we need to recognize this kind of single step interrupt
and fix the exit_nr to the original value.
So that everything looks like normal.

Signed-off-by: Liu Yu <yu.liu@xxxxxxxxxxxxx>
---
arch/powerpc/kvm/booke.c | 82 ++++++++++++++++++++++++++ +++++++++
arch/powerpc/kvm/booke_interrupts.S |    9 ++--
2 files changed, 87 insertions(+), 4 deletions(-)

diff --git a/arch/powerpc/kvm/booke.c b/arch/powerpc/kvm/booke.c
index ec2722d..9056708 100644
--- a/arch/powerpc/kvm/booke.c
+++ b/arch/powerpc/kvm/booke.c
@@ -24,6 +24,7 @@
#include <linux/module.h>
#include <linux/vmalloc.h>
#include <linux/fs.h>
+#include <linux/highmem.h>

#include <asm/cputable.h>
#include <asm/uaccess.h>
@@ -34,6 +35,8 @@
#include "booke.h"

unsigned long kvmppc_booke_handlers;
+unsigned long kvmppc_booke_handler_addr[16];
+#define handler_vector_num (sizeof(kvmppc_booke_handler_addr)/sizeof (kvmppc_booke_handler_addr[0]))

#define VM_STAT(x) offsetof(struct kvm, stat.x), KVM_STAT_VM
#define VCPU_STAT(x) offsetof(struct kvm_vcpu, stat.x), KVM_STAT_VCPU
@@ -214,6 +217,80 @@ void kvmppc_core_deliver_interrupts(struct kvm_vcpu *vcpu)
   }
}

+int kvmppc_read_guest(struct kvm_vcpu *vcpu, unsigned long geaddr,
+              void *data, int len)

Ah, nice. I have something similar in book3s.c. IIRC it's called kvmppc_ld.

I think we should make the semantics identical and declare it as common kvmppc_core function.

Alex
--
To unsubscribe from this list: send the line "unsubscribe kvm" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]
  Powered by Linux