| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
| |
PR 2433
* tapsets.cxx (dwarf_query::blacklisted_p): Extend the list of
blacklisted .return probes to include "do_exit". Correct funcname
typo for "sys_groupexit".
* tapset/syscalls.stp: Remove .return probe aliases of never-
returning syscall.exit and syscall.exit_group calls.
|
|
|
|
|
| |
PR 2506
* tapsets.cxx (dwarf_query::blacklisted_p): skip probes in .exit.*
|
|
|
|
| |
the average amount of time spent in the probe.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 2427.
* staptree.cxx (varuse_collecting_visitor::visit_embeddedcode):
Support /* pure */ declaration. Stop using __tvar_ naming hack.
(v_c_u::visit_print_format): Mark sprint and sprintf as
side-effect-free.
(deep_copy_visitor::visit_print_format): Propagate raw_components.
* stap.1.in: Document declaration.
* elaborate.cxx (semantic_pass_opt2): Verbose message tweak.
(dead_stmtexpr_remover): Extend for more aggressive optimization.
* tapsets.cxx (dwarf,mark_var_expanding_copy_visotor): Add
/* pure */ declaration to rvalue expansions.
* tapset/*.stp: Added /* pure */ declarations to many functions.
* testsuite/parseok/unparsers.stp: Propagate guru mode flag.
* testsuite/buildok/twentyfour.stp: New test.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
* tapsets.cxx (mark_derived_probe::emit_{de}registrations):
Use cmpxchg to synchronize.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
* tapsets.cxx (resolve_prologue_endings): Rewrote.
(resolve_prologue_endings2): Removed.
* gen-stapmark.h: Emit a 0-arity marker.
* stapmark.h: Regenerated for arities 0..6.
|
|
|
|
|
|
| |
* tapsets.cxx (dwarf_derived_probe::emit_registrations):
Change maxactive so single-processor kernels using
kretprobes don't get lots of dropped probes.
|
|
|
|
|
|
|
|
|
| |
PR 953, part 1
* tapsets.cxx: (mark_derived_probe*): New classes.
(register_standard_tapsets): Register kernel/module.mark() family.
* stapmark.h: New header for static instrumentation markers.
* gen-stapmark.h: New perl script to generate it.
* elaborate.cxx (derived_probe ctor): Ignore null location*.
|
|
|
|
|
|
|
|
|
|
|
| |
* tapsets.cxx (hrtimer_derived_probe::*): creates a probe point
based on the hrtimer APIs.
* tapsets.cxx (hrtimer_builder::*): parses the user's time-spec
into a 64-bit nanosecond value, and calls the appropriate
derived_probe.
* tapsets.cxx (register_standard_tapsets): add hrtimer bindings
* translate.cxx (translate_pass): add linux/random.h include,
used for generating 64-bit random numbers for hrtimers.
|
|
|
|
|
|
|
|
|
| |
* main.cxx (main): search forward for dashes in the kernel release,
to work properly with release names with more than one dash.
* parse.cxx (eval_pp_conditional): ditto
* tapsets.cxx (profile_derived_probe::profile_derived_probe): ditto
* safety/safety.py (StaticSafety::__build_search_suffixes): ditto,
and add copyright & GPL tag
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 1304
* parse.cxx (lexer): Take systemtap_session argument.
(lexer::scan): Support $1..$NNNN and @1...@NNNN expansion.
* stap.1.in: Document this.
* testsuite/semok/args.stp: New test.
* translate.cxx (var::init, emit_global): Emit code to allow
named module parameters to initialize global string/number scalars.
* stap.1.in: Don't document this yet.
PR 2334
* main.cxx (main): Clarify "-v" option repeatibility.
* stap.1.in: Ditto.
|
|
|
|
|
|
|
|
|
| |
PR 2293.
* tapsets.cxx (emit_probe_epilogue): Emit early local_irq_save().
(emit_probe_epilogue): ... and matching _restore().
* main.cxx (main): Emit a "hello, I'm starting" message
before pass 5 in verbose mode.
|
|
|
|
|
|
| |
* src/testsuite/buildok/syscalls.stp: Build with "-u" to build-test
all auxiliary functions.
* tapsets.cxx (dwarf_query::add_probe_point): Add some "-vv" output.
|
|
|
|
|
|
| |
PR 2068
* tapsets.cxx (dwarf_query::blacklisted_p): add __switch_to
to the blacklist for x86_64 architecture only.
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 2060: lock elevation, mop-up
* staptree.cxx (functioncall_traversing_visitor): Store a
current_function pointer during traversal.
(visit_embeddedcode): Use it to handle $target-synthesized functions.
(varuse_collecting_visitor::visit_assignment): Correct l-lr typo.
(visit_foreach_loop): Note added write on sorted foreach.
(visit_delete_statement): Note as read+write.
* staptree.h: Corresponding changes.
* elaborate.cxx (dead_assignment_remover::visit_expr_statement):
Correct stmt token after possible expression rewriting.
* tapsets.cxx (visit_target_symbol): Create naming convention
to recognize $target-synthesized functions.
* translate.cxx (emit_locks, emit_unlocks): New functions to
emit lock/unlock sequences at the outermost level of a probe.
(emit_probe): Call them.
(varlock_*): #if-0 out the lock code generation. Later, these
classes should be removed.
(translate_pass): Emit read_trylock() kludge macro for old kernels.
|
|
|
|
| |
includes the fix for PR #1345.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
* tapsets.cxx (profile_derived_probe::emit_probe_entries): Setup
c->regs properly in light of the emit_probe_prologue change.
|
|
|
|
|
|
|
| |
PR 1972.
* tapsets.cxx (var_expanding_copy_visitor::visit_target_symbol):
Produce error message for $var access within .return probes.
* testsuite/semko/thirtyfour.stp: New test.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
* tapsets.cxx (emit_deregistration): Fix bad thinko on loop nesting.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 1144, 1379
* tapsets.cxx (emit_probe_prologue, _epilogue): New routines.
Call from existing derived_probe spots. Implement soft errors in
epilogue code. Implement reentrancy detection in prologue code.
(dwarf_derived_probe::emit_deregistration): Add kprobes layer
"nmissed" to skipped_count.
* translate.cxx (varlock): Use nsleep(TRYLOCKDELAY) in lock
contention loop.
(emit_module_exit): Report number of soft errors and skipped probes.
(emit_function, _probe): Add __restrict__ marker to context pointer.
(translate_pass): Define new MAXTRYLOCK, TRYLOCKDELAY, MAXERRORS,
MAXSKIPPED parameters.
* tapset/logging.stp (error): Don't stp_error, just set context state.
* stap.1.in, stapfuncs.5.in: Document soft errors.
* elaborate.h: Corresponding changes.
2006-01-03 Frank Ch. Eigler <fche@redhat.com>
* io.c (_stp_softerror): New function.
2006-01-03 Frank Ch. Eigler <fche@redhat.com>
* systemtap.base/timers.exp: Extend the test run duration.
Accept skipped probe warnings at shutdown.
|
|
|
|
|
| |
function is on kprobes critical path, having probes on this will damage the
system.
|
|
|
|
|
| |
* tapsets.cxx (var_expanding_copy_visitor::visit_target):
Transcribe token pointer to synthesized functiondecl.
|
|
|
|
|
|
| |
* tapsets.cxx (profile_derived_probe::*,profile_builder::build): Do kernel
version checks at translation time, using the same internal mechanisms as
the preprocessor - a la %( kernel_v < "2.6.10" %? ... %: ... %)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* elaborate.cxx (alias_expansion_builder::build): Fix comment typo.
* tapsets.cxx (symbol_cache): New class.
(dwflpp::cache): Add cache.
(dwflpp::pattern_limited_cus): New member.
(dwflpp::pattern_limited_funcs): New member.
(dwflpp::limit_search_to_function_pattern): New method.
(dwflpp::iterate_over_cus): Modify to use cached, limited sets.
(dwflpp::iterate_over_functions): Likewise.
(dwarf_builder::user_dw): New member.
(dwarf_builder::kern_dw): New member.
(dwarf_builder::~dwarf_builder): Add dtor.
(query_module): Call dwflpp::limit_search_to_function_pattern.
(dwarf_builder::build): Initialize persistent dwflpp members on demand.
|
|
|
|
|
|
|
| |
PR 1934.
* tapsets.cxx (resolve_prologue_endings2): Add new heuristic for
tail-call optimized functions.
(query_func_info): Make somewhat less verbose.
|
|
|
|
| |
* *.cxx: Add <cassert> #include as needed.
|
|
|
|
|
|
|
|
|
| |
PR 1276
From Josh Stone <joshua.i.stone@intel.com>:
* tapsets.cxx (profile_derived_probe, profile_builder,
register_standard_tapsets): Support timer.profile variety.
* stapprobes.5.in: Document it.
* testsuite/builok/fourteen.stp: Test its buildability.
|
|
|
|
|
|
|
| |
PR 1336.
* tapsets.cxx (translate_final_fetch_or_store): Remove apparently
unnecessary check.
* testsuite/transok/ten.stp: New test for void* integerification.
|
|
|
|
|
|
|
| |
PR 1917
* translate.cxx (emit_common_header, emit_module_init,
emit_module_exit): Switch context array to per-cpu kmalloc variant.
* tapsets (*::emit_probe_entires): Use per_cpu_ptr() for my context.
|
|
|
|
|
|
|
|
|
|
| |
* loc2c.c (c_translate_location): Take Dwarf_Op vector as argument
directly, not Dwarf_Attribute.p
* loc2c.h: Update decl.
* loc2c-test.c (get_location): New function.
(handle_variable): Use it.
* tapsets.cxx (dwflpp::translate_location): New method.
(dwflpp::translate_components, dwflpp::literal_stmt_for_local): Use it.
|
|
|
|
|
|
|
|
|
| |
PR 1276
From Josh Stone <joshua.i.stone@intel.com>:
* tapsets.cxx (timer_derived_probe, timer_builder,
register_standard_tapsets): Support timer.ms() variety.
* stapprobes.5.in: Document it.
* testsuite/builok/fourteen.stp: Test its buildability.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 1837
* testsuite/buildko/one.stp: Replace printk.
* testsuite/buildok/one.stp: Ditto.
* testsuite/buildok/two.stp: Ditto.
* testsuite/semko/fifteen.stp: Ditto.
* testsuite/semko/fourteen.stp: Ditto.
* testsuite/semko/thirteen.stp: Ditto.
* testsuite/transok/eight.stp: Ditto.
* testsuite/transok/seven.stp: Ditto.
* testsuite/transok/six.stp: Ditto.
* tapsets.cxx (*::emit_probe_entries): Replace printk() calls
with _stp_warn().
* stap.1.in: Replace printk with printf in example.
* stapfuncs.5.in: Remove docs for printk and add for
print and printf.
* tapset/logging.stp (printk): Deleted.
|
|
|
|
|
|
| |
* tapsets.cxx (blacklisted_p): Tolerate NULL filename parameter.
* src/testsuite/semok/twenty.stp: New test to enumerate everything
dwarfly probeable.
|
|
|
|
|
|
|
| |
* tapsets.cxx (blacklisted_p): Add blacklist for some .return
probes to kludge around bug #1345.
* tapset/system_calls.stp: Add some %( %? %) conditionals to
get closer to using tapset on 2.6.9 kernel.
|
|
|
|
|
|
|
| |
PR 1828.
* tapsets.cxx (blacklisted_p): New function. Add a few blacklist
entries.
* testsuite/semko/thirtythree.stp: New test.
|
|
|
|
|
|
|
|
|
| |
* tapsets.cxx (dwarf_derived_probe::emit_registrations): Add
possible kprobe address prechecking logic. Set kretprobes
maxactive to zero.
* translate.cxx (emit_module_init): Set a more helpful default
probe_point value for use in registration errors. Exit properly
after registration failure of probe #0.
|
|
|
|
|
| |
* tapsets.cxx (add_probe_point): Use dwfl_module_relocation_info to
get symbol name when dwfl_module_relocations has the info.
|
|
|
|
|
| |
* tapsets.cxx (add_probe_point): Use explicit test with assignment in
while condition.
|
|
|
|
|
|
|
| |
PR 1329.
* tapsets.cxx (dwarf_query::add_probe_point): Look up section name
containing given address. Skip request if it came from .init.*.
* testsuite/semko/thirtytwo.stp: New test.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* configure.ac: Update libdw test to require 0.116 with dwarf_diecu.
* configure: Regenerated.
* systemtap.spec.in: Update elfutils requirement to 0.116.
* loc2c.c: Dwarf_Loc -> Dwarf_Op.
(location_from_address): dwarf_addrloclists -> dwarf_getlocation_addr.
(c_translate_location): Likewise.
(max_fetch_size): Remove fakeo dwarf_diecu macro.
* tapsets.cxx (dwflpp): Dwarf_Func -> Dwarf_Die;
dwarf_func_name -> dwarf_diename;
dwarf_func_entrypc -> dwarf_entrypc;
dwarf_func_file, dwarf_func_line -> dwarf_decl_file, dwarf_decl_line.
|
|
|
|
|
|
|
| |
Systemtap should now be able to build on Ia64.
Includes supports for - function probes, return probes,
function parameter access and dumping stack backtrace.
Added by Anil S Keshavamurthy <Anil.s.keshavamurthy@intel.com>
|
|
|
|
|
|
|
|
| |
PR 1482 cont'd.
* translator.cxx (emit_module_init): Set aside a variable for
detailed probe point id.
* tapsets.cxx (emit_registrations): Use it.
(add_probe_point): Correct synthesized probe-point typo.
|
|
|
|
|
|
| |
PR 1482
* tapsets.cxx (emit_registrations): On failure, don't
forget to unregister probe 0;
|