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

Patch to build Open MPI on Alpha (Was: Re: Access to developer machine)



[ Sorry for resurrecting an old thread! And please CC me in replies, I'm
not subscribed. ]

Am Dienstag, den 03.02.2009, 21:23 +0100 schrieb Oliver Falk:
> Le me know the patch you (might) produce, so I can check on Fedora/Alpha 
> :-) If you like...

Well, I finally succeeded in developing a patch, and you can find the
result attached. It would be really great if you could test and/or
review it, since I do not know if the assembly is correct; I tried to
teach myself Alpha assembly and have no idea if I got it. ;)

I'm very intersted in your feedback, especially if it works on Fedora. I
was able to build Debian packages on Albeniz and am quite confident that
the patch works. You can either reply to me or send a message to the
corresponding bug. (510845@bugs.debian.org)

Thanks in advance!

Best regards
Manuel
--- a/ompi/contrib/vt/vt/vtlib/vt_pform_linux.c
+++ b/ompi/contrib/vt/vt/vtlib/vt_pform_linux.c
@@ -170,6 +170,8 @@
 # elif defined(__ia64__)
     /* ... ITC */
     clock_value = __getReg(_IA64_REG_AR_ITC);
+# elif defined(__alpha__)
+    asm volatile ("rpcc %0" : "=r" (clock_value));
 # else
     /* ... TSC */
     {
--- a/opal/asm/base/ALPHA.asm
+++ b/opal/asm/base/ALPHA.asm
@@ -197,3 +197,28 @@
 	addl $31,$0,$0
 	ret $31,($26),1
 	.end opal_atomic_cmpset_rel_64
+	.align 2
+	.align 4
+	.globl opal_sys_timer_get_cycles
+	.ent opal_sys_timer_get_cycles
+$opal_sys_timer_get_cycles..ng:
+opal_sys_timer_get_cycles:
+	.eflag 48
+	.frame $30,0,$26,0
+	.prologue 0
+	.set	macro
+	wmb
+	1:  ldq_l $0, 0($16)     
+	cmpeq $0, $17, $0     
+	beq $0, 2f           
+	mov $18, $0           
+	stq_c $0, 0($16)         
+	beq $0, 1b           
+	jmp 3f               
+2:  mov $31, $0      
+3:                   
+
+	.set	nomacro
+	rpcc $0
+	ret
+	.end opal_sys_timer_get_cycles
--- a/opal/asm/generated/atomic-alpha-linux.s
+++ b/opal/asm/generated/atomic-alpha-linux.s
@@ -197,5 +197,30 @@
 	addl $31,$0,$0
 	ret $31,($26),1
 	.end opal_atomic_cmpset_rel_64
+	.align 2
+	.align 4
+	.globl opal_sys_timer_get_cycles
+	.ent opal_sys_timer_get_cycles
+$opal_sys_timer_get_cycles..ng:
+opal_sys_timer_get_cycles:
+	.eflag 48
+	.frame $30,0,$26,0
+	.prologue 0
+	.set	macro
+	wmb
+	1:  ldq_l $0, 0($16)     
+	cmpeq $0, $17, $0     
+	beq $0, 2f           
+	mov $18, $0           
+	stq_c $0, 0($16)         
+	beq $0, 1b           
+	jmp 3f               
+2:  mov $31, $0      
+3:                   
+
+	.set	nomacro
+	rpcc $0
+	ret
+	.end opal_sys_timer_get_cycles
 
 	.section	.note.GNU-stack,"",@progbits

Attachment: signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil


Reply to: