]> sourceware.org Git - systemtap.git/log
systemtap.git
8 years agoPR18889 part: improve module-notification related debug tracing
Frank Ch. Eigler [Mon, 31 Aug 2015 15:17:33 +0000 (11:17 -0400)]
PR18889 part: improve module-notification related debug tracing

-DDEBUG_KPROBES -DDEBUG_SYMBOLS -DDEBUG_STP_ON_THE_FLY recommended.

8 years agoPR18885: use unmodified-fnargs in logging.stp
Josh Stone [Fri, 28 Aug 2015 20:36:54 +0000 (13:36 -0700)]
PR18885: use unmodified-fnargs in logging.stp

8 years agoarm/registers.stp: correct the assert condition
Josh Stone [Fri, 28 Aug 2015 16:49:48 +0000 (09:49 -0700)]
arm/registers.stp: correct the assert condition

The offset condition was not fully inverted in its transition to assert.
(The same checks for other architectures were all done correctly.)

8 years agoInclude assert parameters in document comment
Felix Lu [Fri, 28 Aug 2015 13:58:27 +0000 (09:58 -0400)]
Include assert parameters in document comment

8 years agoMove assert function
Felix Lu [Fri, 28 Aug 2015 13:47:29 +0000 (09:47 -0400)]
Move assert function

Move assertion function into logging.stp.

8 years agoPR18876: modify existing tapset and testcases to use assert()
Felix Lu [Thu, 27 Aug 2015 20:35:38 +0000 (16:35 -0400)]
PR18876: modify existing tapset and testcases to use assert()

8 years agoPR18876: new assert tapset function
Felix Lu [Thu, 27 Aug 2015 18:54:43 +0000 (14:54 -0400)]
PR18876: new assert tapset function

* new file: tapset/assert.stp

8 years agotapset: add fullpath_struct_{nameidata,path}() and probe vfs.open*
Frank Ch. Eigler [Thu, 27 Aug 2015 20:36:29 +0000 (16:36 -0400)]
tapset: add fullpath_struct_{nameidata,path}() and probe vfs.open*

Fill little gaps in the tapset.
Includes new sample script io/slowvfs.stp.

8 years agoLet STAP_PRINTF work with no format args
Josh Stone [Thu, 27 Aug 2015 16:36:46 +0000 (09:36 -0700)]
Let STAP_PRINTF work with no format args

With ##__VA_ARGS__, cpp will remove the prior comma when there are no
args at all.  This way you avoid syntax errors like 'printf("fmt",)'.

Also #undef STAP_PRINTF at the function end, like other macros.

8 years agoEscape backslashes on some man pages
Felix Lu [Thu, 27 Aug 2015 14:12:32 +0000 (10:12 -0400)]
Escape backslashes on some man pages

Some instances of \n were not escaped.

8 years agoPR18751: STAP_PRINTF macro
Felix Lu [Thu, 27 Aug 2015 13:29:50 +0000 (09:29 -0400)]
PR18751: STAP_PRINTF macro

* translate.cxx: new macro for embedded-c functions

8 years agoPR10977: new address size tapset functions
Felix Lu [Wed, 26 Aug 2015 16:45:18 +0000 (12:45 -0400)]
PR10977: new address size tapset functions

- new tapset functions get arch_bytes() and uarch_bytes() to obtain
  address size for kernel and user space.

8 years agoPR16968: update probe help page
Felix Lu [Tue, 25 Aug 2015 19:41:10 +0000 (15:41 -0400)]
PR16968: update probe help page

* ioblock.stp: update comments so generated pages are correct

8 years agoPR16493: Remove command line processing and bug fix
Felix Lu [Mon, 24 Aug 2015 19:29:33 +0000 (15:29 -0400)]
PR16493: Remove command line processing and bug fix

* bkl.stp: use stap -G flag instead of manual processing arguments
  also fixed a logic error where backtrace is always turned on.

8 years agoAdd a new command line option to enable print backtraces under some conditions.
Jose Castillo [Wed, 22 Jan 2014 10:40:27 +0000 (10:40 +0000)]
Add a new command line option to enable print backtraces under some conditions.

Most of the times, when we use bkl.stp to investigate BKL issues, we've found useful to have
the backtrace of the function that holds the BKL. This patch adds a new command line option,
"backtrace=N", that when used enables the use of print_backtrace(). The value of <N>, if present,
is taken as useconds, and it is the limit of time the task or tasks have been waiting to acquire
the lock i.e.:

  # stap blk.stp backtrace=100

That would enable printing of backtrace on all tasks holding the kernel
big lock for more than 100us.

Signed-off-by: Jose Castillo <jcastillo@redhat.com>
8 years agoPR10487: Include testcase
Felix Lu [Mon, 24 Aug 2015 15:39:55 +0000 (11:39 -0400)]
PR10487: Include testcase

* switch_file.exp: test that switch_file() works

8 years agoPR10487: check process id before signal
Felix Lu [Mon, 24 Aug 2015 15:11:19 +0000 (11:11 -0400)]
PR10487: check process id before signal

Make sure the entire process group is not signaled

8 years agoDelete output files for systemtap.examples tests without output.
Felix Lu [Fri, 21 Aug 2015 19:44:49 +0000 (15:44 -0400)]
Delete output files for systemtap.examples tests without output.

8 years agoPR10487: Include example usage script
Felix Lu [Fri, 21 Aug 2015 17:05:29 +0000 (13:05 -0400)]
PR10487: Include example usage script

8 years agoPR10487: New tapset to allow output file switching
Felix Lu [Fri, 21 Aug 2015 15:37:32 +0000 (11:37 -0400)]
PR10487: New tapset to allow output file switching

* tapset/switchfile.stp - new tapset function

8 years agoUpdate _stp_pid value
Felix Lu [Fri, 21 Aug 2015 15:32:23 +0000 (11:32 -0400)]
Update _stp_pid value

* The pid of the stapio process is updated to reflect the pid
  after forking the process.

8 years agoPR10551 continued: grsecurity support in transport/symbols.c
Nicolas Brito [Mon, 24 Aug 2015 13:48:32 +0000 (09:48 -0400)]
PR10551 continued: grsecurity support in transport/symbols.c

A non-grsecism snuck into _stp_module_update_self().

8 years agoPR2111: support $srcdir != $builddir
Frank Ch. Eigler [Mon, 24 Aug 2015 13:33:56 +0000 (09:33 -0400)]
PR2111: support $srcdir != $builddir

Noting that tapsets.tmpl.new is built in the $builddir.

8 years agostaprun: ignore SIGUSR2 when not writing to a file (-o)
Josh Stone [Fri, 21 Aug 2015 21:04:24 +0000 (14:04 -0700)]
staprun: ignore SIGUSR2 when not writing to a file (-o)

8 years agoruntime: clear op_index at DW_LNE_end_sequence
Josh Stone [Thu, 20 Aug 2015 17:28:38 +0000 (10:28 -0700)]
runtime: clear op_index at DW_LNE_end_sequence

8 years agoFix to get the signalfd syscall test working.
David Smith [Thu, 20 Aug 2015 16:43:19 +0000 (11:43 -0500)]
Fix to get the signalfd syscall test working.

* testsuite/systemtap.syscall/signalfd.c: Compile the test if either
  __NR_signalfd or __NR_signalfd4 are defined, both do no need to be
  defined.

8 years agoFix PR18856 by making nfsd.close optional.
David Smith [Thu, 20 Aug 2015 16:27:53 +0000 (11:27 -0500)]
Fix PR18856 by making nfsd.close optional.

* tapset/linux/nfsd.stp: Make nfsd.close optional in nfsd.entries (and add
  it optionally to nfsd.return), since the underlying probe point no
  longer exists in kernels 4.2+. Also add nfsd.proc.commit.return to
  nfsd.proc.return (to match nfsd.proc).
* testsuite/buildok/nfsd-detailed.stp: Make nfsd.close tests optional.

8 years agoTweak several syscall test cases to improve results on rawhide.
David Smith [Thu, 20 Aug 2015 14:39:33 +0000 (09:39 -0500)]
Tweak several syscall test cases to improve results on rawhide.

* testsuite/systemtap.syscall/clock.c: Relax return code check.
* testsuite/systemtap.syscall/seccomp.c: Ditto.
* testsuite/systemtap.syscall/ioperm.c: Only include sys/io.h if
  __NR_ioperm is defined.
* testsuite/systemtap.syscall/remap_file_pages.c: Define _GNU_SOURCE.
* testsuite/systemtap.syscall/lxattr.c: Include extra headers to avoid
  compilation errors.
* testsuite/systemtap.syscall/process_vm.c: Ditto.
* testsuite/systemtap.syscall/setns.c: Ditto.
* testsuite/systemtap.syscall/sigaltstack.c: Ditto.
* testsuite/systemtap.syscall/xattr.c: Ditto.
* testsuite/systemtap.syscall/sigmask.c: Make inlines static to make
  rawhide's compiler happy.
* testsuite/systemtap.syscall/vhangup.c: Define capget/capset.

8 years agoPR18503: testcases
Felix Lu [Thu, 20 Aug 2015 14:01:10 +0000 (10:01 -0400)]
PR18503: testcases

* testsuite/procfs_maxsize.exp - make existing testcases compatible
  by throwing away errors / check correct generated size

8 years agoPR18503: include procfs .maxsize overflow error
Felix Lu [Thu, 20 Aug 2015 13:58:58 +0000 (09:58 -0400)]
PR18503: include procfs .maxsize overflow error

* tapset-procfs.cxx - after writing to buffer, generate an error if
  buffer size is not enough

8 years agoruntime: only compare line records at "commit" states
Josh Stone [Thu, 20 Aug 2015 01:38:08 +0000 (18:38 -0700)]
runtime: only compare line records at "commit" states

The state machine for line records may go through intermediate states
which are not proper to compare address against.  Only at DW_LNS_copy,
DW_LNE_end_sequence, and special opcodes are we supposed to "append a
row to the matrix", as the DWARF specification tells us.

The usymfileline testcase didn't hit problems, because its C target only
outputted a simple sequence of special opcodes.  It's now C++, as that's
a very easy way to get code generated from a lot of different files and
lines.  A simple std::find creates pretty complicated line records, even
in an unoptimized build.

8 years agostringtable.h: add logical ops and to_string if needed
Abegail Jakop [Wed, 19 Aug 2015 22:04:36 +0000 (18:04 -0400)]
stringtable.h: add logical ops and to_string if needed

when it comes to string_ref, boost 1.53 doesn't contain all the
logical operations that we need, nor to_string(). so we'll fill in
the gaps with our own defintions for interned_string.

8 years agoUpdate syscall tapset documentation to use cached content.
Martin Cermak [Wed, 19 Aug 2015 18:20:36 +0000 (20:20 +0200)]
Update syscall tapset documentation to use cached content.

Before this update syscall tapset autodocumentation has been
generated dynamically at the build time using stap -L call.
This way stap requires kernel-devel RPM matching `uname -r`
which is tricky to achieve in koji. For this reason the content
is cached from now on:

* doc/SystemTap_Tapset_Reference/syscalls.xmlpart
* doc/SystemTap_Tapset_Reference/syscalls.3stap

The scripts/update-syscall-docs can be used to update the cached
content.

8 years agostring_ref: correct interned_string substr / c_str conflict
Frank Ch. Eigler [Wed, 19 Aug 2015 18:21:41 +0000 (14:21 -0400)]
string_ref: correct interned_string substr / c_str conflict

jistone pointed out a possible problem in the interned_string
implementation; we break the tie in favour of trivial c_str()
(since commit 3e4547ad096d showed its value).

8 years agostap: sort "enabled features" for easier inspection
Josh Stone [Tue, 18 Aug 2015 21:05:17 +0000 (14:05 -0700)]
stap: sort "enabled features" for easier inspection

8 years agoNEWS: tweak the /* stable */ blurb
Frank Ch. Eigler [Tue, 18 Aug 2015 19:10:08 +0000 (15:10 -0400)]
NEWS: tweak the /* stable */ blurb

8 years agofix typo in NEWS
Abegail Jakop [Tue, 18 Aug 2015 18:59:24 +0000 (14:59 -0400)]
fix typo in NEWS

8 years agoNEWS blurb about interned_string
Abegail Jakop [Tue, 18 Aug 2015 14:49:54 +0000 (10:49 -0400)]
NEWS blurb about interned_string

8 years agoadd string_ref to list of enabled features
Abegail Jakop [Mon, 17 Aug 2015 18:39:08 +0000 (14:39 -0400)]
add string_ref to list of enabled features

when outputting systemtap versions (stap -V), output BOOST_STRING_REF
in the list enabled features

8 years agoalternate interned_string if no boost::string_ref
Abegail Jakop [Fri, 14 Aug 2015 20:42:33 +0000 (16:42 -0400)]
alternate interned_string if no boost::string_ref

string_ref was only introduced in boost 1.53, meaning rhel 5 and 6
might not have a recent enough version. to account for this, if
string_ref is not available, fall back on an alternate definition
of interned_string that uses std::string instead.

8 years agoremove unused lex_cast()-ed args
Abegail Jakop [Wed, 12 Aug 2015 21:00:38 +0000 (17:00 -0400)]
remove unused lex_cast()-ed args

8 years agointerned-string conversion: some more function parameters
Frank Ch. Eigler [Mon, 10 Aug 2015 14:12:17 +0000 (10:12 -0400)]
interned-string conversion: some more function parameters

Saving some std::string round-trips.

8 years agointerned_string: construct from null char*
Frank Ch. Eigler [Sat, 8 Aug 2015 11:39:20 +0000 (07:39 -0400)]
interned_string: construct from null char*

Some of the tapset*cxx functions were used to representing empty
function / file names with NULL char*s.  As these are transitioned to
interned_strings, the latter's ctors must be willing to accept those
NULLs and convert them to empty strings.  (Adjusting all the callers
to pass "" instead of NULL in those slots is also possible.)

8 years agostringtable: turn off the INSTRUMENT option by default
Frank Ch. Eigler [Sat, 8 Aug 2015 03:07:52 +0000 (23:07 -0400)]
stringtable: turn off the INSTRUMENT option by default

8 years agointerned_string: drop magic c_str() implementation
Frank Ch. Eigler [Sat, 8 Aug 2015 02:53:26 +0000 (22:53 -0400)]
interned_string: drop magic c_str() implementation

It turns out that while it was right for boost::string_ref not to
provide it, we can, because our interned_string's backing stores
are full (read-only) std::strings, which always carry a \0.  This
shrinks down our interned_string to 2*sizeof(void*) bytes.

8 years agotapset-method.cxx: drop unused variable
Frank Ch. Eigler [Sat, 8 Aug 2015 02:53:17 +0000 (22:53 -0400)]
tapset-method.cxx: drop unused variable

8 years agoINTERNALS: update with some words about interned strings and visitors
Frank Ch. Eigler [Sat, 8 Aug 2015 02:05:52 +0000 (22:05 -0400)]
INTERNALS: update with some words about interned strings and visitors

8 years agoerror message formatting
Frank Ch. Eigler [Sat, 8 Aug 2015 01:44:23 +0000 (21:44 -0400)]
error message formatting

With the richer interned_string API, one can return to the previous
way of finding line boundaries in the input string.  While in the
area, we tweak spacing of parse error message lines.

8 years agostringtable: add diagnostic logging mode
Frank Ch. Eigler [Sat, 8 Aug 2015 00:19:50 +0000 (20:19 -0400)]
stringtable: add diagnostic logging mode

With INTERNED_STRING_INSTRUMENT set, a /tmp/hash.log file is written
out to record each string being interned.  Looking through that is a
good way of tuning the hash function, as well as what
staptree/etc. variables are reverted to std::string form.  (The hint
is that if strings are hardly ever interned in the log, then maybe
they are not reused either.  But that could instead be because they're
being reused exclusively in interned string_ref form, so don't need to
be rehashed.)

8 years agostring_ref cont'd, considering token::msg
Frank Ch. Eigler [Fri, 7 Aug 2015 19:43:14 +0000 (15:43 -0400)]
string_ref cont'd, considering token::msg

Experimentation indicates that the sizeof(interned_string)=24
is so much larger than that of an empty sizeof(std::string)=8
that for mostly-empty slots it's a loss!  A 1-byte std::string
causes a 26-byte malloc, so the interned_string is probably
good for nonempty strings.

8 years agoparser: eliminate needless probe-point-component token duplication
Frank Ch. Eigler [Fri, 7 Aug 2015 19:26:31 +0000 (15:26 -0400)]
parser: eliminate needless probe-point-component token duplication

parser::parse_probe_point created a new token unnecessarily, on the
off chance that a component had to be extended due to wildcards like

  probe foo*

Now this is done only if necessary, and even then not by creating
a new token but rewriting the content of a previous one.

8 years agostringtable tuning
Frank Ch. Eigler [Fri, 7 Aug 2015 18:53:03 +0000 (14:53 -0400)]
stringtable tuning

As guided by "perf stat -r ..." runs, a few microoptimizations on the
string table / interned-string facility.

8 years agostring_ref: mass interned_string conversion
Frank Ch. Eigler [Fri, 7 Aug 2015 03:09:33 +0000 (23:09 -0400)]
string_ref: mass interned_string conversion

Converting many many classes' use of std::string to interned_string.
Largely mechanical, and driven by the desire to (a) store long-lived
duplicate strings only once (in the stringtable), and (b) avoid
instantiating std::strings unnecessarily (in temporary variables
or function parameters).

8 years agostring_ref: switch over to interned_string class
Frank Ch. Eigler [Thu, 6 Aug 2015 22:26:27 +0000 (18:26 -0400)]
string_ref: switch over to interned_string class

Motivated by frustratingly easy-to-miss memory corruption errors of
the direct boost::string_ref model, switching gears to a new derived
class interned_string.  This one performs proper interning when
converting in from a std::string for all copy/assignment operations.
In many cases, it can simply replace std::string through automatic
conversions in/out, naturally paying a CPU / temporary-memory cost.

8 years agostring_ref cont'd: exploiting all over the place
Frank Ch. Eigler [Wed, 5 Aug 2015 19:32:01 +0000 (15:32 -0400)]
string_ref cont'd: exploiting all over the place

Replacing many std::string types, focusing on those stored in
high-cardinality data structures, with boost::string_ref.
Largely mechanical work, with valgrind runs identifying some
persistent trouble-spots of the form

      string_ref FOO = (some_temp_string_value);

which makes them dangle the moment the temp goes out of scope.

8 years agostring_ref usage correction: drop string_ref->to_string()->c_str() chain
Frank Ch. Eigler [Wed, 5 Aug 2015 17:37:10 +0000 (13:37 -0400)]
string_ref usage correction: drop string_ref->to_string()->c_str() chain

This construct generates stale char* pointers that valgrind notices.
We use a first-class temporary string object for these uses.  (They
should probably be rewritten in terms of string_ref native
operations.)

8 years agodwflpp.cxx: memory unleak
Frank Ch. Eigler [Thu, 6 Aug 2015 00:54:48 +0000 (20:54 -0400)]
dwflpp.cxx: memory unleak

The obstacks used for storing piecemeal-printf'd $context functions
could leak if inferior functions threw exceptions.  We now use a
RAII type widget to assure their destruction.

8 years agoc++11 compatibility tweaks for older code
Frank Ch. Eigler [Wed, 5 Aug 2015 16:51:39 +0000 (12:51 -0400)]
c++11 compatibility tweaks for older code

8 years agoconfigury: look for -std=c++11 support
Frank Ch. Eigler [Wed, 5 Aug 2015 16:32:30 +0000 (12:32 -0400)]
configury: look for -std=c++11 support

It turns out that c++11's unordered_set<> makes the stringtable
dramatically faster.  Since that is a c++11-only facility, we switch
the translator (stap) to conditionally compile with that flag.

8 years agostring_ref rework: use global stringtable
Frank Ch. Eigler [Wed, 5 Aug 2015 16:26:29 +0000 (12:26 -0400)]
string_ref rework: use global stringtable

Returning partly to an older model of parser input processing: the
parser::input_contents goes back to a plain string, which may be
modified gradually by $/@ expansion etc.  While string_refs cannot be
made based on that, they don't need to be either, since the
input_contents is a temporary member variable and will be disposed of
when the parser dies.

So we switch back to the prior general logic of
lexer::input_{put,get,peek}, which worked OK.  To populate token
content string_refs, we use a global stringtable (a *set<string>)
against which long-lived string_refs may be issued with a new intern()
call.  The input file contents are amongst those strings interned.
(Many other repeated string uses in the translator could probably
benefit from intern/string_ref'ing, and there are optimization
opportunities within the stringtable implementation proper.)

(While en route, mass-dropped a bunch of unnecessary namespace
prefixes in some affected files.  Sorry for the diff noise.)

8 years agorename string and string_ref vars used in lexer::scan()
Abegail Jakop [Wed, 29 Jul 2015 14:30:13 +0000 (10:30 -0400)]
rename string and string_ref vars used in lexer::scan()

8 years agochange file_contents and input_contents to string_ref
Abegail Jakop [Mon, 27 Jul 2015 16:20:12 +0000 (12:20 -0400)]
change file_contents and input_contents to string_ref

8 years agoparse::parse_probe_point(): store new token's content
Abegail Jakop [Wed, 22 Jul 2015 21:13:41 +0000 (17:13 -0400)]
parse::parse_probe_point(): store new token's content

in parse_porbe_point() the content for a new token is created by
appending to an existing token's content. the string for the new
token's content needs to be stored somewhere, so we'll store it in
the the probe_point, since we can't access the (private) stapfile.

8 years agostore file contents as strings in systemtap_session
Abegail Jakop [Wed, 22 Jul 2015 21:02:45 +0000 (17:02 -0400)]
store file contents as strings in systemtap_session

since we need input_contents and file_contents to last longer
than the lexer, store the input_contents in a  vector in a
systemtap_session. change lexer->input_contents and
stapfile->file_contents to string* so they will point to part of
some string in session->input_contents. will need to change to
string_ref in another commit

8 years agoadapt lexer::scan() for string_ref token->content
Abegail Jakop [Tue, 21 Jul 2015 17:36:11 +0000 (13:36 -0400)]
adapt lexer::scan() for string_ref token->content

parse.cxx: new append_to_content() and set_token_content() to hide
the logic of work of setting up a token's content.
staptree.h: a vector to contain all the mangled strings that tok->content
will point to

8 years agoparse.cxx: replace startswith(tok->content,...)
Abegail Jakop [Tue, 21 Jul 2015 15:57:55 +0000 (11:57 -0400)]
parse.cxx: replace startswith(tok->content,...)

boost::string_ref has a built-in starts_with() functions that
we'll use to replace the std::string  startswith() function.

8 years agoappend .to_string() to tok->content usages
Abegail Jakop [Tue, 21 Jul 2015 15:50:01 +0000 (11:50 -0400)]
append .to_string() to tok->content usages

since tok->content are now boost::string_refs, some portions of the
code don't play well with the fact that string_refs can't be
automatically converted into a std::string, so we need to manually add
in a to_string() call to do the conversion.
Note: can't use .data() since the string_ref is proabably not null terminated.

8 years agoparse.h: change token->content string to string_ref
Abegail Jakop [Tue, 21 Jul 2015 15:48:29 +0000 (11:48 -0400)]
parse.h: change token->content string to string_ref

Breaks a lot of things. Later commits will fix the compile issues
this commit causes.

8 years agoremove unnecessary token param in lexer::input_put
Abegail Jakop [Fri, 17 Jul 2015 21:37:24 +0000 (17:37 -0400)]
remove unnecessary token param in lexer::input_put

8 years agostore lex_cast-ed stap cmd line arguments
Abegail Jakop [Fri, 17 Jul 2015 19:39:31 +0000 (15:39 -0400)]
store lex_cast-ed stap cmd line arguments

session.*: store lex_cast() versions of the stap arguments passed
through the command line.
parse.cxx: if the scanner encounters [$|@]<NN> in a stap script, use
the pre-lex_cast() stap arguments instead of calling lex_cast() each
time the scanner encounters [$|@]<NN>.

8 years agodon't inject script args into input_contents
Abegail Jakop [Fri, 17 Jul 2015 17:39:29 +0000 (13:39 -0400)]
don't inject script args into input_contents

parse.cxx: instead of keeping track of a seperate set of file_contents
(lexer->input_contents) in which [$|@]<NN> are replaced by script args,
we'll keep file_contents and input_contents identical to one another
and parse the scripts args strings when we encouter [$|@]<NN>

8 years agoupdate-po i18n for zanata liveness checking
Frank Ch. Eigler [Fri, 14 Aug 2015 21:16:23 +0000 (17:16 -0400)]
update-po i18n for zanata liveness checking

8 years agoMention PR2111 fix in the NEWS file.
Martin Cermak [Fri, 14 Aug 2015 20:05:29 +0000 (22:05 +0200)]
Mention PR2111 fix in the NEWS file.

8 years agoUpdate NEWS
Felix Lu [Fri, 14 Aug 2015 17:57:09 +0000 (13:57 -0400)]
Update NEWS

- include /* stable */ embedded-c pragma details

8 years agoRemove manual memoization from systemtap example scripts
Felix Lu [Thu, 13 Aug 2015 20:51:21 +0000 (16:51 -0400)]
Remove manual memoization from systemtap example scripts

Stored values are now replaced with an explicit functioncall which
gets optimized by the translator.

8 years agoFix and improve testcases
Felix Lu [Fri, 14 Aug 2015 17:25:39 +0000 (13:25 -0400)]
Fix and improve testcases

- Modify stable_function testcase to test for functioncall arguments
- Add untested callee testcase to unprivileged_myproc

8 years agoPR12151: Check functioncall arguments
Felix Lu [Mon, 10 Aug 2015 18:52:55 +0000 (14:52 -0400)]
PR12151: Check functioncall arguments

Visitor will now go into functioncall arguments and transform any
stable functioncalls.

8 years agoPR12151: Fix recursion problem, add stable synthetic var reading functions
Felix Lu [Wed, 5 Aug 2015 17:55:53 +0000 (13:55 -0400)]
PR12151: Fix recursion problem, add stable synthetic var reading functions

elaborate.cxx - When checking for stable flag, does not follow
functioncall chains. All stable functions are now identified at beginning
of semantic_pass_opt_7.

tapsets.cxx - In non guru-mode, context variable reading functions
are cached.  Moved optimization step 7 after duplicate functioncall
pass to remove duplicate synthetic functions first.

8 years agoPR12151: Mark tapset functions with /* stable */ flag
Felix Lu [Wed, 5 Aug 2015 14:43:08 +0000 (10:43 -0400)]
PR12151: Mark tapset functions with /* stable */ flag

Added flags for pure functions with empty parameter list.

8 years agoPR12151: Loop optimizations
Felix Lu [Fri, 31 Jul 2015 18:05:40 +0000 (14:05 -0400)]
PR12151: Loop optimizations

Functioncalls are now lifted into block enclosing top level loop.

8 years agoAdd testcases for stable optimization
Felix Lu [Thu, 30 Jul 2015 20:09:05 +0000 (16:09 -0400)]
Add testcases for stable optimization

* testsuite/systemtap.base/stable* - Testing to make sure that
the result of optimized script matches nonoptimized.
Also checks that the embedded-c functions are called the correct
number of times.

8 years agoPR12151: Improve optimization to block level
Felix Lu [Tue, 21 Jul 2015 15:52:00 +0000 (11:52 -0400)]
PR12151: Improve optimization to block level

Try to memoize on a block to block basis

8 years agostap.1: draft document /* stable */
Frank Ch. Eigler [Mon, 20 Jul 2015 19:02:13 +0000 (15:02 -0400)]
stap.1: draft document /* stable */

Note rough semantics of new embedded-C function markup,
and its relationship to /* pure */.

8 years agoPR12151: Add new visitor
Felix Lu [Mon, 20 Jul 2015 15:37:03 +0000 (11:37 -0400)]
PR12151: Add new visitor

* elaborate.cxx - new visitor to support optimization

8 years agoFix PR2111 by autodocumenting syscall tapset.
Martin Cermak [Fri, 14 Aug 2015 13:58:08 +0000 (15:58 +0200)]
Fix PR2111 by autodocumenting syscall tapset.

* doc/SystemTap_Tapset_Reference/syscalls.py: Documentation generator.
* doc/SystemTap_Tapset_Reference/tapsets.tmpl: New syscalls section.
* doc/SystemTap_Tapset_Reference/Makefile.am: Generate syscall docs.
* Other updates are automake generated changes.

8 years agoFix listing_mode.exp
Felix Lu [Thu, 13 Aug 2015 13:41:22 +0000 (09:41 -0400)]
Fix listing_mode.exp

PR18075 changes caused listing_mode.exp to find untested probes
which are added in this commit.

8 years agoFix unprivileged_probes.exp by aligning it to PR18075 changes.
Martin Cermak [Thu, 13 Aug 2015 12:43:20 +0000 (14:43 +0200)]
Fix unprivileged_probes.exp by aligning it to PR18075 changes.

Commit 80e50fe71e0d98ee65198855c2223184492a069b brought new probes
that unprivileged_probes.exp wasn't aware of.  This change aligns
with documantation introduced in commit f0e06c0d391873a5b04aa8.

8 years agotestsuite C programs: fix some gcc warnings
Frank Ch. Eigler [Tue, 11 Aug 2015 15:46:54 +0000 (11:46 -0400)]
testsuite C programs: fix some gcc warnings

A few "undeclared function" warnings could make tests untested.
We ununtest a bunch.

8 years agoFix PR18769 by moving @__compat_task() macro.
Martin Cermak [Tue, 4 Aug 2015 14:58:56 +0000 (16:58 +0200)]
Fix PR18769 by moving @__compat_task() macro.

Moved the @__compat_task() macro from tapset/linux/syscalls.stpm
to tapset/macros.stpm so that both kernel and dyninst runtimes
can consume it.

8 years agoUpdate file mode for testsuite/buildok/stap_staticmarkers-detailed.stp
Martin Cermak [Mon, 3 Aug 2015 13:24:24 +0000 (15:24 +0200)]
Update file mode for testsuite/buildok/stap_staticmarkers-detailed.stp

Missing the 'execute' perm on stap_staticmarkers-detailed.stp causes
`ERROR: tcl error sourcing ./systemtap.pass1-4/buildok.exp` during
make installcheck.

8 years agoFix PR18711 by updating the netfilter code for new rhel-7.2 kernels.
Martin Cermak [Fri, 31 Jul 2015 15:40:18 +0000 (17:40 +0200)]
Fix PR18711 by updating the netfilter code for new rhel-7.2 kernels.

* buildrun.cxx (compile_pass): Add new netfilter autoconf test.
* runtime/linux/autoconf-netfilter-313b.c: New autoconf test.
* tapset-netfilter.cxx: (emit_module_decls): Add support for new
  netfilter code backported to kernel-3.10.0-284.el7.

8 years agosample scripts: add noptrace.txt, regen index
Frank Ch. Eigler [Tue, 28 Jul 2015 18:52:26 +0000 (14:52 -0400)]
sample scripts: add noptrace.txt, regen index

9 years agochecks for uprobes in the testsuite sdt_varname.exp
Snehal Phule [Thu, 23 Jul 2015 05:15:18 +0000 (10:45 +0530)]
checks for uprobes in the testsuite sdt_varname.exp

Signed-off-by:Snehal Phule <snehal@linux.vnet.ibm.com>

9 years agoSupport java-1.8.0-openjdk.
Martin Cermak [Wed, 22 Jul 2015 13:17:04 +0000 (15:17 +0200)]
Support java-1.8.0-openjdk.

9 years agoUpdate rename.c syscall test for 3.10.0-294.el7 kernels.
Martin Cermak [Thu, 16 Jul 2015 14:33:31 +0000 (16:33 +0200)]
Update rename.c syscall test for 3.10.0-294.el7 kernels.

On ppc64le, 'renameat2' syscall is unimplemented as defined in the
arch/powerpc/include/asm/systbl.h file. This change also allows
'renameat2' syscall to succeed when renaming a directory to a file
in case RENAME_EXCHANGE is defined.

9 years agoUpdate arch_compile_flag_{name,bits}(). The ppc64le is 64bit only.
Martin Cermak [Thu, 16 Jul 2015 14:29:18 +0000 (16:29 +0200)]
Update arch_compile_flag_{name,bits}(). The ppc64le is 64bit only.

9 years agosystemtap.spec changes for ppc64{be,le} java helper library symlinking
Lukas Berk [Wed, 15 Jul 2015 15:22:17 +0000 (11:22 -0400)]
systemtap.spec changes for ppc64{be,le} java helper library symlinking

systemtap.spec - remove special clauses ppc64{be,le} linking

9 years agoAdd ppc64le to java/Makefile.*
Lukas Berk [Wed, 15 Jul 2015 14:46:27 +0000 (10:46 -0400)]
Add ppc64le to java/Makefile.*

java/Makefile.am - add JAVA_ARCH override for ppc64le
java/Makefile.in - add JAVA_ARCH override for ppc64le

9 years agoUpdate the [nd_]syscall.clone probe aliases for rawhide.
David Smith [Tue, 14 Jul 2015 21:19:11 +0000 (16:19 -0500)]
Update the [nd_]syscall.clone probe aliases for rawhide.

* tapset/linux/syscalls.stp: Add '_do_fork' as an alternate probe point
  for syscall.fork. Kernel commit 3033f14ab78c32 renamed 'do_fork' to
  '_do_fork'.
* tapset/linux/nd_syscalls.stp: Ditto.

9 years agoPR18630: New testcase for dwarfless parameters from a uprobe.
Martin Cermak [Tue, 14 Jul 2015 06:05:50 +0000 (08:05 +0200)]
PR18630: New testcase for dwarfless parameters from a uprobe.

* tapset/s390/registers.stp: Remove constraint added by commit
  eefd579b blocking data acquistion from a uprobe. This is per
  PR18649#c1 and subsequent IRC chat with dsmith, the author
  of the constraint.
* testsuite/systemtap.base/uprobe_nd_params.exp: New testcase.

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