]> sourceware.org Git - systemtap.git/log
systemtap.git
13 years agoGuard regparm in probe context with STAP_NEED_REGPARM.
Mark Wielaard [Thu, 28 Jul 2011 16:10:20 +0000 (18:10 +0200)]
Guard regparm in probe context with STAP_NEED_REGPARM.

regparm is only used on i386 (and x86_64 when probing 32bit) for
signaling what the parameter packing is for the probed function
as set in register.stp. So only include it in the probe context
struct when actually used in a stap script.

Also updated docs and fixed signature on other arches.

13 years agoProperly initialize variables and consistently check getenv
Lukas Berk [Thu, 28 Jul 2011 19:52:35 +0000 (15:52 -0400)]
Properly initialize variables and consistently check getenv

* session.cxx: initialize long_opt, change conditional to match other
getenv checks against null
* stap-serverd.cxx: initialize long_opt

13 years agoPR 12916 - Aliased process probes aren't allowed for unprivileged
Dave Brolley [Thu, 28 Jul 2011 18:18:49 +0000 (14:18 -0400)]
PR 12916 - Aliased process probes aren't allowed for unprivileged

Make all probe aliases OK for unprivileged users. The actual referenced
probe points will be checked once the aliases are resolved.
Update test suite.

13 years agoRearrange conditional to include return value check
Lukas Berk [Thu, 28 Jul 2011 14:49:11 +0000 (10:49 -0400)]
Rearrange conditional to include return value check

* tapsets.cxx: add a conditional to check get_param's return value,
this also keeps a consistent check of get_param throughout the function

13 years agoPR13037 Make lock blacklist more specific.
Mark Wielaard [Thu, 28 Jul 2011 12:02:09 +0000 (14:02 +0200)]
PR13037 Make lock blacklist more specific.

The dwflpp::build_blacklist() would also match things like _nolock,
block or clock. Be more specific that we want to only match things
like _lock, _unlock, _trylock or seq[un]lock.

13 years agoTwo task_finder cleanups.
David Smith [Wed, 27 Jul 2011 17:32:50 +0000 (12:32 -0500)]
Two task_finder cleanups.

* runtime/task_finder.c: Two cleanup fixes. Merged 2 different state
  variables into 1. Reversed utrace compatibility fix.  Instead of
  making new utrace look like old utrace, made old utrace look like new
  utrace (i.e. use 'utrace_engine' instead of 'utrace_attached_engine').
* runtime/utrace_compatibility.h: Reversed utrace compatibility fix (use
  'utrace_engine' instead of 'utrace_attached_engine').

13 years agoAdd autoconf-ring_buffer_read_prepare.
Mark Wielaard [Wed, 27 Jul 2011 15:21:31 +0000 (17:21 +0200)]
Add autoconf-ring_buffer_read_prepare.

Kernel commit 72c9dd split ring_buffer starting in a prepare and start phase.

13 years agoAdd autoconf-ring_buffer_lost_events.
Mark Wielaard [Wed, 27 Jul 2011 15:08:58 +0000 (17:08 +0200)]
Add autoconf-ring_buffer_lost_events.

Kernel commit 66a8cb added place holder recording of dropped events.

13 years agoMerge branch 'mjw/backtrace'
Mark Wielaard [Wed, 27 Jul 2011 07:38:57 +0000 (09:38 +0200)]
Merge branch 'mjw/backtrace'

13 years agoFix typo in 1.6 release date.
Stan Cox [Tue, 26 Jul 2011 21:43:32 +0000 (17:43 -0400)]
Fix typo in 1.6 release date.

13 years agoAllow gcc to optimize away uprobe_get_pc() calls in some situations.
Mark Wielaard [Tue, 26 Jul 2011 21:31:01 +0000 (23:31 +0200)]
Allow gcc to optimize away uprobe_get_pc() calls in some situations.

If a call is made to the stack-x86.c __stp_stack_print() it might
try to call uprobe_get_pc(). If this is just a kernel backtrace
then uprobes might not be loaded. Add a hint by explicitly clearing
the struct uretprobe_instance *ri variable in that cass in the
calling function _stp_stack_print() in stack.c, so that gcc
optimizes away the uprobe_get_pc() call, so that the symbol isn't
in the module anymore.

Would cause issues like:
WARNING: "uprobe_get_pc" [stap_d46895_3786.ko] undefined!
Error inserting module 'stap_d46895_3786.ko': Unknown symbol in module

13 years agoAdjust expected "no backtrace" string in context/backtrace.tcl test.
Mark Wielaard [Tue, 26 Jul 2011 21:29:48 +0000 (23:29 +0200)]
Adjust expected "no backtrace" string in context/backtrace.tcl test.

The new generic form is now "<no kernel backtrace at PROBEPOINT>".

13 years agoBump the runtime version to 1.7 too
Josh Stone [Tue, 26 Jul 2011 21:17:32 +0000 (14:17 -0700)]
Bump the runtime version to 1.7 too

13 years agoBreak user_int64 64-bit operation into two for arm
William Cohen [Tue, 26 Jul 2011 21:06:08 +0000 (17:06 -0400)]
Break user_int64 64-bit operation into two for arm

Like the i386, the arm processor is also limited to 32-bit oprations.
The user_int64() needs to break the 64-bit access into 32-bit operations.

13 years agoRevert "Break user_int64 64-bit operation into two for arm"
William Cohen [Tue, 26 Jul 2011 21:01:32 +0000 (17:01 -0400)]
Revert "Break user_int64 64-bit operation into two for arm"

This reverts commit 77bfa15c05ae30b5aed520f5587b8ee6b2b1c446.

13 years agoAdd \n at end of debug message in staprun/mainloop.c.
Mark Wielaard [Tue, 26 Jul 2011 20:37:52 +0000 (22:37 +0200)]
Add \n at end of debug message in staprun/mainloop.c.

13 years ago bump version numbers to 1.7, for future release cycle
Stan Cox [Tue, 26 Jul 2011 20:39:33 +0000 (16:39 -0400)]
 bump version numbers to 1.7, for future release cycle

13 years agoBreak user_int64 64-bit operation into two for arm
William Cohen [Tue, 26 Jul 2011 20:15:41 +0000 (16:15 -0400)]
Break user_int64 64-bit operation into two for arm

Like the i386, the arm processor is also limited to 32-bit oprations.
The user_int64() needs to break the 64-bit access into 32-bit operations.

13 years agoPR12895: Use NOSTDINC_FLAGS in kernel stapconf checks
Josh Stone [Tue, 26 Jul 2011 19:25:34 +0000 (12:25 -0700)]
PR12895: Use NOSTDINC_FLAGS in kernel stapconf checks

We should never be looking in /usr/include/ for headers when building
for the kernel.  This particularly bit us in a case where RHEL6 gained
blk_types.h in newer kernels.  So if the system had kernel-headers.rpm
with this new header in /usr/include/, but was still running an older
kernel that lacked it in /lib/modules/`uname -r`/build/, then we'd
misidentify that header's availability in stapconf.

* buildrun.cxx (compile_pass): Add NOSTDINC_FLAGS to CHECK_BUILD.

13 years agostap-server security: use @PIELDFLAGS@ for all binaries
Frank Ch. Eigler [Tue, 26 Jul 2011 17:26:37 +0000 (13:26 -0400)]
stap-server security: use @PIELDFLAGS@ for all binaries

* Makefile.am (stap-authorize-cert, stap-gen-cert, stap-serverd,
  stap-sign-module): Add @PIELDFLAGS@ to foo_LDFLAGS.

13 years agoFix stack-ppc.c typo level -> levels.
Mark Wielaard [Tue, 26 Jul 2011 15:14:04 +0000 (17:14 +0200)]
Fix stack-ppc.c typo level -> levels.

13 years agoPush all stack logic into stack.c. tapset functions just pass flags.
Mark Wielaard [Tue, 26 Jul 2011 13:10:30 +0000 (15:10 +0200)]
Push all stack logic into stack.c. tapset functions just pass flags.

Some of the logic determining what to print, which register sets to use
and whether the context was valid was repeated multiple times in the
[u]context-unwind.stp functions. Just do all the logic in one place
(_stp_print_stack) and make the tapset functions just push the context
and symbols/stack flags.

13 years agoDon't pass kregprobe, uretprobe and unwind_context around separately.
Mark Wielaard [Tue, 26 Jul 2011 11:27:04 +0000 (13:27 +0200)]
Don't pass kregprobe, uretprobe and unwind_context around separately.

Just pass whole struct context to stack.c _stp_stack functions.

13 years agospec: retroactively add %changelog entries for 1.6 / 1.5
Frank Ch. Eigler [Mon, 25 Jul 2011 21:53:02 +0000 (17:53 -0400)]
spec: retroactively add %changelog entries for 1.6 / 1.5

13 years agoPR 12888 - Filter server-side file paths in the server's response. release-1.6
Dave Brolley [Mon, 25 Jul 2011 18:12:01 +0000 (14:12 -0400)]
PR 12888 - Filter server-side file paths in the server's response.

13 years agocopyright year bump for translator
Frank Ch. Eigler [Mon, 25 Jul 2011 16:53:30 +0000 (12:53 -0400)]
copyright year bump for translator

13 years agoFix sdt v1/v2 shared object probes.
Stan Cox [Mon, 25 Jul 2011 16:01:35 +0000 (12:01 -0400)]
Fix sdt v1/v2 shared object probes.

* dtrace (_provider):  Don't use hidden visibility attribute for sdt v1/v2

13 years agoCVE-2011-2503: read instead of mmap to load modules
Josh Stone [Mon, 25 Jul 2011 15:48:31 +0000 (11:48 -0400)]
CVE-2011-2503: read instead of mmap to load modules

As staprun is preparing to load a kernel module, we first mmap the whole
module as MAP_PRIVATE. Then we proceed with our security checks,
including a trusted-signature validation on the mapped region, and if
all checks out, we'll call init_module() with that same mapped region.

However, MMAP(2) says of MAP_PRIVATE, "It is unspecified whether changes
made to the file after the mmap() call are visible in the mapped
region."  From my testing, it appears that file changes do indeed show
up in our mapped memory.  This means we have a TOCTOU race between
verifying the signature of that memory and then calling init_module().

By using read() instead of mmap(), we ensure that we have a fully
private copy of the module to verify and load, without fear of change.

13 years agoCVE-2011-2502: Don't allow path-based auth for uprobes
Josh Stone [Mon, 25 Jul 2011 13:54:28 +0000 (09:54 -0400)]
CVE-2011-2502: Don't allow path-based auth for uprobes

For users that are only members of stapusr, and not stapdev, we only
allow loading modules that are either signed with a trusted certificate
or located in controlled paths.  For the script itself, that path is
/lib/modules/.../systemtap/, and for uprobes it is the runtime.  When
this policy was first written, uprobes only ever came from the runtime
path, so the path check just returned 1 always.

Later, commit 474d17ad added an optional argument to staprun -u, to
allow the user to specify their own signed copy of uprobes to load.
Unfortunately, if presented with an unsigned module, that would still
fall back to the path check, which blissfully approved it anyway.

Our policy is now that stapusr can only load a signed uprobes.ko, so the
path check for uprobes now unconditionally returns 0.

13 years agoFixed tracescripts.exp when 'stap' is stripped.
David Smith [Mon, 25 Jul 2011 15:40:30 +0000 (10:40 -0500)]
Fixed tracescripts.exp when 'stap' is stripped.

* testsuite/systemtap.base/tracescripts.exp: Look for markers in 'stap'
  executable instead of a function.

13 years agoRemove superfluous definition of MAXSTRINGLEN from runtime.h.
Mark Wielaard [Mon, 25 Jul 2011 13:57:03 +0000 (15:57 +0200)]
Remove superfluous definition of MAXSTRINGLEN from runtime.h.

Already always defined by translator.

13 years agoClean up maximum backtrace level code. And document MAXBACKTRACE.
Mark Wielaard [Mon, 25 Jul 2011 13:52:30 +0000 (15:52 +0200)]
Clean up maximum backtrace level code. And document MAXBACKTRACE.

Lots of functions passed around the maximum level of backtraces allowed.
Now all consolidated inside stack.s. And documented in stap.1.

13 years agoRemove unused arch_unw_init_blocked arch specific unwind functions.
Mark Wielaard [Mon, 25 Jul 2011 13:09:25 +0000 (15:09 +0200)]
Remove unused arch_unw_init_blocked arch specific unwind functions.

13 years agoOnly include runtime/stack.c functions when needed.
Mark Wielaard [Mon, 25 Jul 2011 12:56:04 +0000 (14:56 +0200)]
Only include runtime/stack.c functions when needed.

13 years agoRemove task_backtrace tapset function support.
Mark Wielaard [Mon, 25 Jul 2011 12:38:11 +0000 (14:38 +0200)]
Remove task_backtrace tapset function support.

Deprecated with 1.6. Now removed.
Although useful in some circumstance the current support for it was really
ugly (you had to provide a pointer to a task struct, which couldn't be
sanity checked at all) and it made the current unwind code really ugly
since this task struct had to be carried around. It made creating more
accurate backtraces harder because we would have had to make a distinction
between "reliable" and "unreliable" unwind info.

13 years agoMerge branch 'master' into mjw/backtrace
Mark Wielaard [Mon, 25 Jul 2011 11:19:21 +0000 (13:19 +0200)]
Merge branch 'master' into mjw/backtrace

13 years agoTweak context-unwind.stp and context.stp to allow documentation to build.
William Cohen [Sat, 23 Jul 2011 14:32:52 +0000 (10:32 -0400)]
Tweak context-unwind.stp and context.stp to allow documentation to build.

13 years agoAUTHORS bump
Frank Ch. Eigler [Sat, 23 Jul 2011 00:10:52 +0000 (20:10 -0400)]
AUTHORS bump

13 years agoPR12427: tweak NEWS blurbage
Frank Ch. Eigler [Fri, 22 Jul 2011 18:28:57 +0000 (14:28 -0400)]
PR12427: tweak NEWS blurbage

13 years agotestsuite: memory1 test case name
Frank Ch. Eigler [Fri, 22 Jul 2011 15:59:03 +0000 (11:59 -0400)]
testsuite: memory1 test case name

Reorder the parameters to stap_run2 to put the script name first.

13 years agotestsuite framework: stap_run2 quoting fix
Frank Ch. Eigler [Fri, 22 Jul 2011 15:56:53 +0000 (11:56 -0400)]
testsuite framework: stap_run2 quoting fix

When invoking stap_run2 with multiple optional stap arguments, the
extra arguments are captured in the tcl list $args.  When stap_run2
calls down to stap_run3 to do the real work, it gets packaged as a
single quoted string instead of the original list of options.
We need to unpack this list to pass it on, e.g. via tcl eval.

This impacts test cases that pass multiple parameters, such as
memory1.exp, const_value.exp, process_by_cmd.exp.

13 years agoDeprecated task_backtrace:string (task:long).
Mark Wielaard [Fri, 22 Jul 2011 15:46:10 +0000 (17:46 +0200)]
Deprecated task_backtrace:string (task:long).

This function will go away after 1.6.

13 years agoIntroduce /* pragma:unwind */
Mark Wielaard [Fri, 22 Jul 2011 11:09:35 +0000 (13:09 +0200)]
Introduce /* pragma:unwind */

By marking all tapset functions that really need the unwinder with
/* pragma:unwind */ we can make sure to only compile in unwind.c
when it is really needed.

13 years agoRemove stack-x64x.c specific fallback for _stp_stack_print_fallback().
Mark Wielaard [Fri, 22 Jul 2011 09:51:41 +0000 (11:51 +0200)]
Remove stack-x64x.c specific fallback for _stp_stack_print_fallback().

If the standard kernel based _stp_stack_print_fallback() isn't available
don't try to be smart and guess at stack addresses ourselves. Just give
up. Dwarf based unwinding is good enough now and the kernel dump_stack()
does a much better job than we can at guessing stack values.

13 years agoMerge branch 'master' of ssh://sourceware.org/git/systemtap
Dave Brolley [Thu, 21 Jul 2011 21:37:01 +0000 (17:37 -0400)]
Merge branch 'master' of ssh://sourceware.org/git/systemtap

Conflicts:
NEWS

13 years agoDon't allow the compile server client to honour -I/
Dave Brolley [Thu, 21 Jul 2011 21:34:14 +0000 (17:34 -0400)]
Don't allow the compile server client to honour -I/

- Found by server_args.exp fuzzing tests
- Would require special case code to handle but is a bad bad idea anyway
  so don't allow it.
- Update test suite with the offending test case and some similar ones.

13 years agoRemove STP_USE_FRAME_POINTER support and merge i386/x86_64 into stack-x86.c
Mark Wielaard [Thu, 21 Jul 2011 14:51:48 +0000 (16:51 +0200)]
Remove STP_USE_FRAME_POINTER support and merge i386/x86_64 into stack-x86.c

The only real difference between stack-i386.c and stack-x86_64 was that
the former supported a buggy frame pointer based unwind. Which we never
used and for which the kernel has a better fallback (dump_trace).

13 years agoPIPEFAIL is in bash, but not in sh
William Cohen [Thu, 21 Jul 2011 21:17:48 +0000 (17:17 -0400)]
PIPEFAIL is in bash, but not in sh

Explicitly use /bin/bash because some /bin/sh interpreters do not support
PIPEFAIL.

13 years agoProtect library test from globbing and missing debuginfo.
Stan Cox [Thu, 21 Jul 2011 21:09:27 +0000 (17:09 -0400)]
Protect library test from globbing and missing debuginfo.

library.exp: Allow for debuginfo errors; quote glob pattern.

13 years agoAdd basic functionality for ARM architecture support of nd_syscall.*
William Cohen [Thu, 21 Jul 2011 19:09:07 +0000 (15:09 -0400)]
Add basic functionality for ARM architecture support of nd_syscall.*

The no dwarf syscalls tapset needs some code to access the syscall parameters.
This is a first pass to add the support for the ARM architecture. This
basic support only handles the first 4 arguments on ARM. Argument 5 and
later are on the stack and are not handled.

13 years agoImprove ppc64 test results by handling unimplemented signal syscalls.
David Smith [Thu, 21 Jul 2011 19:12:24 +0000 (14:12 -0500)]
Improve ppc64 test results by handling unimplemented signal syscalls.

* testsuite/systemtap.syscall/signal.c (main): On ppc64, handle the fact
  that sigprocmask()/sigaction() are unimplemented.

13 years agoMerge branch 'master' of git://sourceware.org/git/systemtap
Lukas Berk [Thu, 21 Jul 2011 19:01:15 +0000 (15:01 -0400)]
Merge branch 'master' of git://sourceware.org/git/systemtap

13 years agoReorder open/access sequence
Lukas Berk [Thu, 21 Jul 2011 18:50:54 +0000 (14:50 -0400)]
Reorder open/access sequence

* ctl.c: reorder access()/open()

The previous order was not actually subject to a race condition,
because the file being accessed cannot be modified by a non-root
user.

13 years agoFix unprivilegedok.exp testcase by making test program return 0.
David Smith [Thu, 21 Jul 2011 17:47:27 +0000 (12:47 -0500)]
Fix unprivilegedok.exp testcase by making test program return 0.

* testsuite/systemtap.unprivileged/foo.c (main): Make sure to return 0, to
  avoid warnings from staprun.

13 years agoAdded notes that the STP_OOB_DATA prefixes shouldn't be translated.
David Smith [Thu, 21 Jul 2011 16:41:44 +0000 (11:41 -0500)]
Added notes that the STP_OOB_DATA prefixes shouldn't be translated.

* runtime/transport/control.c (_stp_ctl_alloc_special_buffers):  Added a
  note that the STP_OOB_DATA prefixes ("WARNING:" and "ERROR:") shouldn't
  be translated.
  (_stp_ctl_get_buffer): Ditto.

13 years agoAdded a note that the STP_OOB_DATA prefixes shouldn't be translated.
David Smith [Thu, 21 Jul 2011 16:21:25 +0000 (11:21 -0500)]
Added a note that the STP_OOB_DATA prefixes shouldn't be translated.

* runtime/staprun/mainloop.c (stp_main_loop): Added a note that the
  STP_OOB_DATA prefixes ("WARNING:" and "ERROR:") shouldn't be
  translated.

13 years agoUpdate NEWS about improved support for ARM architecture.
William Cohen [Thu, 21 Jul 2011 14:54:54 +0000 (10:54 -0400)]
Update NEWS about improved support for ARM architecture.

13 years agoMake loc2c-runtime.h treat ARM architecture as a 32-bit architecture
William Cohen [Thu, 21 Jul 2011 14:29:00 +0000 (10:29 -0400)]
Make loc2c-runtime.h treat ARM architecture as a 32-bit architecture

The arm is a 32-bit architecture it should be doing the kread()
and kwrite operations in the same manner as other 32-bit architecture
such as the i386.

13 years agoAvoid "unknown type" errors on unused parameters.
David Smith [Thu, 21 Jul 2011 13:34:30 +0000 (08:34 -0500)]
Avoid "unknown type" errors on unused parameters.

* tapset/arm/aux_syscalls.stp:  Help the translator out by specifying
  types on '_ptrace_return_arch_prctl_addr' unused parameters.
* tapset/i386/aux_syscalls.stp: Ditto.
* tapset/ia64/aux_syscalls.stp: Ditto.
* tapset/powerpc/aux_syscalls.stp: Ditto.

13 years agoFix escaped character typo
Lukas Berk [Thu, 21 Jul 2011 12:35:59 +0000 (08:35 -0400)]
Fix escaped character typo

* csclient.cxx: fix typo
* po/*: update po files

13 years agotestsuite: make memory1 test go on a quiet system
Frank Ch. Eigler [Thu, 21 Jul 2011 11:10:51 +0000 (07:10 -0400)]
testsuite: make memory1 test go on a quiet system

On machines that enjoy a sacred zen-like quality of
doing nothing but run systemtap tests, the memory1 test
case can wait, wait, wait, and wait yet more.  Nae, it
can wait indefinitely, until some other Godot thread
comes and runs a syscall.open.  No syscall.open - no
script exit().

Fix this in two separate ways.  First, let the script itself time out.
Second, run the script with a meaningful, profound workload consisting
of "/bin/sh </dev/null", which while pondering the nothingness of it
all, does run at least one open(2).

13 years agoMerge branch 'master' of git://sources.redhat.com/git/systemtap
Frank Ch. Eigler [Thu, 21 Jul 2011 00:54:22 +0000 (20:54 -0400)]
Merge branch 'master' of git://sources.redhat.com/git/systemtap

* 'master' of git://sources.redhat.com/git/systemtap:
  Normalize the arch in systemtap_session::clone
  Improved prcwildcard.exp and cmd_parse.exp tests.

Conflicts:
testsuite/systemtap.base/cmd_parse.exp

13 years agotestsuite: testsuite/net/stap server setup
Frank Ch. Eigler [Thu, 21 Jul 2011 00:51:53 +0000 (20:51 -0400)]
testsuite: testsuite/net/stap server setup

* testsuite/lib/systemtap.exp (start_server): Locate
  stap based on $SYSTEMTAP_PATH; plop in $installed_stap.
  (setup_server): Use that location rather than which(1).

13 years agokernel.trace query: linux 3.0 porting and complaining
Frank Ch. Eigler [Thu, 21 Jul 2011 00:43:53 +0000 (20:43 -0400)]
kernel.trace query: linux 3.0 porting and complaining

* tapsets.cxx (tracepoint_extra_decls): Add another few they-live
  entries for linux 3.0.  Still need something for trace/events/napi.h.

* buildrun.cxx (make_tracequery): Lament the possibility of printing
  warnings that don't make much sense, and a user can't fix.

13 years agotestcase: ptridx
Frank Ch. Eigler [Thu, 21 Jul 2011 00:42:43 +0000 (20:42 -0400)]
testcase: ptridx

The ptridx.exp expect regexps neglected to look for the
output of the ptridx program itself, leading to false FAIL:'s

13 years agotestsuite: bump up cmd_parse.exp #8 timeout, explain why it's slow
Frank Ch. Eigler [Thu, 21 Jul 2011 00:42:11 +0000 (20:42 -0400)]
testsuite: bump up cmd_parse.exp #8 timeout, explain why it's slow

13 years agotestsuite: 3.0 kernel nomenclature
Frank Ch. Eigler [Wed, 20 Jul 2011 23:31:25 +0000 (19:31 -0400)]
testsuite: 3.0 kernel nomenclature

cmd_parse15 falsely kfailed on 3.0 due to naive SUBLEVEL parsing.

13 years agoNormalize the arch in systemtap_session::clone
Josh Stone [Wed, 20 Jul 2011 22:39:57 +0000 (15:39 -0700)]
Normalize the arch in systemtap_session::clone

* session.cxx (systemtap_session::clone): Normalize the incoming arch
  name, so it can be consistently compared to both this->architecture
  and other cloned subsessions.

13 years agoImproved prcwildcard.exp and cmd_parse.exp tests.
David Smith [Wed, 20 Jul 2011 21:32:30 +0000 (16:32 -0500)]
Improved prcwildcard.exp and cmd_parse.exp tests.

* testsuite/systemtap.base/prcwildcard.exp: If we're testing a stripped
  stap, don't bother running the function test, which needs debuginfo.
* testsuite/systemtap.base/cmd_parse.exp: Increase timeout.
* testsuite/lib/systemtap.exp (stripped_p): New function to
  determine if an executable is stripped.

13 years agoFix "Unable to shutdown NSS/NSS is not initialized" on RHEL5.
Dave Brolley [Wed, 20 Jul 2011 17:46:08 +0000 (13:46 -0400)]
Fix "Unable to shutdown NSS/NSS is not initialized" on RHEL5.

Could also occur for any build with HAVE_NSS && ! HAVE_LIBRPMIO.
In this case, the rpm finder must attempt to shutdown NSS (sometimes initialized
by librpm) without knowing if it was actually initialized. In this case we
will now tolerate failure to shut down NSS if the error is
SEC_ERROR_NOT_INITIALIZED.

13 years agoPR 12888 - stap-serverd should be weaned from -k
Dave Brolley [Wed, 20 Jul 2011 14:37:54 +0000 (10:37 -0400)]
PR 12888 - stap-serverd should be weaned from -k

- stap-serverd no longer passes -k to stap.
- -k specified on client no longer passed on to stap on the server side.
- -k specified to stap-serverd on startup instructs the server to save
  its temp dir (contains client request and server response).
- server version 1.6 no longer packs uprobes.ko twice, unless the client
  version is < 1.6.
- client version 1.6 looks for uprobes.ko in <response>/stap000000/uprobes
  unless server version is < 1.6.
- Update/modify testsuite.

13 years agoUpdate po files
Lukas Berk [Wed, 20 Jul 2011 15:50:17 +0000 (11:50 -0400)]
Update po files

13 years agoProperly initialize variables
Lukas Berk [Wed, 20 Jul 2011 15:44:36 +0000 (11:44 -0400)]
Properly initialize variables

Static analysis results showed not all variables had been properly
initialized. They have been addressed here.

* loc2c-test.c : locexpr_len
* loc2c.c : bit_offset and bit_size
* mainloop.c : signum
* stap_merge.c : ofp and fp[]
* staprun.c : unsigned i and globbuf.gl_pathc

13 years agoFactor out code to normalize the architecture names and add arm arch
William Cohen [Wed, 20 Jul 2011 14:52:43 +0000 (10:52 -0400)]
Factor out code to normalize the architecture names and add arm arch

A few tests need to know the generic architecture name rather than
the specific variant. This patch factors out the code into
testsuite/lib/systemtap.exp and add entries for the arm architecture
variants.

13 years agoAlways look for .note.stapsdt sections in the main elf file.
Mark Wielaard [Wed, 20 Jul 2011 14:05:31 +0000 (16:05 +0200)]
Always look for .note.stapsdt sections in the main elf file.

In dwflpp::iterate_over_notes we really want the actual elf file,
not the dwarf .debug file.  Older binutils had a bug where they
mangled the SHT_NOTE type during --keep-debug.

13 years agoAdd tapset/arm/aux_syscalls.stp
William Cohen [Tue, 19 Jul 2011 21:38:52 +0000 (17:38 -0400)]
Add tapset/arm/aux_syscalls.stp

The ARM processor needs to have _arch_ptrace_argstr() function defined
so the kernel-debuginfo smoke test used for the "make installcheck" works.

13 years agoDepend on elfutils 0.142+. Remove various workarounds.
Mark Wielaard [Tue, 19 Jul 2011 20:56:17 +0000 (22:56 +0200)]
Depend on elfutils 0.142+. Remove various workarounds.

We really need at least 0.142 to support quick dwarf unwinding.
Also earlier versions had various bugs that we sometimes worked
around, but not always. Which could lead to misterious failures
when a bias was miscalculated.

13 years agoImprove buildid.exp error handling.
David Smith [Tue, 19 Jul 2011 20:15:45 +0000 (15:15 -0500)]
Improve buildid.exp error handling.

* testsuite/systemtap.base/buildid.exp: Once 'error_handler' is called
  cleanup has occurred, so the following objcopy commands will fail.  Just
  return instead.

13 years agoFix test program to include string.h
David Smith [Tue, 19 Jul 2011 18:03:39 +0000 (13:03 -0500)]
Fix test program to include string.h

* testsuite/systemtap.syscall/rt_signal.c: Add missing include so that
  memset() is properly defined.

13 years agoresolve PR12890 vs PR10854 bunfight
Frank Ch. Eigler [Tue, 19 Jul 2011 17:52:58 +0000 (13:52 -0400)]
resolve PR12890 vs PR10854 bunfight

The PR10854 test case uses a tight loop of staprun and a nexted loop
of pkills, written in a way that counts on staprun's pre-PR12890
"insert; unload; retry insert" module-handling heuristic.  With this
heuristic gone (and error messages properly generated), the PR10854
test case goes woozy and hangs in the while { ... pkill ... } tcl
loop.  Now we don't loop in there any more.

13 years agoImprove s390x test results by specifying parameter types.
David Smith [Tue, 19 Jul 2011 15:52:48 +0000 (10:52 -0500)]
Improve s390x test results by specifying parameter types.

* tapset/s390/aux_syscalls.stp: Help the translator out by specifying
  types on '_ptrace_return_arch_prctl_addr' unused parameters.

13 years agoTo avoid problems on s390x, add a 'softirq_action' cast.
David Smith [Tue, 19 Jul 2011 14:39:42 +0000 (09:39 -0500)]
To avoid problems on s390x, add a 'softirq_action' cast.

* tapset/irq.stp: Add 'softirq_action' casts for s390x in softirq.entry
  and softirq.exit.

13 years agoDefine PTRACE_SYSEMU[_SINGLESTEP] if undefined in aux_syscalls.stp.
Mark Wielaard [Tue, 19 Jul 2011 11:28:06 +0000 (13:28 +0200)]
Define PTRACE_SYSEMU[_SINGLESTEP] if undefined in aux_syscalls.stp.

13 years agoWrap ssl using cscommon code in #if HAVE_NSS.
Mark Wielaard [Tue, 19 Jul 2011 10:41:28 +0000 (12:41 +0200)]
Wrap ssl using cscommon code in #if HAVE_NSS.

13 years agoPR10189 and PR12960 build fix
Frank Ch. Eigler [Mon, 18 Jul 2011 21:36:54 +0000 (17:36 -0400)]
PR10189 and PR12960 build fix

* runtime/transport/control.c (stp_ctl_write): Initialize mesg_on_queue.

13 years agoPR12917: build fix for rhel4
Frank Ch. Eigler [Mon, 18 Jul 2011 21:30:04 +0000 (17:30 -0400)]
PR12917: build fix for rhel4

* stap-serverd.cxx (get_stap_locale): unsigned i=-1; not considered
  kosher, rework as plain for loop.

13 years agoi18n testsuite: drop redundant LANG=C from subtests
Frank Ch. Eigler [Mon, 18 Jul 2011 21:29:46 +0000 (17:29 -0400)]
i18n testsuite: drop redundant LANG=C from subtests

13 years agoPR10189 and PR12960 reserve system cmd messages for delivery.
Mark Wielaard [Mon, 18 Jul 2011 18:55:38 +0000 (20:55 +0200)]
PR10189 and PR12960 reserve system cmd messages for delivery.

runtime/transport/control.c kept one pool for all cmd messages that
the module had to deliver to staprun/io.  This pool could become
empty.  This meant essential control message would not be delivered.
Leading to the module not properly starting and/or exiting.

We now set aside buffers for one time messages (STP_START, STP_EXIT,
STP_TRANSPORT, STAP_REQUEST_EXIT) and "overflow" messages that get
delivered whenever one of the dynamically allocated messages cannot
get a free slot from the pool (STP_OOB_DATA - warnings and errors,
STP_SYSTEM and STP_REALTIME_DATA).

The type field is used to mark whether or not a special pre-allocated
buffer is currently unused. This needs careful locking using a new
&_stp_ctl_special_msg_lock that is used in the new helper functions
_stp_ctl_get_buffer and _stp_ctl_free_buffer.

Now when we run out of message buffers we just drop the message and
printk. stapio will have received either the one time message or an
overflow message, there is nothing more we can do.

The STP_DEFAULT_BUFFERS for debugfs.c got decreased again to allow
8 pre-allocated and 32 dynamic (pending) cmd messages.

A new testcase testsuite/systemtap.base/warn_overflow.exp was added.

13 years agoLTTng TMF Custum Text Parser Example
Chris Meek [Mon, 18 Jul 2011 20:39:44 +0000 (16:39 -0400)]
LTTng TMF Custum Text Parser Example

Added proc_snoop_parser to
    src/testsuite/systemtap.examples/process/
Follow the instructions in:
     src/testsuite/systemtap.examples/process/proc_snoop_parser_instructions.txt
to try out the eclipse plugin tracefile parser.

13 years agoPR 13001 - !HAVE_NSS build failures
Dave Brolley [Mon, 18 Jul 2011 20:07:26 +0000 (16:07 -0400)]
PR 13001 - !HAVE_NSS build failures

- Exclude entire functions and classes where possible.
- Reorder items within source files in order to combine conditional
  compilation blocks.

13 years agostaprun STP_OOB_DATA payload.data "WARNING:" prefix shouldn't be translated.
Mark Wielaard [Mon, 18 Jul 2011 14:11:11 +0000 (16:11 +0200)]
staprun STP_OOB_DATA payload.data "WARNING:" prefix shouldn't be translated.

The STP_OOB_DATA payload data prefix "WARNING:" or "ERROR:" is part of
the module cmd protocol.

13 years agoPR12960 Don't msleep in _stp_ctl_send when out of memory.
Mark Wielaard [Fri, 15 Jul 2011 21:54:47 +0000 (23:54 +0200)]
PR12960 Don't msleep in _stp_ctl_send when out of memory.

This is mainly a documentation patch to better explain the transport
layers and the interaction between _stp_ctl_read_cmd, _stp_ctl_send and
_stp_ctl_write.

It also contains the first step to resolve PR12960. The msleep() in
_stp_ctl_send() has been replaced with a loop that checks whether there
are messages on the queue, tries to wake up _stp_ctl_read_cmd so stapio
has a change to read some of the pending messages and a small mdelay
(which is save, because it doesn't actually sleep or schedule). It
only prevents the crash and makes the possibility of loosing control
messages slightly less. A followup patch will introduce special buffers
to hold cannot be lost messages so the module will always be able to
properly shut down.

STP_DEFAULT_BUFFERS for debugfs also got increased a little from 50 to 64.

13 years agosyscall.*execve: Fix argv access on newer kernels
Josh Stone [Fri, 15 Jul 2011 20:47:45 +0000 (13:47 -0700)]
syscall.*execve: Fix argv access on newer kernels

Kernel commits ba2d0162 and 0e028465, merged in 3.0, refactored the
arguments of do_execve and compat_do_execve, such that "__argv"
is now the name of the incoming pointer, and "argv" is a local
struct user_arg_ptr.  Our tapset must adapt to the new names.

* tapset/syscalls.stp (syscall.execve, syscall.compat_execve): Use
  @defined to set an internal local __argv to either $__argv or $argv,
  then use that for the other __get_argv calls.
* testsuite/buildok/twentyseven.stp: Update for $__argv vs. $argv.
* testsuite/systemtap.base/pointer_array.stp: Ditto.

13 years agorhbz717136: Fix SDT relocations in prelinked modules
Josh Stone [Thu, 14 Jul 2011 22:32:42 +0000 (15:32 -0700)]
rhbz717136: Fix SDT relocations in prelinked modules

* tapsets.cxx (sdt_query::handle_probe_entry): The debuginfoless SDT
  addresses are relative to the ELF file, so get only that bias.  The
  DWARF bias is not interesting here.
  (sdt_query::setup_note_probe_entry): Add the ELF bias to the semaphore
  address too, so record_semaphore can completely relocate it.
  (sdt_query::record_semaphore): SDT V3 semaphores need relocation too,
  now removing both the bias and prelinking effects.

13 years agoMove the stapgraph man page to the correct rpm.
David Smith [Fri, 15 Jul 2011 20:16:41 +0000 (15:16 -0500)]
Move the stapgraph man page to the correct rpm.

* systemtap.spec: Move the stapgraph man page to the systemtap-grapher
  sub-rpm.

13 years agoPR 13001 - !HAVE_NSS build failures
Dave Brolley [Fri, 15 Jul 2011 18:42:15 +0000 (14:42 -0400)]
PR 13001 - !HAVE_NSS build failures

Fix the immediate errors.

13 years agoserver_locale.exp: Fixed env setting
Chris Meek [Fri, 15 Jul 2011 15:59:07 +0000 (11:59 -0400)]
server_locale.exp: Fixed env setting

server_locale.exp no longer changes dejagnu's own env vars, only stap's

13 years agoPR12890 cont'd: Added 3 test cases
Chris Meek [Fri, 15 Jul 2011 15:23:09 +0000 (11:23 -0400)]
PR12890 cont'd: Added 3 test cases

1. Basic Stap call
2. Direct Staprun call without -R
3. Direct Staprun call with -R

13 years agotestsuite: more environment setup
Frank Ch. Eigler [Fri, 15 Jul 2011 15:24:27 +0000 (11:24 -0400)]
testsuite: more environment setup

Unload uprobes at beginning to make sure we exercise that
part too.  Set LANG=C for the runtest process hierarchy.

13 years agoCreate dropped file with mode 0400 in relay_v2.c to make it not world readable.
Mark Wielaard [Fri, 15 Jul 2011 15:06:52 +0000 (17:06 +0200)]
Create dropped file with mode 0400 in relay_v2.c to make it not world readable.

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