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 testsuite for arm architecture - results


On 04/01/2011 03:21 AM, Turgis, Frederic wrote:
> Hi,
> 
> Latest ARM "testsuite" report I found was on March 2008. So here is 1 "nono privileged" made on PandaBoard (ARM-A9). Unfortunately, Ubuntu natty includes only systemtap v1.3 that I recently patched with upstream fixes to 2.6.38 (all present or retroffited in systemtap project)
> 
> Host: Linux localhost.localdomain 2.6.38-1000-linaro-omap #1-Ubuntu SMP Thu Feb
> 24 04:55:52 UTC 2011 armv7l armv7l armv7l GNU/Linux
> Snapshot: version 1.3/0.148 non-git sources
> GCC: 4.5.2 [gcc (Ubuntu/Linaro 4.5.2-2ubuntu3) 4.5.2]
> Distro: Linaro N (development branch)
> 
> Numbers below are simply an indication, I solved issues in parallel and I didn't keep the first report with more failures:
> # of expected passes            488
> # of unexpected failures        22
> # of unexpected successes       10
> # of expected failures          230
> # of known failures             3
> # of untested testcases         402

Hi Frederic,

You might try to do a git checkout of systemtap and try running the tests again. There have been several patches checked to address ARM issues.

> 
> 
> FAILURES: unless explicitly stated, they should still be present in latest version (checked source code) and I could make them PASS (eventually by hacking):
> 
> * Relevant issues:
> - systemtap.examples/general/badname, semok/thirtynine.stp "semantic error: not accessible at this address (0xc0171f34): identifier '$child'
>  at :19:28  source:   if (filter(kernel_string($child->d_name->name)))"
> 
> "stap -L" confirmed it, it seems I don't have access to parameters of inline functions. I found some bug mentioning issue with GCC < 4.5 but I have GCC4.5.2 I need to dig more into defect database.

This is likely a gcc issue, so not much can do about this.

> 
> - buildok/conversions-guru-embedded.stp:
> "invalid lvalue in asm output 1" -> I root caused it to set_kernel_xxx calling __put_user_asm_dword inline assembly. Code looks correct and identical to kernel arch/arm/include/asm/uaccess.h. I will try to find someone in Linaro to inspect more in deep this assembly code.

The __put_user_asm_dword inline assembly is bogus. The arm is 32-bit and doesn't have complete support for 64-bit put/get operations. Revised the code to do only 32-bit operations like the i386. The bogus asm is probably not noticed because the kernel never did 64-bit operation. SystemTap does try 64-bit operation and gets the error above. there is a commit to fix this in the git repository, 27003924e9be437d397d71d10e9d21834bfba955.

> 
> - sunrpc kernel module: 3 causes
>    * Ubuntu still puts debuginfo in /usr/lib/debug. Thanks to  http://sourceware.org/systemtap/wiki/SystemtapOnUbuntu for the script
>    * build-id check fails for kernel module probes -> solved by PR10812, commit 71fa1fe39faa153cf6ede620c4855e508059aa39
>    * "rpc_new_client" function can be probed as an inline function or not. The "not inline" probe is not ported to kernel > 2.6.18 (so I imagine function is inlined on x86 and not on ARM)
> 
> tapset/rpc.stp:
> probe _sunrpc.clnt.create_client.rpc_new_client =
>         kernel.function("rpc_new_client").call !,
>         module("sunrpc").function("rpc_new_client").call
> {
>         # kernel <= 2.6.18 => no porting to > 2.6.18 unlike inline version
> 
> 
> * "Not ported for ARM" issues
> - semok/doubleglob.stp, buildok/fortyfive.stp "semantic error: unresolved arity-1 function: identifier 'int_arg' at :834:11^"
> Non dwarf probing is not ported for ARM (already raised on mailing list) -> I will have to follow-up with Linaro

There has been addition of tapset/arm/registers.stp to provide some access to non-dwarf probing, commit 5a24160a15810f1ff5338195570242c9580ca523. However this only handles the first 4 args. The args 5 and 6 on the stack are not yet handled, so a number of the nd_syscalls.exp will still fail.

> 
> 
> * "test configuration" issues
> - systemtap.base/dtrace.exp:
> if {[installtest_p]} {
>     set dtrace $env(SYSTEMTAP_PATH)/dtrace } else {
>     set dtrace ../dtrace
> }
> This selects ../dtrace whereas dtrace is in /usr/bin/dtrace thus obvious failure. Shall I set it or the tool shall set it ?

Should test with systemtap installed:

make install  # as root
make installcheck # be member of stapdev group or run as root

> 
> - systemtap.base/optionalprobe.exp
> 60s timeout is too small, test executes in 97s ;-)

Maybe use one of those newer faster TI OMAP processors. :) It only took 12 seconds on my single core cortex A8 running at 800MHz. I use the internal 15GB SSD pata drive the machine. I wonder if this might be slow because of the disk io particular if it is a device through the USB: 

http://fedoraproject.org/wiki/Architectures/ARM/Performance

> 
> - systemtap.base/preprocessor.exp
> %( arch %) = arm while $arch=uname -i=armv7l. I guess this requires same normalization than ppc64, s390x and i686 at beginning of test

The base architecture name is now used, commit aa238e24b8b00d9698ced500dc78fd5a253f1f0d.

> 
> - buildok/eighteen.stp
> __audit_getname() seems to depend upon CONFIG_AUDITSYSCALL which is not available for ARM
> 
> - buildok/pr10678.stp
> ne2k_pci module is not present on such boards so it obviously fails (but next generations will have SATA and PCIe, we are closing the gap ;-) )
> 
> - transok/tval-opt.stp
> Header "#! /bin/sh" chooses sh over bash but sh does not support "set -o pipefail".
> $SHELL=/bin/bash on target. Using "#! /bin/bash" worked.

There are some other tests that use /bin/bash (testsuite/systemtap.base/bz5274.sh), so it seems like it would be okay switch it to /bin/bash. checked in commit cf0c4c06a893debc465f418fcd6869872d2e4194.

-Will


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