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]

[Bug runtime/22582] SystemTap 3.2 stap script compilation error opt


https://sourceware.org/bugzilla/show_bug.cgi?id=22582

--- Comment #6 from Gustavo Moreira <mysecondaccountabc at gmail dot com> ---
(In reply to David Smith from comment #5)
> I took a look at your attachments. Your
> stapconf_1ddada75a347accc585e3d1a06438f1e_713.h file doesn't contain
> STAPCONF_UTRACE_VIA_TRACEPOINTS. This means that your kernel doesn't support
> the 5 tracepoints systemtap needs to do userspace tracing. They are:
> 
> sched_process_fork, sched_process_exit, sched_process_exec, sys_enter, and
> sys_exit
> 
> You can check for these tracepoints via the following:
> 
> ===
> # stap -l 'kernel.trace("sched_process_*")'
> kernel.trace("sched:sched_process_exec")
> kernel.trace("sched:sched_process_exit")
> kernel.trace("sched:sched_process_fork")
> kernel.trace("sched:sched_process_free")
> kernel.trace("sched:sched_process_wait")
> # stap -l 'kernel.trace("sys_*")'
> kernel.trace("raw_syscalls:sys_enter")
> kernel.trace("raw_syscalls:sys_exit")
> ===
> 
> If the sys_enter/sys_exit tracepoints are missing, that would mean your
> kernel doesn't have CONFIG_HAVE_SYSCALL_TRACEPOINTS.


Yeah, it seems the syscall tracepoints are disabled.

# stap -l 'kernel.trace("sched_process_*")'
kernel.trace("sched:sched_process_exit")
kernel.trace("sched:sched_process_fork")
kernel.trace("sched:sched_process_free")
kernel.trace("sched:sched_process_wait")

# stap -l 'kernel.trace("sys_*")'


And unfortunately it seems this kernel version doesn't support syscall
tracepoints for ARM.

~/linux-3.2.93# grep -r HAVE_SYSCALL_TRACEPOINTS arch/*
arch/powerpc/Kconfig:   select HAVE_SYSCALL_TRACEPOINTS
arch/s390/Kconfig:      select HAVE_SYSCALL_TRACEPOINTS
arch/sh/Kconfig:        select HAVE_SYSCALL_TRACEPOINTS
arch/sparc/Kconfig:     select HAVE_SYSCALL_TRACEPOINTS
arch/x86/Kconfig:       select HAVE_SYSCALL_TRACEPOINTS


Wonderful :S

So, let's start again. I will install everything from scratch using a fresh
Debian Jessie with kernel 3.16.0-4 and GCC 4.9.2. Should those be enough?

As per the kernel config features, what exactly does SystemTap need? That's a
bit confusing because different pages say different things. For instance, in
the official wiki for using systemtap with self-built kernels
[https://sourceware.org/systemtap/wiki/SystemTapWithSelfBuiltKernel], it
doesn't mention neither CONFIG_TRACEPOINTS nor CONFIG_HAVE_SYSCALL_TRACEPOINTS.
I know that would depend on what SystemTap features I will use but, let's say,
to have full support. Where can I find the most updated documentation about it?

I've gathered this list from different sources, should this be enough? Do you
recommend to add or remove something?

CONFIG_KPROBES=y
CONFIG_KPROBES_SANITY_TEST=n
CONFIG_KPROBE_EVENT=y
CONFIG_NET_DCCPPROBE=m
CONFIG_NET_SCTPPROBE=m
CONFIG_NET_TCPPROBE=y
CONFIG_DEBUG_INFO=y
CONFIG_DEBUG_INFO_REDUCED=n
CONFIG_ARM_KPROBES_TEST=n
CONFIG_TRACEPOINTS=y
CONFIG_HAVE_SYSCALL_TRACEPOINTS=y


Cheers,
Gus

-- 
You are receiving this mail because:
You are the assignee for the bug.

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