[Xen-devel] Re: [Xen-users] 2.6.23 oops

Jeremy Fitzhardinge
Fri, 12 Oct 2007 06:21:34 -0000

Mark Williamson wrote:
> Actually, I think the kernel is hanging in an infinite loop whilst trying
to
> measure loops per jiffies...  For some reason the UP kernel isn''t
getting
> timer interrupts from Xen at this point, whereas the SMP kernel is.
I''ve not
> figured out why this could be happening, yet, but that''s where I
am at the
> moment.


I can''t reproduce that specific symptom, but this may help.

diff -r 25f5c8bdd699 arch/i386/xen/enlighten.c
--- a/arch/i386/xen/enlighten.c	Thu Oct 11 18:46:33 2007 -0700
+++ b/arch/i386/xen/enlighten.c	Thu Oct 11 23:20:29 2007 -0700
@@ -115,7 +115,7 @@ static void __init xen_vcpu_setup(int cp
 	info.mfn = virt_to_mfn(vcpup);
 	info.offset = offset_in_page(vcpup);

-	printk(KERN_DEBUG "trying to map vcpu_info %d at %p, mfn %x, offset
%d\n",
+	printk(KERN_DEBUG "trying to map vcpu_info %d at %p, mfn %llx, offset
%d\n",
 	       cpu, vcpup, info.mfn, info.offset);

 	/* Check to see if the hypervisor will put the vcpu_info
diff -r 25f5c8bdd699 include/xen/interface/vcpu.h
--- a/include/xen/interface/vcpu.h	Thu Oct 11 18:46:33 2007 -0700
+++ b/include/xen/interface/vcpu.h	Thu Oct 11 23:20:29 2007 -0700
@@ -160,8 +160,9 @@ struct vcpu_set_singleshot_timer {
  */
 #define VCPUOP_register_vcpu_info   10  /* arg == struct vcpu_info */
 struct vcpu_register_vcpu_info {
-    uint32_t mfn;               /* mfn of page to place vcpu_info */
-    uint32_t offset;            /* offset within page */
+    uint64_t mfn;    /* mfn of page to place vcpu_info */
+    uint32_t offset; /* offset within page */
+    uint32_t rsvd;   /* unused */
 };

 #endif /* __XEN_PUBLIC_VCPU_H__ */


    J