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] |
On 07/19/2011 05:48 PM, William Cohen wrote: > With the ARM architecture becoming a more common architecture for > Linux SystemTap should be improve to better support the ARM > architecture. There are currently Ubuntu and Fedora images available > for the ARM architecture. > > For this work has been concentrating on getting things working on the > Fedora 13 release candidate with SystemTap running in an a self hosted > manner. The variations in the ARM platforms make it difficult to have > a single binary kernel RPM for all the arm platforms (kernel-debuginfo > and kernel-devel rpms are rare). This work has been using a locally > built linux kernel to make all the kernel debuginfo and devel > information available. > > The goal is to be able to run the systemtap testsuite to find to what > tests work and fail on the ARM architecture. In the past people have > just cross compiled an individual script on one machine and transfered > them over to the target ARM machine. The testsuite is not designed to > run in cross-compiled manner. > > Reviewing early test results and the code the following is an > incomplete list of improvements: > > -created aux_syscalls.stp (FIXED) > "make installcheck" uses debuginfo smoke test > needs _arch_ptrace_argstr(), aux_syscalls.stp > -map arm variants (armv7l and armv5tel) to arm (PR4186) > -provide tapset/arm/registers.stp > -map register name to/from sruct > -functions for nd probe argument access > -add any arm specific syscalls in tapset/arm/syscalls.stp > -provide high-resolution timer for gettimeofday_ns() > -this may be complicated by the variety of arm high-res timer mechanisms > > Right now the "make installcheck" tests are running. The ARM machine > is rather slow, but once the results are available will mail them to > dejazilla so have a reference point for the ARM architecture. > > -Will I have been working on improving the test results for the arm. I found that loc2c-runtime.h had some problem on arm: -arm misses handling 64-bit get, so has the same restrictions as 32-bit i386 -asm statement for __stp_put_user_asm_dword() appeared to be wrong (wondering if can eliminate entirely) I have taken an attempt at making a tapset/arm/registers.stp file. It still needs some work. The first 4 args are passed in registers on arm, but it doesn't handle arg 5 or 6. Feedback on it would be appreciated. These changes improved the test results. Went from 190 failures down to 114: === systemtap Summary === # of expected passes 1107 # of unexpected failures 114 # of unexpected successes 9 # of expected failures 232 # of known failures 2 # of untested testcases 187 # of unsupported tests 5 -Will
diff --git a/runtime/loc2c-runtime.h b/runtime/loc2c-runtime.h index 968045f..f8ed19a 100644 --- a/runtime/loc2c-runtime.h +++ b/runtime/loc2c-runtime.h @@ -789,8 +789,8 @@ extern void __store_deref_bad(void); " .long 1b, 4b\n" \ " .long 2b, 4b\n" \ " .previous" \ - : "+r" (err), "+r" (__pu_addr) \ - : "r" (x), "i" (-EFAULT) \ + : "+r" (err) \ + : "r" (x), "r" (__pu_addr), "i" (-EFAULT) \ : "cc") #define deref(size, addr) \ @@ -939,9 +939,9 @@ extern void __store_deref_bad(void); #endif /* (s390) || (s390x) */ -#if defined __i386__ +#if defined (__i386__) || defined (__arm__) -/* x86 can't do 8-byte put/get_user_asm, so we have to split it */ +/* x86 and arm can't do 8-byte put/get_user_asm, so we have to split it */ #define kread(ptr) \ ((sizeof(*(ptr)) == 8) ? \
Attachment:
registers.stp
Description: Text document
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |