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: aarch64 systemtap testsuite results


On 05/14/2014 03:24 AM, Jakub Pavelek wrote:
> Hello William,
> 
> many thanks for the update! 
> 
> Is any of the reported issues something that Linaro should work on fixing? Here at Linaro we want to get Systemtap running in our automated testing loop for ARMv8 and we hope to fare better in pass-rates as we have ARM64 kprobes implementation included in Linaro kernel already.
> 
> 

Hi Jakub,

We have a kernel with kprobe patches running on a machine.  However, it seems pretty easy to crash the machine with scripts using the kprobes.  I have a list scripts to try exercise things in different ways to get a better idea how things are failing.  So far it seems that a kprobe firing once works.  When a single probe fires multiple times with an empty probe handler there isn't a problem either.  However, if the probe that does printing in the probe handler then things go wrong.  This might be a problem in the code that systemtap is generating or the systemtap runtime.  Below are the script suggestions to exercise kprobes.

-Will



Start with the very simple single probe:

  stap -kve 'probe syscall.read {printf("hey\n"); exit()}'

Have the same probe point fire twice:

  stap -kve 'global x; probe syscall.read {x++; printf("hey %d\n", x); if (x>1) exit()}'

Have the same probe point fire multiple times with empty body:

  stap -kve 'probe syscall.read {} probe timer.s(1){exit()}'

Have the same probe point fire multiple times:

  stap -kve 'probe syscall.read {printf("hey\n")} probe timer.s(1){exit()}'

Have two probes points fire multiple times with empty body:

  stap -kve 'probe syscall.read, syscall.write {} probe timer.s(1){exit()}'

Have two probes points fire multiple times:

  stap -kve 'probe syscall.read, syscall.write {printf("%s\n",pn())} probe timer.s(1){exit()}'

Have many probe points fire multiple times with empty body:

  stap -kve 'probe syscall.* {} probe timer.s(1){exit()}'


> On 7 May 2014 16:15, William Cohen <wcohen@redhat.com <mailto:wcohen@redhat.com>> wrote:
> 
>     Some actual aarch64 hardware is now available and the testsuite can be run in a ressonable amount of time. The test results show signs of life, but there is definitely room for improvement:
> 
>      https://web.elastic.org/~dejazilla/viewsummary.php?variant=%3D%27aarch64-unknown-linux-gnu%27
> 
>     There are going to be a lot of failures in these tests because the kernel did not have kprobe patches in it. There is also no uprobes support in the kernel.
> 
>     Some other things observed when reviewing the results:
> 
>     -a number of tests failed to build because of missing kernel header hypervisor.h. The kernel-devel rpm appeared to omit some needed header files
> 
>     -tracepoints probe locations did not work.  The probe points are visible in "perf list" but "stap -L 'kernel.trace("*")'" returns nothing.
> 
>     -aarch64 stack backtraces are not yet supported.
> 
>     -Can't find  @cast(sock, "inet_sock", "kernel<net/ip.h>") for
>      stap -v ./systemtap.base/ipaddr1.stp
> 
>     -The preprocessor sets arch to "arm64" rather than "aarch64" "preprocessor basic ops" fails
> 
>     -The nd_syscall probes points are not available
> 
>     -SystemTap could not find locations of $prev or $next arguments for kernel.function("context_switch")
> 
> 
> 
> 
>     -Will
> 
> 
> 
> 
> -- 
> With best regards,
> 
> Jakub Pavelek
> 
> Kernel working group and Android engineering project manager
> Linaro.orgâ Open source software for ARM SoCs
> 


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