This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: Regarding systemtap support for AArch64
- From: William Cohen <wcohen at redhat dot com>
- To: Masami Hiramatsu <masami dot hiramatsu dot pt at hitachi dot com>
- Cc: systemtap at sourceware dot org, sandeepa dot prabhu at linaro dot org
- Date: Mon, 30 Sep 2013 08:10:56 -0400
- Subject: Re: Regarding systemtap support for AArch64
- Authentication-results: sourceware.org; auth=none
- References: <CA+b37P3S4adOJe+S1RWKVDEzeVLG2Oa4EFqYgeH4cU6SNmvtEQ at mail dot gmail dot com> <1380011243 dot 3958 dot 11921 dot camel at bordewijk dot wildebeest dot org> <52432F3B dot 4020503 at redhat dot com> <CA+b37P13t44vQfS3RwxkCowgqYBAHyUHCNJQtGqxmrqnt_rw6Q at mail dot gmail dot com> <5248E391 dot 3060306 at hitachi dot com>
On 09/29/2013 10:36 PM, Masami Hiramatsu wrote:
> (2013/09/26 12:13), Sandeepa Prabhu wrote:
>> Hi Will, Masami,
>>
>> Nice to hear from you, I am using ARM fast model/Foundation model with
>> ARM v8 upstream kernel and a Linaro minimal busybox based ramdisk,
>> testing with loadable modules for now (so don't have dependency on
>> elfutils or GCC autoconf etc)
>>
>> Would you be interested to use Linaro kprobe work as a base for
>> development and validation of systemtap-aarch64? We are happy to
>> share a public git repo where 'upstream' kernel can be built with
>> kprobes support, which systemtap team can use for verification. I can
>> do this soon as I have most things working locally, except for
>> kretprobes and 'boosting' support(systemtap can be run without these I
>> believe).
>
> Of course I'm interested in that. Actually I've tried to boot up Linaro's
> Aarch64 kernel on a simulator which ARM is distributing.
> As far as I could see (at that time), aarch64 branch already has singlestep
> implementation for debugging, but no primitive kprobes. And we need to know
> the aarch64 ISA for decoding the binary to find the instructions which will
> be affected by the out-of-line execution, like relative jump, call etc.
>
>> Looking forward for a collaboration :-)
>
> Me too ;)
>
> Thanks!
>
Hi All,
I am still trying to get a better kernel running on the aarch64 simulator. Currently the simulator is running and Fedora 19 image and Linux 3.9+ kernel, but I don't have any of the needed kernel-devel stuff for that kernel. As a work around I am using the aarch64 kernel rpms and attempting to build systemtap instrumentation modules using the following rpms:
kernel-3.12.0-0.rc0.git20.1.x2.fc19.aarch64
kernel-devel-3.12.0-0.rc0.git20.1.x2.fc19.aarch64
These kernel rpms are cross compiled so some script executables are for AMD64 rather than aarch64. I had to go through and recompile the script executables. However, I was able to get an instrumentation modules with the current git checkout for simple hello world:
$ sudo ../install/bin/stap -v -m hello -r 3.12.0-0.rc0.git20.1.x2.fc19.aarch64 -p4 -k -e 'probe begin {printf("hello world\n")}'
Pass 1: parsed user script and 92 library script(s) using 38784virt/30080res/5504shr/23360data kb, in 4730usr/30sys/4763real ms.
Pass 2: analyzed script: 1 probe(s), 0 function(s), 0 embed(s), 0 global(s) using 39296virt/32000res/5952shr/23872data kb, in 80usr/0sys/81real ms.
Pass 3: translated to C into "/tmp/stapzSdKrS/hello_src.c" using 39296virt/32000res/5952shr/23872data kb, in 10usr/0sys/7real ms.
hello.ko
Pass 4: compiled C into "hello.ko" in 114710usr/3620sys/120572real ms.
Keeping temporary directory "/tmp/stapzSdKrS"
There are still other things that need to be fixed in systemtap for aarch64. However, if you are feeling adventurous you might try the current systemtap git checkout on aarch64.
-Will