| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
For now, the autoconf for the new code is disabled, because it shows
poorer performance than our existing dereferencing functions. This is
probably because ours get inlined and optimized. The code is being
committed so that we may re-evaluate its usefulness in the future.
This addresses bugzilla 6432.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
PR 3542
* buildrun.cxx (compile_pass): Add an autoconf to check the kernel
supports batch unregistration.
* tapsets.cxx (dwarf_derived_probe_group::emit_module_decls): Add an
array of probe pointers for batch unregistration.
* tapsets.cxx (dwarf_derived_probe_group::emit_module_exit): Use
unregister_k(ret)probes if it is supported.
* runtime/autoconf-unregister-kprobes.c : New file.
|
|
|
|
|
|
| |
PR 5928.
* buildrun.cxx (compile_pass): Use EXTRA_CFLAGS for autoconf'd values
instead of CFLAGS_<module>.o.
|
|
|
|
|
|
|
|
|
|
|
| |
2008-02-28 Frank Ch. Eigler <fche@elastic.org>
PR5045
* session.h (pending_interrupts): New global.
* main.cxx (handle_interrupts): New fn to handle SIGINT* etc.
* elaborate.cxx, translate.cxx, tapsets.cxx, main.cxx (*): Insert
pending_interrupts escape hatches inside potentially timetaking loops.
* buildrun.cxx: Don't deal with signals.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2008-02-22 Frank Ch. Eigler <fche@elastic.org>
PR5787, PR2608, .statement()
* tapsets.cxx (query_dwarf_func): Process .statement(NUM) probes too.
(query_cu): Ditto.
(query_func_info): Bypass prologue searching for .statement() probes.
(query_cu): Ditto.
(build_blacklist): Remove unsightly empty first alternative in
"^(|foo)$" regexps. Show them for -vvv.
* buildrun.cxx (compile_pass): Don't turn on "gcc -Q" on until -vvvv.
2008-02-22 Frank Ch. Eigler <fche@elastic.org>
* systemtap.base/stmtvars.exp: New test for PR 5787.
|
|
|
|
|
| |
* buildrun.cxx (run_make_cmd, compile_pass): Tweak kbuild
parametrization to produce useful compile logs at -vv.
|
|
|
|
| |
patch for x86/x86_64
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* main.cxx: Restored pre-10-08 version: moved uprobes build to
buildrun.cxx.
* buildrun.cxx: Reworked uprobes build so that the resulting
Module.symvers can be used in building the stap-generated
module. If user isn't root, call verify_uprobes_uptodate()
rather than trying (and failing) to rebuild uprobes.ko.
* buildrun.h: uprobes_enabled() and make_uprobes() are no
longer extern.
* runtime/uprobes/Makefile: Added uprobes.ko target for use
by verify_uprobes_uptodate().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* main.cxx: Add pass 4.5: make uprobes.ko in runtime/uprobes
* buildrun.cxx: Add uprobes_enabled() and make_uprobes().
Factor run_make_cmd() out of compile_pass().
* buildrun.h: Add uprobes_enabled and make_uprobes decls.
* tapsets.cxx: Do correct #include for modprobed uprobes.ko;
set need_uprobes in pass 2.
* session.h: Add need_uprobes
* runtime/staprun/common.c: Add -u option -> need_uprobes
* runtime/staprun/staprun_funcs.c: Generalize insert_module()
to support inserting uprobes.ko.
* runtime/staprun/staprun.c: Add enable_uprobes(). insert_module
call becomes insert_stap_module().
* runtime/staprun/staprun.h: Reflect insert_module() and
need_uprobes changes
* runtime/uprobes/*.[c,h]: uprobes is built as a module,
rather than included into the source of the stap-generated
module.
* runtime/uprobes/Makefile: Added
|
|
|
|
|
| |
* buildrun.cxx (compile_pass): Tweaked build system for the
2.6.23-rc8-mm2 kernel.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 3916
* buildrun.cxx (compile_pass): Add new autoconf options for checking
time related APIs.
* time.c (stp_time_t): Rename cpufreq to freq.
(__stp_get_freq): Rename from __stp_estimate_cpufreq. Use tsc_khz or
cpu_khz if it is available. Use itc_freq on ia64.
(__stp_ktime_get_real_ts): New function to get current kernel time.
(__stp_time_timer_callback): Call __stp_ktime_get_real_ts to get
base time.
(__stp_init_time): Ditto.
(__stp_constant_freq): New function to check the processor has
constant frequency timestamp counter.
(_stp_kill_time): Don't use the cpufreq notifier if the processor has
constant frequency timestamp counter.
(_stp_init_time): Ditto.
* autoconf-ktime-get-real.c : New file.
* autoconf-constant-tsc.c: Ditto.
* autoconf-tsc-khz.c: Ditto.
|
|
|
|
|
|
|
|
|
| |
PR2424
From Lai Jiangshan <laijs@cn.fujitsu.com>
* util.cxx (cmdstr_quoted): New. Properly quote
command string.
* buildrun.cxx (run_pass): Call cmdstr_quoted().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Merge from setuid-branch. Changes also by Martin Hunt
<hunt@redhat.com>.
* Makefile.am: Added staprun_funcs.c and cap.c to
staprun_SOURCES. Added -lcap to staprun_LDADD. Removed
stp_check reference. Added stapio program. Staprun is now
setuid.
* Makefile.in: Rebuilt.
* configure.ac: Version increase to 0.6 and checks for libcap
availability. Removed stp_check reference.
* configure: Regenerated.
* stp_check.in: Removed.
* systemtap.spec.in: Version increase to 0.6-1 and added
BuildReq for libcap-devl (and removed sudo requirement).
Added %pre script to create new groups. Staprun is now
setuid.
* NEWS: Added info on new security model.
* INTERNALS: Removed sudo reference.
* README.security: New file.
* main.cxx (main): Make sure module name isn't too long.
* hash.cxx: Moved MODULE_NAME_LEN define to hash.h.
* hash.h: Moved MODULE_NAME_LEN define here from hash.cxx.
* buildrun.cxx (run_pass): No longer runs staprun with "sudo".
* stap.1.in: Removed sudo references and added information about
the stapdev/stapusr groups.
* staprun.8.in: Added information about module detaching and
attaching. Removed sudo references and added information
about the stapdev/stapusr groups. Removed reference to
staprun needing to be run as root. Removed reference to
removed '-u USERNAME' option.
* .cvsignore: Removed stp_check and added stapio and stap_merge.
|
|
|
|
|
|
|
| |
* buildrun.cxx (compile_pass): Unset environment variables that
could interfere with building the kernel module. Fixes PR 4664.
* main.cxx (main): Unsets a few standard environment variables for
safety.
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 4255 teaser.
* elaborate.cxx (has_null_param): New function.
* elaborate.h: Declare it.
* session.h: Include uprobe_derived_probes group.
* tapsets.cxx (uprobe_*): New classes.
(all_session_groups): List uprobes in list.
(register_standard_tapset): Interpret
process(#).statement(#).absolute and
process(#).statement(#).absolute.return probe points.
|
|
|
|
|
| |
* buildrun.cxx (run_pass): Send proper verbosity
level to staprun
|
|
|
|
|
|
|
|
|
|
|
| |
PR 4432.
* buildrun.cxx (compile_pass): Tweak autoconf CFLAGS handling to
avoid macro recursion but still get the needed -I directives.
Add the inode-private autoconf test.
2007-04-27 Frank Ch. Eigler <fche@elastic.org>
* autoconf-inode-private.c: New file from hunt.
|
|
|
|
|
| |
PR 4432.
* buildrun.cxx (compile_pass): Add $(mflags-y) to stap_check_build.
|
|
|
|
|
| |
* buildrun.cxx (compile_pass): Correct placement of commented-out
"set -x" make-macro-debugging snippet.
|
|
|
|
|
|
| |
GCC 4.3 compatibility patches from Debian.
* buildrun.cxx, hash.cxx, tapsets.cxx, translate.cxx: #include a few
more C++ headers.
|
|
|
|
|
|
|
|
|
|
|
| |
* buildrun.cxx (compile_pass): Emit kbuild-time autoconf widgets
to customize runtime or translator C code to actual kernel rather
than kernel version string. Thanks to FC 2.6."20" for the nudge.
* tapsets.cxx (hrtimer*emit_module): First client: HRTIMER_{MODE_}REL.
2007-03-19 Frank Ch. Eigler <fche@elastic.org>
* autoconf-hrtimer-rel.c: New file.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Makefile.am (staprun_SOURCES): Sources now live in
runtime/staprun.
* makefile.in: Rebuilt.
* staprun.8.in: Updated.
* buildrun.cxx (run_pass): Use "-v" instead of not "-q" to
be compatible with latest staprun.
* translate.cxx (emit_module_exit): Print warning using
_stp_printf so it shows up at the end of all output.
(translate_pass): Replace STP_RELAYFS with STP_BULKMODE.
Eliminate STP_RELAYFS_MERGE.
|
| |
|
|
|
|
|
|
| |
* util.h (lex_cast_qstring): Move def'n here. Also quote \.
(stringify, lex_cast, lex_cast_hex): Move defn here.
* buildrun.cxx, elaborate.cxx, main.cxx, staptree.cxx: Adapt.
|
|
|
|
|
|
|
|
|
| |
* Makefile.am: Install tapset/README too.
* Makefile.in: Regenerated.
2006-11-02 Frank Ch. Eigler <fche@elastic.org>
* README: Add a blurb against running these scripts directly.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* .cvsignore: Changed 'stpd' reference to 'staprun'.
* INTERNALS: Ditto.
* buildrun.cxx (run_pass): Ditto.
* lket.5.in: Ditto.
* stap.1.in: Ditto.
* stapruncs.5.in: Ditto.
* examples/small_demos/demo_script.txt: Ditto.
* examples/small_demos/sys.stp: Ditto.
* systemtap.spec.in: Created a new subpackage,
"systemtap-runtime", that contains staprun.
* Makefile.am: Renamed 'stpd' to 'staprun' and moved it to
$(bindir).
* Makefile.in: Regenerated from Makefile.am.
* configure.ac: Incremented version number.
* configure: Regenerated from configure.ac.
|
|
|
|
|
|
| |
* buildrun.cxx (run_pass): Remove "-m" option to stpd.
* translate.cxx (translate_pass): #define STP_RELAYFS_MERGE
if appropriate.
|
|
|
|
| |
* buildrun.cxx (run_pass): Remove "-r" option to stpd.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* translate.cxx: Added inclusion of session.h.
(translate_pass): Instead of asking each probe to emit itself, we
ask the session's probes member variable to emit all the probes.
* tapsets.cxx: Added inclusion of session.h. Added a
register_probe member function to all derived_probe based
classes. Added a derived_probe_group derived class for all probe
types:
(be_derived_probe_group): New class.
(never_derived_probe_group): New class.
(dwarf_derived_probe_group): New class.
(timer_derived_probe_group): New class.
(profile_derived_probe_group): New class.
(mark_derived_probe_group): New class.
(hrtimer_derived_probe_group): New class
(derived_probe_group_container): New class.
* elaborate.h: Removed inclusion of session.h since session.h now
includes elaborate.h.
(derived_probe): Added register_probe member function.
(derived_probe_group): Added class definition. This is the base
class of all of the derived probe groups - dwarf, timer, etc.
(derived_probe_group_container): Added class definition. An
instance of this class will be stored in the session and contain
all the other probe groups.
* elaborate.cxx (derived_probe_group::register_probe): Added
derived_probe_group::register_probe stubs.
(alias_derived_probe::register_probe): Added register_probe member
function.
(semantic_pass_symbols): After deriving a probe, the probes now
register themselves with the session.
* session.h: Includes elaborate.h to get
derived_probe_group_container definition. systemtap_session class
'probes' member variable switched from a vector of derived probes
to a derived_probe_group_container.
* buildrun.cxx: Added inclusion of session.h since it was removed
from elaborate.h.
* main.cxx: Added inclusion of session.h since it was removed
from elaborate.h.
* parse.h: Added forward struct declarations.
* staptree.h: Removed inclusion of session.h.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tapsets.cxx (dwflpp::dwfl_assert): Added optional extra_msg
parameter to be able to print out extra error message.
(dwflpp::setup): Uses new 'extra_msg' parameter to dwfl_assert()
to ask user to install kernel-debuginfo when
dwfl_linux_kernel_report_kernel() or
dwfl_linux_kernel_report_modules() fails (Bugzilla #2669).
* buildrun.cxx (compile_pass): Checks to make sure module build
directory exists before trying to run make there (Bugzilla #2669).
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 953
* elaborate.h (derived_probe): Add field "name". Stop passing
"probe index" to other emit_* calls.
(emit_probe_context_vars): New member function.
* elaborate.cxx (derived_probe ctor): Generate unique name.
* translate.cxx (*): Adapt to index->name.
(emit_probe): Realize that probe locals only occur at nesting=0.
* tapsets.cxx (*derived_probe::emit_*): Adapt to index->name.
(mark_var_expanding_copy_visitor): New class to process $argN.
(mark_derived_probe ctor): Call it.
(mark_derived_probe::emit_probe_context_vars): Do it.
* buildrun.cxx (compile_pass): Add more optional gcc verbosity.
Add CFLAGS += -freorder-blocks.
* testsuite/buildok/marker.stp: New test.
|
| |
|
| |
|
|
|
|
|
| |
* buildrun.cxx (run_pass): Add "-u username".
* stapfuncs.5.in: Document system().
|
|
|
|
|
|
|
|
| |
* main.cxx: Make "-v" (verbose) flag a counter.
* stap.1.in: Document this.
* session.h: Corresponding changes.
* {elaborate,buildrun,tapsets,translate}.cxx: Update all uses of
verbose flag to compare it to sensible level for value of message.
|
|
|
|
|
|
| |
* main.cxx (main): In verbose mode, print user+sys times after
each pass.
* buildrun.cxx (compile_pass): Move success message back to main().
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 2060 etc.
* tapsets.cxx (visit_target_symbol): Tolerate failed resolution by
letting target_symbol instance pass through to optimizer and
type checker.
* elaborate.cxx (semantic_pass_optimize): New family of functions and
associated visitor classes.
(visit_for_loop): Tolerate absent init/incr clauses.
(semantic_pass): Invoke unless unoptimized (-u) option given.
* main.cxx, session.h: Add support for flag.
* staptree.cxx (visit_for_loop): Tolerate absent init/incr clauses.
(traversing_visitor::visit_arrayindex): Visit the index expressions.
(functioncall_traversing_visitor): New class.
(varuse_tracking_visitor): New class.
* staptree.h: Corresponding changes.
* parse.cxx (parse_for_loop): Represent absent init/incr expressions
with null statement pointer instead of optimized-out dummy numbers.
* stap.1.in: Document optimization.
* testsuite/{semko,transko}/*.stp: Added "-u" or other code to many
tests to check bad code without optimizer elision.
* testsuite/semok/optimize.stp: New test.
* elaborate.cxx (unresolved, invalid, mismatch): Standardize error
message wording.
* stapfuncs.5.in: Tweak print/printf docs.
* tapset/logging.stp: Remove redundant "print" auxiliary function,
since it's a translator built-in.
* testsuite/transok/five.stp: Extend test.
* translate.cxx (emit_symbol_data): Put symbol table into a separate
temporary header file, to make "-p3" output easier on the eyes.
* buildrun.cxx (compile_pass): Eliminate test-mode support throughout.
* main.cxx, session.h, translate.cxx: Ditto.
* main.cxx (main): For last-pass=2 runs, print post-optimization ASTs.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 2060.
* buildrun.cxx (compile_pass): Add "V=1" to kbuild if verbose.
* translate.cxx (translator_output): For output-file constructor,
set an explicit output buffer.
(emit_module_init, emit_module_exit): Reorganize output, to spit
each individual probe registration/deregistration blurb into a
separate function.
* translate.h: Corresponding changes; set default buffer size to 8K.
* translate.cxx, tapsets.cxx: Replace "endl" by buffer-friendly "\n"
throughout code generation routines.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 1937
* buildrun.cxx (run_pass): Pass new "-d PID" option to stpd.
Set SIGHUP to SIG_IGN too.
2005-12-08 Frank Ch. Eigler <fche@elastic.org>
PR 1937
* stpd.c (main): Support new "-d" option.
(usage): Document it.
* librelay.c (driver_poll): New function to react to death of
driver process.
(stp_main_loop): Call it if "-d PID" given. Treat SIGHUP like others.
|
| |
|
|
|
|
|
|
|
| |
PR 1477.
* main.cxx (main): Set PATH and LC_ALL, so
* buildrun.cxx (compile_pass, run_pass): ... and ...
* translate.cxx (emit_symbol_data): ... don't have to.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 1182.
* main.cxx (main): Support -D macro-setting option.
* stap.1.in: Document it and related macros.
* buildrun.cxx (compile_pass): Emit macro definitions.
* translate.cxx (translate_pass): Guard limit macros with #ifdef.
Eliminate MAXCONCURRENCY macro.
* elaborate.h (systemtap_session): Add "macros" field.
* parse.cxx (parse_if_statement): Clear "elseblock" if needed.
2005-09-28 Frank Ch. Eigler <fche@elastic.org>
PR 1182.
* systemtap.samples/control_limits.*: New test.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tapset/context.stp: Add function target().
* stapfuncs.5.in (target): Document it.
* elaborate.h (struct systemtap_session): Add cmd and target_pid to
the struct.
* main.cxx (usage): Add secriptions of "-c" and "-x" options.
(main): Set s.cmd and s.target_pid.
* buildrun.cxx (stringify): Copy this utility func here too.
(run_pass): Add new options to set cmd and pid to the stpd
command line.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* stapprobes.5.in, stapfuncs.5.in, stapex.5.in: New man pages.
* stap.1.in: Moved some content out.
* Makefile.am (man_MANS): Add new man pages.
* configure.ac (AC_CONFIG_FILES): Add them.
* systemtap.spec.in: Package them.
* Makefile.in, configure: Regenerated.
* buildrun.cxx (run_pass): Pass "-r" to stpd.
* translate.cxx (emit_common_header): Wrap try/catch around
variable decls, to improve exception particularity.
(visit_literal_number): Emit as unsigned literal, which is
actually a subtle correctness issue.
|
|
|
|
|
| |
* buildrun.cxx (compile_pass): Add -Wno-unused to CFLAGS because
usually a module doesn't use every function in the runtime.
|
|
|
|
|
|
| |
* Makefile.am (install-data-local): Correct typo.
* buildrun.cxx (compile_pass): Ditto.
* main.cxx (main): Print errors if passes 4 or 5 fail.
|