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] Paravirtualize syscall path in fil

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] [IA64] Paravirtualize syscall path in file fsys.S
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Thu, 18 Jan 2007 21:11:02 -0800
Delivery-date: Thu, 18 Jan 2007 21:13:46 -0800
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@xxxxxxxxxxxx
# Date 1168974063 25200
# Node ID 43115ffc6635fe2526c1c5ccc98b93bfd80495b6
# Parent  7a2c224a9252bb9ca6ada21cf372f22f37ad98fe
[IA64] Paravirtualize syscall path in file fsys.S

Signed-off-by: Anthony Xu <anthony.xu@xxxxxxxxx>
---
 linux-2.6-xen-sparse/arch/ia64/kernel/fsys.S |   41 +++++++++++++++++++++++++++
 1 files changed, 41 insertions(+)

diff -r 7a2c224a9252 -r 43115ffc6635 
linux-2.6-xen-sparse/arch/ia64/kernel/fsys.S
--- a/linux-2.6-xen-sparse/arch/ia64/kernel/fsys.S      Tue Jan 16 11:51:45 
2007 -0700
+++ b/linux-2.6-xen-sparse/arch/ia64/kernel/fsys.S      Tue Jan 16 12:01:03 
2007 -0700
@@ -516,11 +516,34 @@ ENTRY(fsys_fallback_syscall)
        adds r17=-1024,r15
        movl r14=sys_call_table
        ;;
+#ifdef CONFIG_XEN
+       movl r18=running_on_xen;;
+       ld4 r18=[r18];;
+       // p14 = running_on_xen
+       // p15 = !running_on_xen
+       cmp.ne p14,p15=r0,r18
+       ;;    
+(p14)  movl r18=XSI_PSR_I_ADDR;;
+(p14)  ld8 r18=[r18]
+(p14)  mov r29=1;;
+(p14)  st1 [r18]=r29
+(p15)  rsm psr.i
+#else    
        rsm psr.i
+#endif    
        shladd r18=r17,3,r14
        ;;
        ld8 r18=[r18]                           // load normal (heavy-weight) 
syscall entry-point
+#ifdef CONFIG_XEN
+(p14)  mov r27=r8
+(p14)  XEN_HYPER_GET_PSR
+       ;;
+(p14)  mov r29=r8
+(p14)  mov r8=r27
+(p15)  mov r29=psr                             // read psr (12 cyc load 
latency)
+#else    
        mov r29=psr                             // read psr (12 cyc load 
latency)
+#endif    
        mov r27=ar.rsc
        mov r21=ar.fpsr
        mov r26=ar.pfs
@@ -632,7 +655,25 @@ GLOBAL_ENTRY(fsys_bubble_down)
        mov rp=r14                              // I0   set the real return addr
        and r3=_TIF_SYSCALL_TRACEAUDIT,r3       // A
        ;;
+#ifdef CONFIG_XEN
+       movl r14=running_on_xen;;
+       ld4 r14=[r14];;
+       // p14 = running_on_xen
+       // p15 = !running_on_xen
+       cmp.ne p14,p15=r0,r14
+       ;; 
+(p14)  movl r28=XSI_PSR_I_ADDR;;
+(p14)  ld8 r28=[r28];;
+(p14)  adds r28=-1,r28;;                       // event_pending
+(p14)  ld1 r14=[r28];;
+(p14)  cmp.ne.unc p13,p14=r14,r0;;
+(p13)  XEN_HYPER_SSM_I
+(p14)  adds r28=1,r28;;                        // event_mask
+(p14)  st1 [r28]=r0;;
+(p15)  ssm psr.i
+#else
        ssm psr.i                               // M2   we're on kernel stacks 
now, reenable irqs
+#endif    
        cmp.eq p8,p0=r3,r0                      // A
 (p10)  br.cond.spnt.many ia64_ret_from_syscall // B    return if bad 
call-frame or r15 is a NaT
 

_______________________________________________
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] Paravirtualize syscall path in file fsys.S, Xen patchbot-unstable <=