Test suite results for ARM with uprobes

Wade Farnsworth wade_farnsworth@mentor.com
Thu Dec 8 19:24:00 GMT 2011


Hi Mark,

Thanks for your analysis!

Mark Wielaard wrote:
 > On Tue, 2011-12-06 at 12:45 -0700, Wade Farnsworth wrote:
[...]
>> First, four tests are causing hangs, panics or other kernel errors.
>
> In general I found that arm kernels pre-3.0 (2.6.40 in fedora speak)
> were somewhat unstable. There were lots of kprobe cleanups in 3.0.
>

Ah, yes.  You did mention that previously.  I'll see about retesting 
with something more recent.

[...]
>> FAIL: debugpath-good (eof) [This one puzzles me.  I've built with
>> CONFIG_DEBUG_INFO enabled and the build directory exists in
>> /lib/modules/`uname -r`/build.  Is there something else that I need to
>> do to get systemtap access to the debug info?]
>
> It fails because:
> spawn env SYSTEMTAP_DEBUGINFO_PATH=/lib/modules/2.6.37.6-yocto-standard+/build s
> tap -e probe kernel.function("vfs_read") {} -wp2
> semantic error: missing arm kernel/module debuginfo under '/lib/modules/2.6.37.6
> -yocto-standard+/build' while resolving probe point kernel.function("vfs_read")
> Pass 2: analysis failed.  Try again with another '--vp 01' option.
> FAIL: debugpath-good (eof)
>
> It PASSes for me with:
> spawn env SYSTEMTAP_DEBUGINFO_PATH=/usr/lib/debug stap -e probe kernel.function(
> "vfs_read") {} -wp2
> # probes
> kernel.function("vfs_read@fs/read_write.c:306") /* pc=_stext+0x1445e0 */ /*<- k
> ernel.function("vfs_read") */
> PASS: debugpath-good
>
> The debugpath.exp testcase does:
>
> # Guess where debuginfo is installed
> if [file isdirectory /usr/lib/debug] {
>    set debuginfo_path "/usr/lib/debug"
> } elseif [file isdirectory /lib/modules/$uname/build] {
>    set debuginfo_path "/lib/modules/$uname/build"
> } else {
>    set debuginfo_path "/lib/modules/$uname"
> }
>
> So, I guess it is guessing wrongly?
>

Hmm, I do have the debuginfo-enabled vmlinux in 
/lib/modules/2.6.37.6-yocto-standard+/build, which stap seems to 
otherwise be able to find.  For some reason it seems to only occur when 
SYSTEMTAP_DEBUGINFO_PATH is used.  I'll do some more digging.

[...]
>
>> FAIL: inlinedvars-m32-O
>> FAIL: inlinedvars-m32-O2
>> [line 1: expected "call (22,84)"
>> Got "  (84,22)"]
>
> That is interesting, it switches the numbers around?
> It obviously doesn't run for me. It would be interesting to see the
> debuginfo debug-dump of the created binary, the disassembly of function
> "m" and the generated stap script C source code. Could you create a bug
> report with that info in it?

Done.  http://sourceware.org/bugzilla/show_bug.cgi?id=13485

[...]
>
>> FAIL: sdt -O2  uprobe
>> FAIL: sdt c89  uprobe
>> FAIL: sdt c99  uprobe
>> FAIL: sdt c99 -pedantic uprobe
>> FAIL: sdt gnu99  uprobe
>> FAIL: sdt gnu99 -pedantic uprobe
>> FAIL: sdt c++98  uprobe
>> FAIL: sdt c++98 -pedantic uprobe
>> FAIL: sdt gnu++98  uprobe
>> FAIL: sdt gnu++98 -pedantic uprobe
>> FAIL: sdt c++0x  uprobe
>> FAIL: sdt c++0x -pedantic uprobe
>> FAIL: sdt gnu++0x  uprobe
>> FAIL: sdt gnu++0x -pedantic uprobe
>> [semantic error: unable to find local 'arg1' near pc 0x8408  in  call1
>> /home/root/stuff/systemtap/testsuite/systemtap.base/sdt.c (
>> (alternatives: $a): identifier '$arg1' at
>> /home/root/stuff/systemtap/testsuite/systemtap.base/sdt.stp:8:18.]
>>
>> FAIL: sdt_va_args base
>> FAIL: sdt_va_args c89
>> FAIL: sdt_va_args c99
>> FAIL: sdt_va_args gnu99
>> FAIL: sdt_va_args c++98
>> FAIL: sdt_va_args gnu++98
>> FAIL: sdt_va_args c++0x
>> FAIL: sdt_va_args gnu++0x
>> [similar to the sdt failures above]
>
> I am unable to run these tests, but it would be interesting to see
> debuginfo dump, disassembly and generated stap script C source for
> these.

The failure occurs before the C source is generated I have uploaded the 
other info to:
http://dl.dropbox.com/u/40714612/stap-debug-files.tar.gz

[...]
>> FAIL: vta-test-m32-O
>> FAIL: vta-test-m32-O2
>> [semantic error: failed to retrieve location attribute for local 'a'
>> (dieoffset: 0x181): identifier '$a' at
>> /home/root/stuff/systemtap/testsuite/systemtap.base/vta-test.stp:2:27]
>
> I cannot run this tests. It would be interesting to see the debuginfo
> dump for the generated binary.

Also in the tarball on dropbox.

[...]
>
>> FAIL: buildok/seventeen.stp [semantic error: unable to find local
>> 'nfs_program' near pc 0xc01bc714  in  nfs_fsync_dir]
>
> This one does PASS for me. We should probably compare generated
> debuginfo for our kernels.
>

Kernel debuginfo is also in the tarball.

[...]
>> FAIL: semok/config_number.stp [semantic error: probe point mismatch at
>> position 0]
>
> This one PASSes for me.
> What is CONFIG_NR_CPU set to for your kernel?
> It is set to 2 for me.
>

CONFIG_SMP is not set, so CONFIG_NR_CPU doesn't exist in my config file. 
  Maybe stap treats that as being equal to zero?

I'll keep poking at the other failures.  Thanks again!

Regards,

-Wade Farnsworth



More information about the Systemtap mailing list