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,

I have built a kernel on my arm machine and I am able to run the tests now for systemtap from the git repository. One workaround I needed was to add a _arch_ptrace_argstr() function so the "make installcheck" gets past the sanity tests, need to have a real _arch_ptrace_argstr(). I suspect there are other machine specific functions that need to be filled, but the testsuite did start running (slowly :). The tests got hung up on testsuite/systemtap.base/pr10854.exp and had to control-c the run.

The kernel:

 uname -a
Linux smartbook-fedora-arm 2.6.31.14.24-efikamx #1 PREEMPT Mon Jul 18 21:32:54 EDT 2011 armv7l armv7l armv7l GNU/Linux


Tests that failed:

FAIL: alias_tapset (0, 1, 2, 1)
FAIL: backtrace (0 0)
FAIL: backtrace-unwindsyms (0 0)
FAIL: cmd_parse8: unexpected timeout
FAIL: cmd_parse16: eof		#putting stray armv7l in path to /linux-kernel/arch/armv7l/Makefile
FAIL: debugpath-good (eof)
FAIL: systemtap.base/deref.stp startup (eof) #sompe problem with asm statements
FAIL: global_end (11)
FAIL: gtod (0)
FAIL: probe listing implicitptr-O0
FAIL: probe listing implicitptr-O1
FAIL: probe listing implicitptr-O2
FAIL: probe listing implicitptr-O3
FAIL: systemtap.base/kmodule.stp compilation
FAIL: OVERLOAD2 didn't receive expected error
FAIL: systemtap.base/pointer_array.stp

Summary of the run:

		=== systemtap Summary ===

# of expected passes		226
# of unexpected failures	16
# of known failures		2
# of untested testcases		37


> 
> 
> 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.


systemtap.examples/general/badname,  still unable to access $child->d_name->name
semok/thirtynine.stp, compiled okay

> 
> - 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.

yes, still has problems.

> 
> - 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
> 
semok/doubleglob.stp, still doesn't work
buildok/fortyfive.stp, still doesn't work

> 
> * "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 ?
> 
> - systemtap.base/optionalprobe.exp
> 60s timeout is too small, test executes in 97s ;-)

Hmmm, systemtap.base/optionalprobe.exp ran much faster on my slow arm machine and passed.

> 
> - 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
> 

This normalization looks like it would be easy to add. This also looks like something that messed up cmd_parse.exp in my run of the tests. This looks like something tat should be factored out of the .exp tests, so if someone comes up with a new arch with variation there is only one place to change it.

> - 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.

The transok/tval-opt.stp worked on fedora because /bin/sh is a symbolic link to bash.
> 
> Regards
> Fred
> 
> Frederic Turgis
> OMAP Platform Business Unit - OMAP System Engineering - Platform Enablement
> 
> 
> Texas Instruments France SA, 821 Avenue Jack Kilby, 06270 Villeneuve Loubet. 036 420 040 R.C.S Antibes. Capital de EUR 753.920
> 
> 
> 

-Will


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