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