| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* bench2/bench.rb (Bench::run): Instead of loading the module
once and running against different numbers of threads, load
and unload the module each time. Then keep track of failures
per thread. Also use the new itest to keep the tests the same
size regardless of the number of threads.
(Bench::initialize): Make itest if needed.
(Bench::load, Stapbench::load): Increase buffer size to 8MB.
* bench2/itest.c: Change arg to be the number of threads
instead of the number of millions of calls to make.
This makes it easy to divide the work among multiple threads
without making the test run many times longer.
|
|
|
|
|
| |
Patch from Gui,Jian <guij@cn.ibm.com>
* bench2/bench.rb: PPC64 fixes.
|
| |
|
|
|
|
| |
* procfs.c (_stp_write): Combine buffers only for REALTIME_DATA.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
* procfs.c (STP_DEFAULT_BUFFERS): Bump up to 256.
|
|
|
|
| |
* bench2: New directory containing a benchmark framework.
|
|
|
|
|
|
|
|
|
|
| |
* librelay.c (start_cmd): Set proper uid/gid before execing
command.
(system_cmd): New function.
(cleanup_and_exit): Wait for any child processes to complete.
(stp_main_loop): Recognize STP_SYSTEM message.
* stpd.c (main): Add support for "-u username".
|
|
|
|
| |
* transport_msgs.h (struct cmd_info): New message.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* procfs.c (_stp_proc_write_cmd): Check return code for
_stp_transport_open().
* transport.c (_stp_transport_write): This function
can now sleep because it is
(_stp_handle_start): Don't use a mutex when a simple atomic
will do.
(_stp_work_queue): Check atomic to see if probe_start()
has finished before attempting exit.
(_stp_transport_close): PR2391. Cancel work queue.
(_stp_transport_init): If _stp_register_procfs() fails,
return an error code.
* transport.txt: New file. Documents transport initialization and
shutdown sequence.
|
|
|
|
| |
* librelay.c (init_stp): Better error handling and cleanup.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
* procfs.c (_stp_proc_read_cmd): Change spin_lock()
to spin_lock_irqsave().
* transport.c (_stp_work_queue): Ditto.
|
|
|
|
| |
* copy.c (_stp_copy_from_user): Revert previous incorrect change.
|
|
|
|
|
| |
* copy.c (_stp_copy_from_user): If access fails,
return -1.
|
| |
|
|
|
|
| |
* agg/stats.c (main): Delete Stats when done.
|
|
|
|
|
| |
* alloc.c (_stp_alloc_percpu): New function.
(_stp_free_percpu): New function.
|
|
|
|
|
|
|
|
| |
* stat.c (_stp_stat_init): Use _stp_alloc_percpu().
(_stp_stat_del): New function.
* alloc.c (_stp_alloc_percpu): New function.
(_stp_free_percpu): New function.
|
|
|
|
|
| |
* pmap-gen.c (_stp_pmap_get): Fix bug where old data
from agg map could be returned after element was deleted.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR 2140
* translate.cxx (mapvar::del): Add ability to delete an indexed stat
from (p)maps.
(delete_statement_operand_visitor::visit_symbol): Add ability to
delete entire pmaps and scalars.
(delete_statement_operand_tmp_visitor): Add a special tmpvar visitor
to parallel delete_statement_operand_visitor.
(c_tmpcounter::visit_delete_statement): Invoke the new visitor.
* testsuite/buildok/delete.stp: Also test scalar deletes.
* vim/syntax/stap.vim: Recognize 'delete' operator.
2006-01-16 Josh Stone <joshua.i.stone@intel.com>
* stat.c (_stp_stat_clear): add a function that just
clears a Stat, so we can use delete in the translator.
|
|
|
|
|
| |
* map.c (_stp_pmap_agg): Return NULL when aggregation
fails.
|
|
|
|
|
|
|
|
| |
PR 2148
* translate.cxx (MAXERRORS): Actually the max should be 0, so first
error aborts session.
* Revert last stp_exit change.
|
|
|
|
| |
* io.c (_stp_exit): set STAP_SESSION_STOPPING.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* pmap-gen.c (_stp_pmap_new_*): Initialize lock.
(_stp_pmap_set_*): Lock map while in use.
(_stp_pmap_add_*): Lock map while in use.
(_stp_pmap_get_cpu): Ditto.
(_stp_pmap_get): Lock each per-cpu map.
* map-gen.c: Define and use NULLRET for a NULL return value.
* map.c (_stp_pmap_clear): New function.
(_stp_pmap_agg): Lock each per-cpu map as
it gets aggregated.
|
|
|
|
| |
* emul.h: Add fake spinlock funcs.
|
|
|
|
|
| |
* map.c (_stp_map_sortn): Set a limit of 30 for n. Automatically
call _stp_map_sort() if more is requested.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
* map.c (_new_map_create): Only increment map size if a node
was moved off the free list.
(_stp_map_size): New function.
(_stp_pmap_size): New function.
|
|
|
|
|
| |
* maps/map.test: Add size test.
* pmaps/pmap.test: Add size test.
|
|
|
|
|
| |
* agg/agg.test: Adjust results to match
the more compact histogram format.
|
|
|
|
|
| |
* alloc.c: Remove all unused functions.
* io.c: Add vprintf() prototype.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PR1923
* map.h (struct map_root): Remove membuf.
(struct pmap): Define.
(PMAP): Declare.
* map.c (_stp_map_init): Use kmalloc() to allocate individual
nodes instead of using vmalloc() to allocate one big chunk.
(_stp_map_new): Use kmalloc.
(_stp_pmap_new): Use kmalloc. Return a PMAP.
(__stp_map_del): New function. Free all the nodes in a map.
(_stp_map_del): Call __stp_map_del() then free map struct.
(_stp_pmap_del): Takes a PMAP. Calls __stp_map_del() for
each cpu.
(_stp_pmap_printn_cpu): Change arg to PMAP.
(_stp_pmap_agg): Change arg to PMAP.
(_stp_pmap_get_agg): Change arg to PMAP.
* map-stat.c (_stp_pmap_new_hstat_linear): Use PMAP
instead of MAP. Fix allocations.
(_stp_pmap_new_hstat_log): Ditto.
* pmap-gen.c Fix all functions to take or return PMAPS
instead of MAPS.
* alloc.c: Remove everything except kmalloc_node().
All runtime code now uses kmalloc() directly.
|
|
|
|
|
|
|
|
|
|
| |
* pmaps/*.c: Change pmap type from MAP to PMAP.
* pmaps/pmap.test: Adjust results to match
the more compact histogram format.
* maps/map.test: Adjust results to match
the more compact histogram format.
|
|
|
|
|
|
|
| |
* procfs.c (_stp_set_buffers): kmalloc the buffers instead
of vmalloc.
(_stp_register_procfs): Ditto.
(_stp_unregister_procfs): kfree the buffers.
|
|
|
|
|
| |
* io.c (_stp_exit): To prevent any possible interactions
with the probed function, just set a flag here.
|
|
|
|
|
|
|
|
|
| |
* transport.h (STP_WORK_TIMER): Declare.
* transport.c (_stp_work_queue): Wake up every STP_WORK_QUEUE
jiffies and check IO and exit status.
(_stp_handle_exit): Deleted.
* procfs.c (_stp_proc_write_cmd): Just set exit flag on STP_EXIT.
(_stp_write): Don't call wake_up_interruptible.
|
|
|
|
| |
* recreate_links: Remove links to deleted files.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
2005-11-28 Graydon Hoare <graydon@redhat.com>
* translate.cxx (var::assert_hist_compatible): New method.
(var::hist): New method.
(c_unparser::load_aggregate): New method.
(hist_op_downcaster): Remove, it was a mistake.
(expression_is_hist_op): Likewise.
(c_tmpcounter::visit_print_format): Implement print(@hist(...)).
(c_unparser::visit_print_format): Likewise.
* staptree.h (struct print_format): Add optional hist_op* member.
* staptree.cxx (traversing_visitor::visit_functioncall): Visit
hist_op if present in print_format.
(deep_copy_visitor::visit_print_format): Likewise.
* parse.cxx (parse_symbol): Special case to consume print(@hist(...)).
* elaborate.cxx (typeresolution_info::visit_arrayindex): Fix type inference bug.
(typeresolution_info::visit_foreach_loop): Likewise.
* testsuite/buildok/print_histograms.stp: New test.
[runtime/ChangeLog]
2005-11-28 Graydon Hoare <graydon@redhat.com>
* stat-common.c (_stp_stat_print_histogram): Various formatting
corrections and aesthetic tweaks.
(__stp_stat_add): Correction to linear bucket underflow cases.
|
|
|
|
|
|
|
|
|
|
|
| |
* alloc.c (__stp_valloc_percpu): Use same code for up and smp.
(_stp_per_cpu_ptr): New macro.
* user/alloc.c: Ditto.
* map.c: Use _stp_map_cpu_ptr().
* map-stat.c: Ditto.
* pmap-gen.c: Ditto.
* runtime.h: Include alloc.c
* user/runtime.h: Ditto.
|
|
|
|
|
| |
* map.c (_stp_pmap_del): Use _stp_free_percpu() to
free pmaps.
|
|
|
|
|
| |
* map-stat.c (_stp_pmap_new_hstat_log): Fix typo. Call
_stp_pmap_new() instead of _stp_map_new().
|
|
|
|
| |
* map.h: Removed old API macros and prototypes.
|
|
|
|
|
|
|
|
|
| |
* pmap-gen.c (_stp_pmap_get()): New function. Aggregates
the per-cpu map nodes into an aggregation map node.
* map.c (_stp_new_agg): Return a struct map_node *.
(_stp_add_agg): If count is 0 when adding,
just set the stats.
|
|
|
|
|
|
| |
* pmaps/ix2.c: New test. Test _stp_pmap_get_*().
* pmaps/iii3.c: New test. Test _stp_pmap_get_*().
* pmaps/pmap.test: Update.
|
|
|
|
|
|
| |
* map.c: Doc updates.
* pmap-gen.c: Change a bunch of generated function names to
avoid conflicts with maps with the same key and value types.
|