Improving SystemTap ARM Architecture Support
William Cohen
wcohen@redhat.com
Thu Jul 21 12:18:00 GMT 2011
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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: loc2-runtime-arm.diff
Type: text/x-patch
Size: 833 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/systemtap/attachments/20110721/c49b90ab/attachment.bin>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: registers.stp
URL: <http://sourceware.org/pipermail/systemtap/attachments/20110721/c49b90ab/attachment.ksh>
More information about the Systemtap
mailing list