This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: systemtap ARM port status [PATCH]


I've finished analyzing the remaining testsuite failures on ARM.

This posting are the failures that required code changes, either
to the runtime or to the test itself to fix.  The other failures
are more complicated to address.  I'll write them up in a later
mail.

The first patch below fixes the "buildok/twenty.stp" and
"buildok/twentythree.stp" failures.  I had forgotten the
__stp_put_user_asm_dword() function.  (Note: this patch is
on top of the patch I sent out on June 5.)

The second patch below fixes the "prologues -P", "prologues no-P".
More problems with expect scripts missing "-timout" parameters.

Quentin


Index: systemtap-20070602/runtime/loc2c-runtime.h =================================================================== --- systemtap-20070602/runtime/loc2c-runtime.h (revision 218) +++ systemtap-20070602/runtime/loc2c-runtime.h (working copy) @@ -407,6 +407,33 @@ : "r" (x), "r" (__pu_addr), "i" (-EFAULT) \ : "cc")

+#ifndef __ARMEB__
+#define	__reg_oper0	"%R2"
+#define	__reg_oper1	"%Q2"
+#else
+#define	__reg_oper0	"%Q2"
+#define	__reg_oper1	"%R2"
+#endif
+
+#define __stp_put_user_asm_dword(x,__pu_addr,err)		\
+	__asm__ __volatile__(					\
+	"1:	str	" __reg_oper1 ", [%1], #4\n"		\
+	"2:	str	" __reg_oper0 ", [%1], #0\n"		\
+	"3:\n"							\
+	"	.section .fixup,\"ax\"\n"			\
+	"	.align	2\n"					\
+	"4:	mov	%0, %3\n"				\
+	"	b	3b\n"					\
+	"	.previous\n"					\
+	"	.section __ex_table,\"a\"\n"			\
+	"	.align	3\n"					\
+	"	.long	1b, 4b\n"				\
+	"	.long	2b, 4b\n"				\
+	"	.previous"					\
+	: "+r" (err), "+r" (__pu_addr)				\
+	: "r" (x), "i" (-EFAULT)				\
+	: "cc")
+
#define deref(size, addr)						\
  ({									\
     int _bad = 0;							\

Index: systemtap-20070602/testsuite/systemtap.base/prologues.exp
===================================================================
--- systemtap-20070602/testsuite/systemtap.base/prologues.exp	(revision 219)
+++ systemtap-20070602/testsuite/systemtap.base/prologues.exp	(working copy)
@@ -3,8 +3,10 @@
    set ok 0
    spawn stap -P $srcdir/$subdir/prologues.stp
    expect {
+        -timeout 240
        -re {read[^\r\n]*\r\n} { incr ok; exp_continue }
        -re {write[^\r\n]*\r\n} { incr ok; exp_continue }
+        timeout { fail "$test (timeout)" }
        eof
    }
    wait
@@ -16,8 +18,10 @@
    set ok 0
    spawn stap $srcdir/$subdir/prologues.stp
    expect {
+        -timeout 240
        -re {read[^\r\n]*\r\n} { incr ok; exp_continue }
        -re {write[^\r\n]*\r\n} { incr ok; exp_continue }
+        timeout { fail "$test (timeout)" }
        eof
    }
    wait


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]