]> sourceware.org Git - systemtap.git/log
systemtap.git
10 years agoPR16716 partial fix: Fix types in syscall.sysfs.
David Smith [Tue, 29 Apr 2014 17:25:51 +0000 (12:25 -0500)]
PR16716 partial fix: Fix types in syscall.sysfs.

* tapset/linux/syscalls2.stp: Fixed types in syscall.sysfs. Improved
  output formatting.
* tapset/linux/syscalls2.stp: Improved output formatting in
  nd_syscall.sysfs.
* testsuite/systemtap.syscall/sysfs.c: New test case.

10 years agoNEWS: typos in --dump-functions blurb
Jonathan Lebon [Tue, 29 Apr 2014 16:15:59 +0000 (12:15 -0400)]
NEWS: typos in --dump-functions blurb

10 years agoPR16716 partial fix: Fix types in syscall.{dup,dup2,dup3}.
David Smith [Tue, 29 Apr 2014 15:54:27 +0000 (10:54 -0500)]
PR16716 partial fix: Fix types in syscall.{dup,dup2,dup3}.

* tapset/linux/syscalls.stp: Fixed types in syscall.{dup,dup2,dup3}.
* tapset/linux/aux_syscalls.stp (_dup3_flag_str): Just use the open mode
  flags list.
* testsuite/systemtap.syscall/dup.c: Add more tests.

10 years agoupdate copyrights
Jonathan Lebon [Tue, 29 Apr 2014 15:42:41 +0000 (11:42 -0400)]
update copyrights

Update the Red Hat copyrights using:

scripts/update-copyright "Red Hat" redhat.com

10 years agonew helper script scripts/update-copyrights
Jonathan Lebon [Thu, 24 Apr 2014 16:53:06 +0000 (12:53 -0400)]
new helper script scripts/update-copyrights

This script looks at all the tracked files in the tree that are
copyrighted by <company> and updates the copyright year if they've been
modified this year by a user at <domain>.

Usage example: scripts/update-copyrights "Red Hat" redhat.com

10 years agoBZ1092147: ppc64le: don't require prelink
Brent Baude [Mon, 28 Apr 2014 20:39:19 +0000 (16:39 -0400)]
BZ1092147: ppc64le: don't require prelink

10 years agoPR16406: fix build-id false mismatch for userspace-program vs. kernel-module
Frank Ch. Eigler [Mon, 28 Apr 2014 19:55:56 +0000 (15:55 -0400)]
PR16406: fix build-id false mismatch for userspace-program vs. kernel-module

The translate.cxx-emitted _stp_module array has two name fields, .name
and .path, which were ambiguous as to whether each was a kernel module
or a userspace executable.  The .name string was just the basename,
and it was used in the near-startup-time _stp_module_check().  If the
userspace program matched a kernel module, bangorama (a false build-id
mismatch error at startup) .. unless --all-modules was given, in
which case the kernel modules won the duplication race.

The correction has a couple of parts.  First, the _stp_module .name is
made the same as the fully-/-qualified .path for userspace programs.
Second, _stp_module_check checks all kernel+module bits it knows
about, not just the first one.  Hand-tested with a variety of runs,
and with the *myproc.exp test, which is now forced to try to conflict.

* translate.cxx (dump_unwindsym_ctx): Make userspace _stp_module->name's
  fully-/-qualified.
* runtime/sym.c (_stp_module_check): Check all and only kernel-space
  build-ids.  Filter by _stp_module->name.
  (stp_kmodule_check, stp_usermodule_check): WARN_ON wrong-polarity
  incoming module/path name.
* testsuite/.../unprivileged_myproc.exp: Run 'modprobe loop'

10 years agounprivileged_myproc.exp: only KFAIL .callee(string)
Jonathan Lebon [Mon, 28 Apr 2014 21:00:39 +0000 (17:00 -0400)]
unprivileged_myproc.exp: only KFAIL .callee(string)

This is a followup to the followup commit 9d4241d. The .callees and
.callees(number) probes will always work because they will match ibar().
Only the .callee(string), which is turned to .callee("tbar"), should be
KFAILed, since it will definitely fail for GCC < 4.7.

10 years agounprivileged_myproc.exp: adjust loop.c
Jonathan Lebon [Mon, 28 Apr 2014 20:24:32 +0000 (16:24 -0400)]
unprivileged_myproc.exp: adjust loop.c

The process("./loop").function("ibar").inline probe was failing in this
test because of a bug in GCC (RHBZ1092144). In a nutshell, GCC unrolls
the loop once, resulting in ibar() being called twice: once outside the
loop and once inside. However, only the former gets a corresponding
inlined_subroutine DIE. As a result, the SystemTap probe only fires once
at startup rather than at every iteration.

This patch takes out the if-expression in the loop so that GCC doesn't
need to do any unrolling and we end up with two inlined_subroutine DIEs.

10 years agotask.stp: fix typo in task_rlimit() description
Jonathan Lebon [Mon, 28 Apr 2014 14:52:58 +0000 (10:52 -0400)]
task.stp: fix typo in task_rlimit() description

10 years agoPR16716 partial fix: Fix types in syscall.{inotify_add_watch,inotify_rm_watch}
David Smith [Mon, 28 Apr 2014 20:32:32 +0000 (15:32 -0500)]
PR16716 partial fix: Fix types in syscall.{inotify_add_watch,inotify_rm_watch}

* tapset/linux/syscalls.stp: Fix types in
  syscall.{inotify_add_watch,inotify_rm_watch}.
* tapset/linux/nd_syscalls.stp: Fix types in nd_syscall.inotify_rm_watch.
* tapset/linux/aux_syscalls.stp (_inotify_watch_mask_str): Updated and
  improved to display unknown values.
  (_inotify_init1_flag_str): Ditto.
* testsuite/systemtap.syscall/inotify.c: Add more tests.

10 years agoPR16716 partial fix: Fix types in syscall.{close,creat}.
David Smith [Mon, 28 Apr 2014 18:22:26 +0000 (13:22 -0500)]
PR16716 partial fix: Fix types in syscall.{close,creat}.

* tapset/linux/syscalls.stp: Fixed types in syscall.{close,creat}.
* tapset/linux/syscalls.stp: Fixed types in syscall.creat.
* tapset/linux/aux_syscalls.stp (_sys_open_flag_str): Updated and improved
  to display unknown values.
* testsuite/systemtap.syscall/openclose.c: Added more tests.

10 years agoAdd java backtracing and self unwinding to NEWS
Lukas Berk [Mon, 28 Apr 2014 15:26:24 +0000 (11:26 -0400)]
Add java backtracing and self unwinding to NEWS

*NEWS - add news blurbs

10 years agosyscall testsuite: accept4 SOCK_CLOEXEC
Frank Ch. Eigler [Mon, 28 Apr 2014 14:55:19 +0000 (10:55 -0400)]
syscall testsuite: accept4 SOCK_CLOEXEC

Add a conditional #define for RHEL5 era kernels.

10 years agosyscall testsuite test.tcl: use staprun -R for reused module
Frank Ch. Eigler [Mon, 28 Apr 2014 14:53:30 +0000 (10:53 -0400)]
syscall testsuite test.tcl: use staprun -R for reused module

It's been occasionally observed that a single syscall test case can
leave the [nd_]syscall.ko module loaded, which blocks further testing.
staprun -R can rename the .ko, to avoid the chain failure.

10 years agounprivileged_myproc testsuite: mark .callees tests kfail for gcc < 4.7
Frank Ch. Eigler [Sun, 27 Apr 2014 22:20:26 +0000 (18:20 -0400)]
unprivileged_myproc testsuite: mark .callees tests kfail for gcc < 4.7

This is a followup to commit 081e9217c8d0, this time on rhel6.

10 years agoruntime rhel6: avoid kernel crash with buildid checks for process(PID#) probes
Frank Ch. Eigler [Sun, 27 Apr 2014 21:16:29 +0000 (17:16 -0400)]
runtime rhel6: avoid kernel crash with buildid checks for process(PID#) probes

Crash observed on rhel6 (utrace -> process(NUM).statement(ADDR).absolute probes)
in unprivileged_myproc.exp test case.

* runtime/linux/uprobes-common.c (stap_uprobe_change_plus): Don't try to check
  process against _stp_module entry, if we don't even have a process pathname.
* runtime/sym.c (_stp_usermodule_check): WARN_ON incoming null pathname.

10 years agotapset: Deal with missing fs in i386/register.stp
Josh Stone [Sat, 26 Apr 2014 00:17:03 +0000 (17:17 -0700)]
tapset: Deal with missing fs in i386/register.stp

Older kernels didn't have fs in pt_regs, so the following _reg_offsets
were incorrect.  Make fs conditional on stapconf, and use a counter to
more easily keep track of the differences.

10 years agoruntime: Fix synthesized regs on ix86
Josh Stone [Sat, 26 Apr 2014 00:12:18 +0000 (17:12 -0700)]
runtime: Fix synthesized regs on ix86

The ix86 register names and offsets in the inline asm of
arch_unw_init_frame_info are now fixed, including stapconf to deal with
fs/xfs/gs changes over time.

x86_64 is updated to match the same style of access.

10 years agobuildrun: Don't bother filtering -fno-asynchonous-unwind-tables
Josh Stone [Fri, 25 Apr 2014 23:05:50 +0000 (16:05 -0700)]
buildrun: Don't bother filtering -fno-asynchonous-unwind-tables

Our -fasynchronous-unwind-tables in EXTRA_CFLAGS takes precedence just
fine over kbuild's -fno-asynchonous-unwind-tables setting.

10 years agoruntime: Extend sect_attrs use back to 2.6.11
Josh Stone [Fri, 25 Apr 2014 23:01:06 +0000 (16:01 -0700)]
runtime: Extend sect_attrs use back to 2.6.11

Only 2.6.19+ has sect_attrs->nsections, but from 2.6.11 one can count
where the NULL terminator is on sect_attrs->grp.attrs.

10 years agoruntime: Initialize _stp_module_self from THIS_MODULE
Josh Stone [Fri, 25 Apr 2014 22:25:10 +0000 (15:25 -0700)]
runtime: Initialize _stp_module_self from THIS_MODULE

By iterating the sections of THIS_MODULE directly, rather than from
STP_RELOCATION messages, we can more safely contain the eh_frame length
determination.  As an upper bound, the length can be no more than the
distance to the next section in memory.  Then when we walk fde records,
we can sanity check that the offsets make sense.

10 years agosyscalls tapset: adapt to absence of uselib(2) syscall
Frank Ch. Eigler [Fri, 25 Apr 2014 23:14:39 +0000 (19:14 -0400)]
syscalls tapset: adapt to absence of uselib(2) syscall

LKML commit 69369a70 made it possible to configure a kernel without
uselib(2) support.  Mark these tapset aliases optional so syscall.*
type probing works on !CONFIG_USELIB kernels.

10 years agoPR6961 cont'd: add a terminating 0x00000000 word to module .ko .eh_frame
Frank Ch. Eigler [Fri, 25 Apr 2014 19:46:06 +0000 (15:46 -0400)]
PR6961 cont'd: add a terminating 0x00000000 word to module .ko .eh_frame

This is necessary because now we parse our own module's .eh_frame
lightly at startup time, and must reliably find the end of the
entries.  (We don't get the crtend.o goodies from userspace.)
We also reject 8-byte extended-length cases, should they ever come up.

* session.* (op_create_auxiliary): Make possible to designate aux files
  as trailers (coming in after the main generated .o file) instead of before.
* buildrun.cxx (compile_pass): Add s.auxiliary_output trailers.
* translate.cxx (emit_symbol_data_done): T-800 returns from the future.
* runtime/sym.c (_stp_kmodule_update_address): Reject 8-byte extended-length
  fields in .eh_frame.

10 years agostmt_inlines.exp: mark untested for older GCCs
Jonathan Lebon [Fri, 25 Apr 2014 19:35:27 +0000 (15:35 -0400)]
stmt_inlines.exp: mark untested for older GCCs

The RHEL5 GCC does not output the necessary debuginfo in order to do
this test, so mark it untested.

10 years agostatement.exp: adapt for RHEL5
Jonathan Lebon [Fri, 25 Apr 2014 19:00:07 +0000 (15:00 -0400)]
statement.exp: adapt for RHEL5

In GCC < 4.4, the decl_line is the line holding the opening brace, not the
line with the identifier. Since the decl_line is the basis for relative
line number statement probes, this discrepancy was causing statement.exp
to have some RELATIVE subtest failures.

Add another empty line so that main@statement.c+4 always falls on an
empty line, regardless of which is the decl_line.

10 years agotestsuite: adapt to RHEL5
Jonathan Lebon [Fri, 25 Apr 2014 16:01:52 +0000 (12:01 -0400)]
testsuite: adapt to RHEL5

- callee.exp: set as untested if GCC or elfutils too old
- dump_functions.exp: RHEL5 exec doesn't support -ignorestderr
- dump_probe_aliases.exp: ditto

10 years agolib/systemtap.exp: add strverscmp proc
Jonathan Lebon [Fri, 25 Apr 2014 15:59:31 +0000 (11:59 -0400)]
lib/systemtap.exp: add strverscmp proc

There are times when we want to set tests as 'untested' if certain
component versions are not met. The new proc strverscmp will serve well
there.

10 years agolib/systemtap.exp: get better GCC and elfutils version info
Jonathan Lebon [Fri, 25 Apr 2014 15:53:12 +0000 (11:53 -0400)]
lib/systemtap.exp: get better GCC and elfutils version info

Rather than having the global GCC_Version hold the whole
"gcc --version | head -n 1" string, create a new GCC_FullVersion for
that and make GCC_Version only hold the raw version (e.g. "4.1.2").
This will be useful later on for version comparison.

Create new ELF_Version which holds the elfutils library version against
which SystemTap was compiled.

10 years agosyscall testsuite: syslog.c: make nonblocking
Frank Ch. Eigler [Thu, 24 Apr 2014 20:33:43 +0000 (16:33 -0400)]
syscall testsuite: syslog.c: make nonblocking

We need to use SYSLOG_ACTION_READ_ALL, not SYSLOG_ACTION_READ,
to ensure our test program quits quickly.

10 years agoChange how we assign _stp_module_self name/path to use THIS_MODULE
Lukas Berk [Thu, 24 Apr 2014 20:22:18 +0000 (16:22 -0400)]
Change how we assign _stp_module_self name/path to use THIS_MODULE

*runtime/sym.c - change _stp_module_self name/path member variables to
         be assigned using THIS_MODULE->name instead of strcpy

10 years agoMerge branch 'master' of ssh://sourceware.org/git/systemtap
David Smith [Wed, 23 Apr 2014 21:00:58 +0000 (16:00 -0500)]
Merge branch 'master' of ssh://sourceware.org/git/systemtap

10 years agoPR16716partial fix: Fix types in syscall.{fchmod,fchown,fchownat}.
David Smith [Wed, 23 Apr 2014 21:00:31 +0000 (16:00 -0500)]
PR16716partial fix: Fix types in syscall.{fchmod,fchown,fchownat}.

*tapset/linux/syscalls.stp: Fix types in syscall.{fchmod,fchown,fchownat}.
*testsuite/systemtap.syscall/chmod.c: Added more tests.

10 years agoMerge branch 'jistone/pr16844'
Josh Stone [Wed, 23 Apr 2014 20:36:22 +0000 (13:36 -0700)]
Merge branch 'jistone/pr16844'

10 years agoMerge branch 'master' of ssh://sourceware.org/git/systemtap into lberk/backtrace
Lukas Berk [Wed, 23 Apr 2014 20:18:58 +0000 (16:18 -0400)]
Merge branch 'master' of ssh://sourceware.org/git/systemtap into lberk/backtrace

10 years agopr16806.exp: new testcase
Jonathan Lebon [Wed, 23 Apr 2014 19:48:37 +0000 (15:48 -0400)]
pr16806.exp: new testcase

- pr16806.exp: new testcase to verify proper tracepoint unregistration
  and utrace shutdown.
- loop.c: don't call usleep() if NOSLEEP is defined. This is used by
  pr16806.exp, which requires it to make conditions more racy.
- unprivileged_myproc.exp: simplify path to C file.
- unprivileged_probes.exp: ditto.

10 years agostmt_inlines.exp: rename cleanup proc
Jonathan Lebon [Wed, 23 Apr 2014 18:55:13 +0000 (14:55 -0400)]
stmt_inlines.exp: rename cleanup proc

There is already a proc named cleanup in lib/systemtap.exp. Rename the
one in stmt_inlines.exp so we don't accidentally redefine it.

10 years agoFix typo in systemtap.spec file rpm scriptlet
Lukas Berk [Wed, 23 Apr 2014 19:59:03 +0000 (15:59 -0400)]
Fix typo in systemtap.spec file rpm scriptlet

*systemtap.spec - switch directory check condition to use '${archdir}'
  variable instead of %{archdir}

10 years agoPR16716 partial fix: Better types passed to _dfd_str() from syscall probes.
David Smith [Wed, 23 Apr 2014 19:37:51 +0000 (14:37 -0500)]
PR16716 partial fix: Better types passed to _dfd_str() from syscall probes.

* tapset/linux/syscalls.stp: Fixed calls to _dfd_str() in
  facessat, fchownat, futimesat, compat_futimesat, and linkat syscall
  probes.
  (syscall.futimesat): Added 'dirfd_str' variable. Fixed nesting.
  (syscall.compat_futimesat): Ditto.
* tapset/linux/nd_syscalls.stp (nd_syscall.futimesat): Added 'dirfd_str'
  variable. Fixed nesting.
  (nd_syscall.compat_futimesat): Ditto.
* tapset/linux/syscalls2.stp: Fixed calls to _dfd_str() in openat,
  readlinkat, renameat, symlinkat, unlinkat, and utimensat syscall
  probes.
  (syscall.openat): Added 'dfd' and 'dfd_str' variables.
  (syscall.readlinkat): Added 'dfd_str' variable.
  (syscall.utimensat): Added 'dfd', 'dfd_str', 'filename_uaddr',
  'filename', 'tsp_uaddr', 'flags', and 'flags_str' variables.
  (syscall.compat_utimensat): Ditto.
* tapset/linux/nd_syscalls2.stp (nd_syscall.openat): Added 'dfd' and
  'dfd_str' variables.
  (nd_syscall.readlinkat): Added 'dfd_str' variable.
  (nd_syscall.utimensat): Added 'dfd', 'dfd_str', 'filename_uaddr',
  'filename', 'tsp_uaddr', 'flags', and 'flags_str' variables.
  (nd_syscall.compat_utimensat): Ditto.
* tapset/linux/aux_syscalls.stp (_dfd_str): Improve to not ignore
  compatibility mode wrong value (instead, values passed in were fixed).
* runtime/linux/compat_unistd.h: Add '__NR_compat_futimesat' define.
* testsuite/systemtap.syscall/alarm.c: Add more tests.
* testsuite/systemtap.syscall/futimes.c: Ditto.
* testsuite/buildok/syscalls-detailed.stp: Added basic test for new
  variables.
* testsuite/buildok/syscalls2-detailed.stp: Ditto.
* testsuite/buildok/nd_syscalls-detailed.stp: Ditto.
* testsuite/buildok/nd_syscalls2-detailed.stp: Ditto.

10 years agoPR16844: Direct messages to _stp_dbug
Josh Stone [Wed, 23 Apr 2014 00:14:36 +0000 (17:14 -0700)]
PR16844: Direct messages to _stp_dbug

Adds dbug_tp(), with a new DEBUG_TRACEPOINTS flag to control verbosity.
All printk and WARNs are removed in favor of dbug_tp.

10 years agoPR16844: Use _stp_kmalloc_gfp and _stp_kfree
Josh Stone [Tue, 22 Apr 2014 21:27:26 +0000 (14:27 -0700)]
PR16844: Use _stp_kmalloc_gfp and _stp_kfree

10 years agoPR16844: Initial adaptation for kernel 3.15 tracepoints
Josh Stone [Tue, 22 Apr 2014 16:07:42 +0000 (09:07 -0700)]
PR16844: Initial adaptation for kernel 3.15 tracepoints

This hides the tracepoint version adaptations in stp_tracepoint.h.  For
older kernel versions, that header is sufficient.  With 3.15 we have to
do extra bookkeeping ourselves, so it pulls in stp_tracepoints.c, which
is borrowed almost verbatim from lttng.  It seems to work well, but we
can still decide if we want to take a different approach.

10 years agotestsuite: don't mandate presence of -m32/-m64 libc/stdc++ devel
Frank Ch. Eigler [Tue, 22 Apr 2014 21:11:00 +0000 (17:11 -0400)]
testsuite: don't mandate presence of -m32/-m64 libc/stdc++ devel

Some distros (I'm looking at you, Ubuntu 14) don't make it easy to
build several permutations of -m32 / -m64 binaries.

10 years agoCorrect the architecture for the libHelper_ppc64.so name
Lukas Berk [Tue, 22 Apr 2014 16:36:57 +0000 (12:36 -0400)]
Correct the architecture for the libHelper_ppc64.so name

*java/Makefile.am - override the java_arch name (powerpc64) with ppc64
*java/Makefile.in - generated from an autoreconf

10 years agostmt_inlines.exp: testcase for statement probes in inlines
Jonathan Lebon [Tue, 22 Apr 2014 16:16:49 +0000 (12:16 -0400)]
stmt_inlines.exp: testcase for statement probes in inlines

This testcase verifies our ability to place probes on statements in
functions that have been inlined multiple times.

10 years agostatement.exp and stmt_rel.exp: a few tweaks
Jonathan Lebon [Fri, 18 Apr 2014 04:49:20 +0000 (00:49 -0400)]
statement.exp and stmt_rel.exp: a few tweaks

- stmt_rel.exp: small fix
- statement.exp: test a few more things

10 years agocallee.exp: fix inline compilation
Jonathan Lebon [Tue, 22 Apr 2014 15:08:30 +0000 (11:08 -0400)]
callee.exp: fix inline compilation

GCC won't emit a warning if we also use the inline keyword.

10 years agostapprobes.3stap: give @defined() hint for $return
Jonathan Lebon [Tue, 22 Apr 2014 14:49:14 +0000 (10:49 -0400)]
stapprobes.3stap: give @defined() hint for $return

10 years agoPR16716 partial fix: Better types in 'syscall.{access,faccessat}'.
David Smith [Tue, 22 Apr 2014 15:32:05 +0000 (10:32 -0500)]
PR16716 partial fix: Better types in 'syscall.{access,faccessat}'.

* tapset/linux/syscalls.stp: Fix 'mode' variable type in
  'syscall.{access,faccessat}'.
* tapset/linux/aux_syscall.stp: Convert to use _stp_lookup_or_str().
* testsuite/systemtap.syscall/access.c (main): Add tests.

10 years agosession.cxx: print found System.map file name for report, not first one tried
Frank Ch. Eigler [Tue, 22 Apr 2014 15:06:50 +0000 (11:06 -0400)]
session.cxx: print found System.map file name for report, not first one tried

10 years agosession.cxx: also print kernel_functions[] sizes at -vvv verbosity
Frank Ch. Eigler [Tue, 22 Apr 2014 15:04:54 +0000 (11:04 -0400)]
session.cxx: also print kernel_functions[] sizes at -vvv verbosity

10 years agoStapbm uses netstat, require it for runtime-java
Lukas Berk [Tue, 22 Apr 2014 14:32:36 +0000 (10:32 -0400)]
Stapbm uses netstat, require it for runtime-java

*systemtap.spec - require net-tools for netstat use in stapbm/runtime-java

10 years agoMerge branch 'master' of ssh://sourceware.org/git/systemtap
David Smith [Tue, 22 Apr 2014 13:43:26 +0000 (08:43 -0500)]
Merge branch 'master' of ssh://sourceware.org/git/systemtap

10 years agoPR16716 partial fix: Better types in 'syscall.{swapon,syslog}'.
David Smith [Tue, 22 Apr 2014 13:42:59 +0000 (08:42 -0500)]
PR16716 partial fix: Better types in 'syscall.{swapon,syslog}'.

* tapset/linux/syscalls2.stp: Fix types in 'syscall.syslog' and
  'syscall.swapon'. In 'syscall.swapon', decode the flags in the new
  'swapflags' variable.
* tapset/linux/nd_syscalls2.stp: In 'nd_syscall.swapon', decode the flags
  in the new 'swapflags' variable.
* tapset/linux/aux_syscalls.stp (_swapon_flags_str): New function.
* tapset/uconversions.stp (user_string_n2_quoted): If we're in a compat
  task, when printing the pointer value as a number, don't expand it to
  64-bits.
* testsuite/systemtap.syscall/swap.c: Added more tests.
* testsuite/systemtap.syscall/syslog.c: New test case.
* testsuite/buildok/syscalls2-detailed.stp: Added new 'swapflags' variable.
* testsuite/buildok/nd_syscalls2-detailed.stp: Ditto.

10 years agoAdd python support tapset example.
Stan Cox [Tue, 22 Apr 2014 13:37:16 +0000 (09:37 -0400)]
Add python support tapset example.

* systemtap.examples/general/tapset/(python2.stp,python3.stp,python.stpm): Python support tapset
* systemtap.examples/general/(pyexample.meta,pyexample.stp,pyexample.py):  Use it.

10 years agoPR16716 partial fix: Better types in 'syscall.{getpriority,setpriority}'.
David Smith [Mon, 21 Apr 2014 18:43:33 +0000 (13:43 -0500)]
PR16716 partial fix: Better types in 'syscall.{getpriority,setpriority}'.

* tapset/linux/syscalls.stp: Fix types in 'syscall.getpriority'.
* tapset/linux/syscalls2.stp: Fix types in 'syscall.setpriority'.
* tapset/linux/aux_syscalls.stp (_priority_which_str): Convert to use
  _stp_lookup_str().
* testsuite/systemtap.syscall/getpriority.c: New test case.
* testsuite/systemtap.syscall/setpriority.c: Ditto.

10 years agoPR16716 partial fix: Better types in 'syscall.{getpgid,reboot,setpgid}'.
David Smith [Mon, 21 Apr 2014 17:52:26 +0000 (12:52 -0500)]
PR16716 partial fix: Better types in 'syscall.{getpgid,reboot,setpgid}'.

* tapset/linux/syscalls.stp: Fix types in 'syscall.getpgid'.
* tapset/linux/syscalls2.stp: Fix types in 'syscall.reboot' and
  'syscall.setpgid'.
* tapset/linux/x86_64/syscalls.stp: Fix nesting in 'syscall.mmap2'.
* tapset/linux/x86_64/nd_syscalls.stp: Ditto.
* tapset/linux/aux_syscalls.stp (_reboot_magic_str): Convert to use
  _stp_lookup_str().
  (_reboot_flag_str): Ditto.
* runtime/linux/compat_unistd.h: Added mmap2 defines.
* testsuite/systemtap.syscall/pgid.c (main): Add more tests.
* testsuite/systemtap.syscall/reboot.c: New test case.

10 years agotapset: set _shutdown_how_str and _madvice_advice_str :string
Josh Stone [Fri, 18 Apr 2014 01:27:01 +0000 (18:27 -0700)]
tapset: set _shutdown_how_str and _madvice_advice_str :string

These were failing buildok/aux_syscalls-embedded.stp, because print()
can't figure out their types implicitly.

10 years agotapset: mark _sched_policy_str() as pure and :string
Josh Stone [Fri, 18 Apr 2014 01:14:06 +0000 (18:14 -0700)]
tapset: mark _sched_policy_str() as pure and :string

This was causing issues in any script that pulled in aux_syscalls, but
didn't use _sched_policy_str().  Since it wasn't pure, it couldn't be
elided, and since it wasn't explicitly declared :string, there was no
type deduction to define its STAP_RETVALUE.

10 years agotestsuite: tighten warn_overflow.exp verbosity to just pass-5
Josh Stone [Fri, 18 Apr 2014 01:14:57 +0000 (18:14 -0700)]
testsuite: tighten warn_overflow.exp verbosity to just pass-5

10 years agotestsuite: don't mix -p2 and -l in labels.exp
Josh Stone [Fri, 18 Apr 2014 00:54:01 +0000 (17:54 -0700)]
testsuite: don't mix -p2 and -l in labels.exp

Since commit bba368c5c5fea, -p2 and -l are exclusive options, even
though internally they are similar.

Furthermore, "labels exe .statement" and "labels so .statement" had this
failure masked, because they were looking for the absence of the error
"semantic error: no match" rather than the presence of actual matches.
Thus the option-validating error didn't trigger failure before.

10 years agoPrevent lock-recursion in _stp_ctl_send
Josh Stone [Thu, 17 Apr 2014 21:32:40 +0000 (14:32 -0700)]
Prevent lock-recursion in _stp_ctl_send

In rare cases, we may hit a probe while the transport layer is holding a
spinlock, and that probe may call _stp_ctl_send which tries to grab the
same and deadlocks.  This is a bit easier to trigger on lockdep-enabled
kernels with the lock_acquired tracepoint.

This patch refactors the context->busy state management into get/put
context, and those areas which grab probe-sensitive locks now wrap
themselves with a context to stay comfortably free of probes.

Tangentially, the dyninst side abandons the busy flag, as it already had
a tls_context pointer to prevent direct recursion and a mutex for
exclusive access across all processes.

DEBUG_REENTRANCY is an unfortunate casualty, because we can't safely
call _stp_warn when the busy context may be from those held locks.

10 years agoNEWS: add blurb re. statement probes
Jonathan Lebon [Thu, 17 Apr 2014 21:43:29 +0000 (17:43 -0400)]
NEWS: add blurb re. statement probes

10 years agoMerge branch 'jlebon/pr16615'
Jonathan Lebon [Thu, 17 Apr 2014 21:42:52 +0000 (17:42 -0400)]
Merge branch 'jlebon/pr16615'

10 years agostmt_rel.exp: improve coverage
Jonathan Lebon [Thu, 17 Apr 2014 21:34:24 +0000 (17:34 -0400)]
stmt_rel.exp: improve coverage

The testcase previously only tested that specific relative linenos in
bio_init() were valid and that there were at least 3 linenos available
for probing.

We now improve this test by checking that probes listed by the wildcard
lineno are all accessible by relative numbering as well. As a sanity
check, we check that bio_init() has at least 3 linenos available, as
before.

10 years agostmt_rel_user.exp: generalize it
Jonathan Lebon [Thu, 17 Apr 2014 21:32:44 +0000 (17:32 -0400)]
stmt_rel_user.exp: generalize it

Since only stmt_rel_user.exp uses stmt_rel.c, it's more fitting to
rename it and make the testcase refer to it in a more general way.

10 years agotestsuite: adapt to new statement probes
Jonathan Lebon [Thu, 17 Apr 2014 18:05:38 +0000 (14:05 -0400)]
testsuite: adapt to new statement probes

- implicitptr.exp: set lineno to 13. 7 falls outside the function.
- library.stp: adjust relative lineno
- stmt_rel_user.exp: ditto

10 years agoadd DWARF_LINE* macros to help diagnosis
Jonathan Lebon [Thu, 17 Apr 2014 16:21:25 +0000 (12:21 -0400)]
add DWARF_LINE* macros to help diagnosis

Similarly to the previous commit, we modify the new safe_dwarf_line*()
functions so that they carry __FILE__ and __LINE__ information into the
error. This new information is filled in when using the new DWARF_LINE*
macros.

Before:

semantic error: libdw failure (dwarf_lineaddr): no error

After:

semantic error: libdw failure (dwarf_lineaddr): no error
   thrown from: ../systemtap/dwflpp.cxx:2242

10 years agoadd DWFL_ASSERT and DWARF_ASSERT to help diagnosis
Jonathan Lebon [Thu, 17 Apr 2014 16:08:00 +0000 (12:08 -0400)]
add DWFL_ASSERT and DWARF_ASSERT to help diagnosis

Semantic errors thrown from dwfl_assert() and dwarf_assert() lacked any
positional information to help track down where the assertion failed. We
create two new macros, DWFL_ASSERT and DWARF_ASSERT, which carry down
the __FILE__ and __LINE__ information so that the semantic_error created
contains that information, which can be printed out using -vv.

Before:

semantic error: libdwfl failure (asserting!): no error

After:

semantic error: libdwfl failure (asserting!): no error
   thrown from: ../systemtap/tapsets.cxx:7183

10 years agostatement.exp: rework and expand
Jonathan Lebon [Wed, 16 Apr 2014 18:02:21 +0000 (14:02 -0400)]
statement.exp: rework and expand

The statement.exp test case previously only tested a few specific cases.
We now introduce a new test program, 'statement.c', on which we can test
for all the things we previously tested, allowing us to remove the other
test programs. Furthermore, we extend coverage to test many other
possible combinations.

10 years agodwflpp::iterate_over_srcfile_lines: add suggestions
Jonathan Lebon [Wed, 16 Apr 2014 18:53:46 +0000 (14:53 -0400)]
dwflpp::iterate_over_srcfile_lines: add suggestions

As before, we suggest other linenos if the lineno the user specified
does not have any matching line records.

10 years agodwflpp: implement new iterate_over_srcfile_lines()
Jonathan Lebon [Wed, 16 Apr 2014 14:40:16 +0000 (10:40 -0400)]
dwflpp: implement new iterate_over_srcfile_lines()

We finally implement the new iterate_over_srcfile_lines(). The basic
strategy is to look at each matching DIE, rather than just the line
records matching the linenos so that we properly match, for example,
functions inlined multiple times (which can yield multiple sets of line
records for the same lineno but at the various addresses where inlined).

10 years agoadd dwarf_query::filtered_all
Jonathan Lebon [Wed, 16 Apr 2014 20:03:07 +0000 (16:03 -0400)]
add dwarf_query::filtered_all

In dwarf_query-related functions, we very often need to carry out the
same operation on both filtered_functions and filtered_inlines. Rather
than duplicating code, create a new dwarf_query function which creates a
temporary vector containing all of them.

10 years agodwflpp: add CU line caching
Jonathan Lebon [Wed, 16 Apr 2014 18:08:47 +0000 (14:08 -0400)]
dwflpp: add CU line caching

The upcoming patches re-implementing iterate_over_srcfile_lines() will
depend on the use of CU lines in lineno order. Since dwarf_getsrclines()
outputs them in addr order, it greatly helps performance to cache the
sorted version.

10 years agodwarf_wrappers: remove dwarf_line_t class
Jonathan Lebon [Wed, 16 Apr 2014 14:47:30 +0000 (10:47 -0400)]
dwarf_wrappers: remove dwarf_line_t class

In the coming patches, we will make liberal use of Dwarf_Line. Rather
than requiring conversion to dwarf_line_t, which is very often overkill
and too verbose, we introduce new helper functions which are safe
versions of their dwarf equivalent.

10 years agogut out dwflpp::iterate_over_srcfile_lines()
Jonathan Lebon [Wed, 16 Apr 2014 14:51:24 +0000 (10:51 -0400)]
gut out dwflpp::iterate_over_srcfile_lines()

To prepare for the new code, we empty out iterate_over_srcfile_lines()
and remove associated functions. This is also where we break the link
between dwflpp and dwarf_query (the original issue mentioned in
PR16615).

10 years agodwarf_query: rename line to linenos
Jonathan Lebon [Fri, 4 Apr 2014 17:47:54 +0000 (13:47 -0400)]
dwarf_query: rename line to linenos

Rename both the dwarf_query 'line' member to 'linenos' as well as the
enum type 'line_t' to 'lineno_t'. This more accurately reflects line
numbers, as opposed to Dwarf_Line or dwarf_line_t objects, which are
often simply named 'line' in other contexts.

10 years agotapsets.cxx: simplify query_srcfile_label
Jonathan Lebon [Fri, 4 Apr 2014 17:25:07 +0000 (13:25 -0400)]
tapsets.cxx: simplify query_srcfile_label

The query_srcfile_line() callback checked if the query had a
statement(str). This could have evaluated to false in the past (when
query_cu() treated both .statement(str) and .statement(num)), but now
query_srcfile_line() is only used for statement/function(func@file:N)
probes, so we can simplify it.

10 years agosession.cxx: tweak semantic_error errsrc printing
Jonathan Lebon [Fri, 4 Apr 2014 15:36:38 +0000 (11:36 -0400)]
session.cxx: tweak semantic_error errsrc printing

10 years agoresolve_prologue_endings: clarify comment re. alloc
Jonathan Lebon [Wed, 2 Apr 2014 21:48:01 +0000 (17:48 -0400)]
resolve_prologue_endings: clarify comment re. alloc

10 years agoFixed PR16806 by improving task_finder/utrace shutdown.
David Smith [Thu, 17 Apr 2014 19:39:39 +0000 (14:39 -0500)]
Fixed PR16806 by improving task_finder/utrace shutdown.

* runtime/stp_utrace.c (utrace_init): Clear out the kmem cache pointers
  after destroying the caches.
  (utrace_exit): Ditto.
  (utrace_shutdown): Updated comments.
  (utrace_free): Lock the utrace structure while cleaning up.
* runtime/linux/task_finder2.c (stap_task_finder_post_init): If the
  task_finder state isn't 'running', quit early.
  (stap_stop_task_finder): Call stp_task_work_exit() to wait on any
  remaining task_work items.
  (utrace_report_exec): If the utrace state isn't registered, quit.
  (utrace_report_syscall_entry): Ditto.
  (utrace_report_syscall_exit): Ditto.
  (utrace_report_clone): Ditto.
  (utrace_report_death): Ditto.

10 years agoPR16829 rework, have staprun export verbosity flag
Lukas Berk [Thu, 17 Apr 2014 15:17:32 +0000 (11:17 -0400)]
PR16829 rework, have staprun export verbosity flag

*java/stapbm.in - rename STAPBM_VERBOSE to general SYSTEMTAP_VERBOSE
flag
*staprun/staprun.8 - note new SYSTEMTAP_VERBOSE env variable
*staprun/staprun.c - set SYSTEMTAP_VERBOSE env var from -v's passed to
   staprun
*tapset-method.cxx - revert leftbits string to previous assignment

10 years agoPR16829 - trigger STAPBM_VERBOSE=true with two or more -v flags
Lukas Berk [Wed, 16 Apr 2014 13:45:20 +0000 (09:45 -0400)]
PR16829 - trigger STAPBM_VERBOSE=true with two or more -v flags

*tapset-method.cxx - pass STAPBM_VERBOSE=true automatically when -vv or
     higher is specified to make debugging setup issues
     easier

10 years agoAUTHORS bump
Josh Stone [Tue, 15 Apr 2014 23:38:33 +0000 (16:38 -0700)]
AUTHORS bump

10 years agoUse pid2task when passing pid to task_execname(v2)
Masatake YAMATO [Mon, 14 Apr 2014 05:58:39 +0000 (14:58 +0900)]
Use pid2task when passing pid to task_execname(v2)

In v2 the case when pid2task returns NULL is handled.
Suggested by Josh Stone <jistone@redhat.com>.

Signed-off-by: Masatake YAMATO <yamato@redhat.com>
10 years agosystemtap.exp: make kill proc smarter
Jonathan Lebon [Tue, 15 Apr 2014 16:24:54 +0000 (12:24 -0400)]
systemtap.exp: make kill proc smarter

Rather than waiting the full timeout, check in between whether the
process has exited, in which case there's no need to send SIGKILL.

10 years agoruntime: linux 3.14 porting: case when CONFIG_USER_NS not defined
Victor Kamensky [Tue, 8 Apr 2014 05:23:39 +0000 (22:23 -0700)]
runtime: linux 3.14 porting: case when CONFIG_USER_NS not defined

Fix build problem for linux-3.14 case with config where
CONFIG_USER_NS is not defined. With CONFIG_UIDGID_STRICT_TYPE_CHECKS
removed (261000a56b6382f597bcb12000f55c9ff26a1efb) access to
kuid_t and kgid_t should happen through from_k?uid_munged call.

Signed-off-by: Victor Kamensky <victor.kamensky@linaro.org>
10 years agoNEWS: note improvements in stap --use-server=ADDRESS:PORT support
Frank Ch. Eigler [Tue, 15 Apr 2014 00:16:12 +0000 (20:16 -0400)]
NEWS: note improvements in stap --use-server=ADDRESS:PORT support

10 years agowarning::debuginfo man page: xref stap-prep more
Frank Ch. Eigler [Sun, 13 Apr 2014 20:10:55 +0000 (16:10 -0400)]
warning::debuginfo man page: xref stap-prep more

10 years agoRemove a mis-added file
Josh Stone [Sat, 12 Apr 2014 00:13:20 +0000 (17:13 -0700)]
Remove a mis-added file

10 years agotestsuite: send stress invocation notices to the log
Josh Stone [Sat, 12 Apr 2014 00:10:16 +0000 (17:10 -0700)]
testsuite: send stress invocation notices to the log

10 years agostaprun: Add one slot to stapio's argv[]
Josh Stone [Fri, 11 Apr 2014 23:50:37 +0000 (16:50 -0700)]
staprun: Add one slot to stapio's argv[]

It needs argc+2 to add one argument and allow for the uncounted NULL.

10 years agoMake sure print_format::format_component starts clear
Josh Stone [Fri, 11 Apr 2014 23:42:12 +0000 (16:42 -0700)]
Make sure print_format::format_component starts clear

10 years agoChange how we assign self module values
Lukas Berk [Fri, 11 Apr 2014 18:57:17 +0000 (14:57 -0400)]
Change how we assign self module values

*runtime/sym.c - change using _stp_modules[_stp_num_modules-1] to
        _stp_module_self (much cleaner!)

10 years agoAdd self-unwinding testcase and tweak existing tests
Lukas Berk [Fri, 11 Apr 2014 17:57:04 +0000 (13:57 -0400)]
Add self-unwinding testcase and tweak existing tests

*runtime/sym.c - warning output from the stap module about the module
 only having an eh_frame (vs eh_frame_hdr), uses the _stp_module->path
 variable as a descriptor.  Use the (guaranteed) unique name of our
 inserted module vs the placeholder from the initializer.
*testsuite/systemtap.base/backtrace.exp - Due to the existing probes now
having more information (and more output), we need to change the
existing testcase to expect the warnings based on eh_frame and no
eh_frame_hdr being present.  Also add a new testcase where there should
be no (inexact) from the unwind string.

10 years agostap-report: also report lockdep-related kernel config items
Frank Ch. Eigler [Thu, 10 Apr 2014 22:26:00 +0000 (18:26 -0400)]
stap-report: also report lockdep-related kernel config items

10 years agoExplicitly declare _stp_module_self fields
Lukas Berk [Thu, 10 Apr 2014 20:05:55 +0000 (16:05 -0400)]
Explicitly declare _stp_module_self fields

*runtime/sym.c - remove assignments for fields assigned in translate.cxx
*translate.cxx - explicitly initialize more of the fields in the
         _stp_module_self module.  This way we no longer have to
       rely on lucky ordering later on.

10 years agoi18n po update
Frank Ch. Eigler [Thu, 10 Apr 2014 14:14:40 +0000 (10:14 -0400)]
i18n po update

10 years agoPR16719: Fix a couple leaked Dwfl instances
Josh Stone [Thu, 10 Apr 2014 00:27:13 +0000 (17:27 -0700)]
PR16719: Fix a couple leaked Dwfl instances

* setupdwfl.cxx (setup_dwfl_kernel): When recursing into another round
  after downloading, call dwfl_end on the Dwfl that we already started.
* tapset.cxx (tracepoint_builder::init_dw): Call dwfl_end on the Dwfl
  used to fill in the s.kernel_source_tree.
* testsuite/systemtap.base/pr16719.exp: Add a tracepoint subtest.

10 years agoPR16716: Fix types in syscall.sched_{getscheduler,setscheduler,rr_get_interval}
David Smith [Wed, 9 Apr 2014 17:00:05 +0000 (12:00 -0500)]
PR16716: Fix types in syscall.sched_{getscheduler,setscheduler,rr_get_interval}

* tapset/linux/syscalls2.stp (syscall.sched_getscheduler): Fixed types.
  (syscall.sched_setscheduler): Ditto.
  (syscall.sched_rr_get_interval): Fixed nesting and types. Also change
  'argstr' to just have a pointer to the 'struct timespec' value, since
  that is an output parameter and decoding it on input won't produce
  anything of value.
* tapset/linux/nd_syscalls2.stp: Ditto.
* tapset/linux/aux_syscalls.stp (_sched_policy_str): Updated to handle new
  values, including the new SCHED_RESET_ON_FORK flag.
* testsuite/systemtap.syscall/test.tcl (run_one_test): Since execname()
  only returns the first 15 characters of the test program name, truncate
  it.
* testsuite/systemtap.syscall/sched_getscheduler.c: New testcase
* testsuite/systemtap.syscall/sched_rr_get_interval.c: Ditto.
* testsuite/systemtap.syscall/sched_setscheduler.c: Ditto.

This page took 0.064891 seconds and 5 git commands to generate.