This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: Systemtap testsuite for arm architecture - results
- From: William Cohen <wcohen at redhat dot com>
- To: "Turgis, Frederic" <f-turgis at ti dot com>
- Cc: "systemtap at sourceware dot org" <systemtap at sourceware dot org>
- Date: Tue, 19 Jul 2011 09:58:31 -0400
- Subject: Re: Systemtap testsuite for arm architecture - results
- References: <13872098A06B02418CF379A158C0F146016100D125@dnce02.ent.ti.com>
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