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-changelog

[Xen-changelog] [xen-unstable] [IA64] fix vDSO paravirtualization.

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [IA64] fix vDSO paravirtualization.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Wed, 09 Aug 2006 22:20:32 +0000
Delivery-date: Wed, 09 Aug 2006 15:24:49 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User awilliam@xxxxxxxxxxx
# Node ID 147144f9ec51c5963c878af8acc5bb9830b04608
# Parent  47a5dfd1bcd6203c5c57fc01fc32c94e332ccbb3
[IA64] fix vDSO paravirtualization.

sometimes it fails to clear event mask. It results in domain's unstability.
And one typo.

Signed-off-by: Isaku Yamahata <yamahata@xxxxxxxxxxxxx>
---
 linux-2.6-xen-sparse/arch/ia64/kernel/gate.S   |    2 -
 linux-2.6-xen-sparse/arch/ia64/xen/hypercall.S |   41 ++++++++++++++-----------
 2 files changed, 24 insertions(+), 19 deletions(-)

diff -r 47a5dfd1bcd6 -r 147144f9ec51 
linux-2.6-xen-sparse/arch/ia64/kernel/gate.S
--- a/linux-2.6-xen-sparse/arch/ia64/kernel/gate.S      Thu Aug 03 11:05:59 
2006 -0600
+++ b/linux-2.6-xen-sparse/arch/ia64/kernel/gate.S      Thu Aug 03 11:10:53 
2006 -0600
@@ -130,7 +130,7 @@ GLOBAL_ENTRY(__kernel_syscall_via_epc)
        // r20 = 1
        // r22 = &vcpu->evtchn_mask
        // r23 = &vpsr.ic
-       // r24 = vcpu->pending_interruption
+       // r24 = &vcpu->pending_interruption
        // r25 = tmp
        // r28 = &running_on_xen
        // r30 = running_on_xen
diff -r 47a5dfd1bcd6 -r 147144f9ec51 
linux-2.6-xen-sparse/arch/ia64/xen/hypercall.S
--- a/linux-2.6-xen-sparse/arch/ia64/xen/hypercall.S    Thu Aug 03 11:05:59 
2006 -0600
+++ b/linux-2.6-xen-sparse/arch/ia64/xen/hypercall.S    Thu Aug 03 11:10:53 
2006 -0600
@@ -379,30 +379,35 @@ GLOBAL_ENTRY(xen_get_psr)
        ;; 
 END(xen_get_psr)
 
+       // see xen_ssm_i() in privop.h
+       // r22 = &vcpu->evtchn_mask
+       // r23 = &vpsr.ic
+       // r24 = &vcpu->pending_interruption
+       // r25 = tmp
+       // r31 = tmp
+       // p11 = tmp
+       // p14 = tmp
+#define XEN_SET_PSR_I                  \
+       ld4 r31=[r22];                  \
+       ld4 r25=[r24];                  \
+       ;;                              \
+       st4 [r22]=r0;                   \
+       cmp.ne.unc p14,p0=r0,r31;       \
+       ;;                              \
+(p14)  cmp.ne.unc p11,p0=r0,r25;       \
+       ;;                              \
+(p11)  st4 [r22]=r20;                  \
+(p11)  st4 [r23]=r0;                   \
+(p11)  XEN_HYPER_SSM_I;
+               
 GLOBAL_ENTRY(xen_ssm_i_0)
-       st4 [r22]=r20
-       ld4 r25=[r24]
-       ;;
-       cmp.ne.unc p11,p0=r0, r25
-       ;; 
-(p11)  st4 [r22]=r0
-(p11)  st4 [r23]=r0
-(p11)  XEN_HYPER_SSM_I
-       
+       XEN_SET_PSR_I
        brl.cond.sptk   .vdso_ssm_i_0_ret
        ;; 
 END(xen_ssm_i_0)
 
 GLOBAL_ENTRY(xen_ssm_i_1)
-       st4 [r22]=r20
-       ld4 r25=[r24]
-       ;; 
-       cmp.ne.unc p11,p0=r0, r25
-       ;; 
-(p11)  st4 [r22]=r0
-(p11)  st4 [r23]=r0
-(p11)  XEN_HYPER_SSM_I
-       ;;
+       XEN_SET_PSR_I
        brl.cond.sptk   .vdso_ssm_i_1_ret
        ;; 
 END(xen_ssm_i_1)

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] [IA64] fix vDSO paravirtualization., Xen patchbot-unstable <=