WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ia64-devel

[Xen-ia64-devel] [PATCH] Fix HVM boot failure

To: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-ia64-devel] [PATCH] Fix HVM boot failure
From: Kouya SHIMURA <kouya@xxxxxxxxxxxxxx>
Date: Wed, 6 Jun 2007 09:50:10 +0900
Delivery-date: Tue, 05 Jun 2007 17:48:56 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-ia64-devel-request@lists.xensource.com?subject=help>
List-id: Discussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
List-post: <mailto:xen-ia64-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-ia64-devel>, <mailto:xen-ia64-devel-request@lists.xensource.com?subject=unsubscribe>
Sender: xen-ia64-devel-bounces@xxxxxxxxxxxxxxxxxxx
HVM sometimes fails to boot with the message 
"Guest nested fault vector=0x5400!".

The cause of this issue is that cr.ifs never be initialized in very
first context switching. To optimize hypercall on HVM, cr.ifs is only
set with the predicate pNonSys(pr5)=1.

-- Kouya

Signed-off-by: Kouya Shimura <kouya@xxxxxxxxxxxxxx>

diff -r 0cf6b75423e9 xen/arch/ia64/vmx/vmx_init.c
--- a/xen/arch/ia64/vmx/vmx_init.c      Mon Jun 04 14:17:54 2007 -0600
+++ b/xen/arch/ia64/vmx/vmx_init.c      Wed Jun 06 09:23:16 2007 +0900
@@ -51,6 +51,7 @@
 #include <asm/viosapic.h>
 #include <xen/event.h>
 #include <asm/vlsapic.h>
+#include "entry.h"
 
 /* Global flag to identify whether Intel vmx feature is on */
 u32 vmx_enabled = 0;
@@ -296,6 +297,7 @@ vmx_final_setup_guest(struct vcpu *v)
 {
        vpd_t *vpd;
        int rc;
+       struct switch_stack *sw;
 
        vpd = alloc_vpd();
        ASSERT(vpd);
@@ -331,6 +333,10 @@ vmx_final_setup_guest(struct vcpu *v)
        /* Set up guest 's indicator for VTi domain*/
        set_bit(ARCH_VMX_DOMAIN, &v->arch.arch_vmx.flags);
 
+       /* Initialize pNonSys=1 for the first context switching */
+       sw = (struct switch_stack *)vcpu_regs(v) - 1;
+       sw->pr = (1UL << PRED_NON_SYSCALL);
+
        return 0;
 }
 
_______________________________________________
Xen-ia64-devel mailing list
Xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-ia64-devel
<Prev in Thread] Current Thread [Next in Thread>