summaryrefslogtreecommitdiffstats
path: root/runtime
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'master' of git+ssh://sources.redhat.com/git/systemtapKent Sebastian2009-07-312-2/+2
|\
| * PR10458. User actual breakpoint address for [ku]probe[ret].Mark Wielaard2009-07-312-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Setup the pt_regs REG_IP to the actual breakpoint address before entering a probe handler for [ku]probe[ret] (and restore it after returning). This helps getting symbol resolution and backtraces more correct and makes it more conform with other probe handlers like the iutrace and profile timers that also provide pt_regs (which untill now exhibited off-by-one errors while unwinding). * tapsets.cxx (dwarf_derived_probe_group::emit_module_decls): Setup REG_IP correctly before calling enter_kprobe_probe and enter_kretprobe_probe, and restore afterwards. (uprobe_derived_probe_group::emit_module_decls): Likewise for enter_uprobe_probe and enter_uretprobe_probe. (kprobe_derived_probe_group::emit_module_decls): Likewise for enter_kprobe2_probe and enter_kretprobe2_probe. * runtime/unwind/i386.h (arch_unw_init_frame_info): Initialize info->call_frame to zero. * runtime/unwind/x86_64.h (arch_unw_init_frame_info): Likewise.
* | PR10204: Place userspace markers in systemtap itselfKent Sebastian2009-07-315-0/+7
|/ | | | | | | | | | | | * cache.cxx (add_to_cache,clean_cache): add static markers * main.cxx (main): likewise * runtime/staprun/common.c (send_request): likewise * runtime/staprun/mainloop.c (stp_main_loop): likewise * runtime/staprun/staprun.c (remove_module): likewise * runtime/staprun/staprun.h: include sdt.h * runtime/staprun/staprun_funcs.c (insert_module): likewise * util.cxx (stap_system): likewise * tapset/stap_staticmarkers.stp: new file
* Improves functionality on rawhide (2.6.31-rcX) kernels.David Smith2009-07-281-65/+113
| | | | | | | | | | | | | | | * runtime/transport/ring_buffer.c (struct _stp_iterator): Renamed from _stp_ring_buffer_data. (_stp_data_open_trace): Uses _stp_iterator. (_stp_data_release_trace): Ditto. (_stp_ring_buffer_empty_cpu): Ditto. (_stp_ring_buffer_empty): Ditto. (_stp_ring_buffer_consume): Ditto. (_stp_tracing_wait_pipe): Ditto. (_stp_peek_next_event): Ditto. (_stp_find_next_event): Ditto. (_stp_data_read_trace): Ditto. (_stp_data_write_reserve): Ditto.
* Make ring_buffer transport work on new kernels.David Smith2009-07-221-13/+44
| | | | | | | * runtime/transport/ring_buffer.c (_stp_event_to_user): Added debug prints. (_stp_ring_buffer_consume): New function. (_stp_find_next_event): Avoid incrementing the buffer iterator here. (_stp_data_write_commit): Added debug prints.
* Fixed PR 10386 by removing the need to convert a pid to a task.David Smith2009-07-202-16/+5
| | | | | | | | | * runtime/itrace.c (usr_itrace_init): Changed prototype to take a task_struct instead of a pid. * tapset-itrace.cxx (emit_module_decls): Updated usr_itrace_init() call. * runtime/autoconf-find-task-pid.c: Removed, since only user_itrace_init() was using it. * buildrun.cxx (compile_pass): Removed autoconf-find-task-pid.c test.
* PR6961: gcc warning tweakFrank Ch. Eigler2009-07-171-3/+4
| | | | * sym.c (_stp_usymbol_print): Ditto.
* PR6961: gcc warning tweakFrank Ch. Eigler2009-07-171-3/+4
| | | | * sym.c (_stp_symbol_print): (Redundantly) initialize locals.
* save_stack_trace autoconf: fix typo to activate code in runtime/stack.cFrank Ch. Eigler2009-07-171-1/+1
|
* Implemented ring_buffer iterators.David Smith2009-07-152-21/+110
| | | | | | | | | | | | | | | | * runtime/transport/ring_buffer.c (_stp_ring_buffer_empty_cpu): New function. (_stp_ring_buffer_empty): Ditto. (_stp_ring_buffer_iterator_increment): Ditto. (_stp_tracing_wait_pipe): Calls _stp_ring_buffer_empty() instead of ring_buffer_empty(). (_stp_peek_next_event): Looks at iterators first. (_stp_find_next_event): Calls _stp_ring_buffer_empty_cpu() and increments iterator. (_stp_data_read_trace): Opens and closes ring_buffer iterators. (_stp_data_poll_trace): Calls _stp_ring_buffer_empty(). (__stp_relay_wakeup_timer): Ditto. * runtime/transport/control.c (_stp_ctl_write_cmd): Increased level required to get a debug print.
* Added timer data flushing and overwrite handling to the ring_buffer transport.David Smith2009-07-092-40/+102
| | | | | | | | | | | | | | | | * buildrun.cxx (compile_pass): Checks for ring_buffer api change. * runtime/autoconf-ring_buffer-flags.c: New file. * runtime/transport/ring_buffer.c (tracing_wait_pipe): No longer schedules, just returns. The timer function will handle it later. (_stp_data_write_reserve): Handles ring_buffer api change. Added overwrite processing. If we're full, delete an event to make room. (_stp_data_write_commit): Handles ring_buffer api change. (__stp_relay_wakeup_timer): New function. (__stp_relay_timer_start): Ditto. (__stp_relay_timer_stop): Ditto. (_stp_transport_data_fs_start): Calls __stp_relay_timer_start(). (_stp_transport_data_fs_stop): Calls __stp_relay_timer_stop(). (_stp_transport_data_fs_overwrite): Sets overwrite flag.
* BZ 490234 fix.David Smith2009-07-061-8/+7
| | | | | | * runtime/procfs.c (_stp_rmdir_proc_module): Now before removing either '/proc/systemtap/${MODULE}' or '/proc/systemtap', lock the transport directory. Also make sure '/proc/systemtap' is empty before removal.
* Fix on-file flight recorder mode bugs on old kernel.Masami Hiramatsu2009-06-194-35/+42
| | | | | | | | * runtime/staprun/common.c (make_outfile_name): Moved from relay.c, fix not to open /dev/null.XXX output files, and add 'bulk' argument for bulkmode. * runtime/staprun/relay.c (make_outfile_name): Moved to common.c. * runtime/staprun/relay_old.c (open_oldoutfile): Fix to use fopen() and store FILE * to percpu_tmpfile[cpu].
* Disabled transport version 3 (for now).David Smith2009-06-191-0/+6
|
* Cleanup.David Smith2009-06-183-56/+1
| | | | | | * runtime/print_old.c: Removed unneeded file. * runtime/print_flush.c: Renamed from print_new.c * runtime/print.c: Includes print_flush.c (instead of print_new.c).
* Transports now export their state.David Smith2009-06-185-17/+40
| | | | | | | | | | | | | | * runtime/transport/transport.h: Added prototype for _stp_transport_get_state(). * runtime/transport/relay_v2.c (_stp_transport_get_state): New function. * runtime/transport/relayfs.c (_stp_transport_get_state): Ditto. * runtime/transport/ring_buffer.c (_stp_transport_data_fs_init): Sets state. (_stp_transport_data_fs_start): Ditto. (_stp_transport_data_fs_stop): Ditto. (_stp_transport_get_state): Returns state. * runtime/print_new.c (stp_print_flush): Checks transport state before trying to flush.
* Moved global data into a single structure.David Smith2009-06-181-39/+45
|
* Removed unused code (and all references to 'utt').David Smith2009-06-181-52/+0
|
* Enabled overwrite processing on original transports.David Smith2009-06-185-23/+17
| | | | | | | | | | | | | * runtime/transport/relay_v2.c (_stp_transport_data_fs_overwrite): Renamed from stp_relay_set_overwrite(). * runtime/transport/relayfs.c (stp_relay_set_overwrite): Ditto. * runtime/transport/ring_buffer.c (_stp_transport_data_fs_overwrite): New place holder function. * runtime/transport/transport.c (_stp_detach): Calls _stp_transport_data_fs_overwrite(). (_stp_attach): Calls _stp_transport_data_fs_overwrite(). * runtime/transport/transport.h: Added prototype for _stp_transport_data_fs_overwrite().
* Merge commit 'origin/master' into pr7043David Smith2009-06-161-0/+1
|\ | | | | | | | | Conflicts: runtime/transport/transport.c
| * Moved time.c inclusion from runtime/transport/transport.c to runtime/runtime.h.David Smith2009-06-162-1/+1
| | | | | | | | | | * runtime/runtime.h: Includes time.c. * runtime/transport/transport.c: Removed time.c inclusion.
* | Fixed non-bulkmode output on smp systems using transport version 2.David Smith2009-06-121-0/+15
| | | | | | | | | | * runtime/transport/relay_v2.c (__stp_relay_create_buf_file_callback): Set the 'is_global' return parameter so that smp systems work correctly.
* | Merge commit 'origin/master' into pr7043David Smith2009-06-118-104/+172
|\|
| * gcc 3.4.6 compatibility: s/{true,false}/{1,0} in runtime/unwind.cFrank Ch. Eigler2009-06-101-4/+4
| |
| * Detect kretprobe trampoline and use fallback unwinder.Mark Wielaard2009-06-034-10/+20
| | | | | | | | | | | | | | | | | | | | | | | | * runtime/sym.h (_stp_kretprobe_trampoline): Document. * translate.cxx (unwindsym_dump_context): Add stp_kretprobe_trampoline_addr. (dump_unwindsyms): Detect kretprobe_trampoline_holder symbol address. (emit_symbol_data): Initialize and emit _stp_kretprobe_trampoline. * runtime/transport/symbols.c (_stp_do_relocation): Detect kernel load address and adjust _stp_kretprobe_trampoline. * runtime/stack-i386.c (__stp_stack_print): Always use fallback unwinder when hitting kretprobe_trampoline_holder. * runtime/stack-x86_64.c (__stp_stack_print): Likewise.
| * Fixed cut-and-paste error.David Smith2009-06-021-1/+1
| | | | | | | | | | * runtime/task_finder.c (__stp_call_mmap_callbacks_for_task): Fixed cut-and-paste error.
| * Avoid holding semaphore while making mmap callbacks.David Smith2009-06-011-52/+130
| | | | | | | | | | | | | | | | | | * runtime/task_finder.c (__stp_call_mmap_callbacks_for_task): Grabs the 'mmap_sem' sempaphore. Caches vma information, releases the semaphore, then makes mmap callbacks. (__stp_utrace_task_finder_target_quiesce): Calls __stp_call_mmap_callbacks_for_task() to make mmap callbacks on initial attach to a task.
| * Avoid 1 case of holding a semaphore while mmap callbacks are being made.David Smith2009-05-281-57/+75
| | | | | | | | | | | | | | | | | | | | * runtime/task_finder.c (__stp_call_mmap_callbacks_with_addr): Renamed from __stp_call_mmap_callbacks_with_vma(). Also added some code from __stp_utrace_task_finder_target_syscall_exit() that locks the 'mmap_sem' semaphore. This avoids holding the semaphore while the mmap callbacks are made. (__stp_utrace_task_finder_target_syscall_exit): Just calls __stp_call_mmap_callbacks_with_addr() in the mmap case.
| * Restore staprun's support for REAL_UID/GIDJosh Stone2009-05-221-1/+14
| | | | | | | | | | This is needed for run-stap so that stapio and all child processes can run as the originally invoking user instead of root.
| * Properly read eh_frame and pass is_ehframe correctly.Mark Wielaard2009-05-201-6/+10
| | | | | | | | | | | | | | | | | | * runtime/unwind.c (adjustStartLoc): Add extra dbug_unwind. (_stp_search_unwind_hdr): Always pass true for is_ehframe. (unwind_frame): Properly pass through is_ehframe to adjustStartLoc(). (unwind): Add extra dbug_unwind. * translate.cxx (dump_unwindsyms): Output and use correct eh_frame and eh_len.
| * Use debug_frame table, then fallback to eh_frame when necessary.Mark Wielaard2009-05-201-24/+39
| | | | | | | | | | | | | | * runtime/unwind.c (unwind): Call new unwind_frame() first with debug_frame data, then if that wasn't able to unwind again with eh_frame data. (unwind_frame): Adapted version of old unwind() function that takes a table, table length and whether it is an eh_frame table.
| * Pass and use ptrType and is_ehframe to unwind adjustStartLoc.Mark Wielaard2009-05-201-53/+66
| | | | | | | | | | | | | | * runtime/unwind.c (adjustStartLoc): Add ptrType and is_ehframe as arguments. Use these to adjust location when necessary. (DEBUG_UNWIND): Move block before adjustStartLoc. Pass false for is_ehframe throughout.
| * Fetch and store both debug_frame and eh_frame tables.Mark Wielaard2009-05-203-19/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | * runtime/sym.h (_stp_module): Remove unwind_data, unwind_data_len and unwind_is_ehframe fields. Add debug_frame, eh_frame, debug_frame_len, eh_frame_len and eh_frame_addr fields. * runtime/unwind.c: Use debug_frame and debug_frame_len instead of unwind_data and unwind_data_len throughout. (cie_for_fde): Take unwind_data and is_ehframe as direct arguments. * runtime/unwind/unwind.h (cie_for_fde): New function declaration. * translate.cxx (get_unwind_data): Fetch and return both debug_frame and eh_frame tables. (dump_unwindsyms): Dump both debug_frame and eh_frame tables.
| * PR10171 workaround.David Smith2009-05-181-0/+5
| | | | | | | | * runtime/itrace.c: To avoid ia64 lockups, disable itrace on ia64.
| * PR10091 fixes.David Smith2009-05-181-0/+6
| | | | | | | | | | | | | | | | * runtime/itrace.c (usr_itrace_report_signal): Add a workaround for ppc-specific problem. * testsuite/systemtap.base/itrace.exp: Improved tests. Improved test completeness. Will also no longer give fails for systems that don't support single or block step (will give xfails instead).
| * Tidy/tighten DEBUG_UNWIND ptrType a bit.Mark Wielaard2009-05-151-14/+13
| | | | | | | | | | | | | | * runtime/unwind.c (_stp_enc_hi_name): Include prefix for hi == 0. (_stp_enc_lo_name): Don't include prefix. (_stp_eh_enc_name): Always include hi_name. (unwind): Always include newline in dbug_unwind() calls.
* | Fixed cut-and-paste error.David Smith2009-06-091-1/+1
| | | | | | | | | | * runtime/task_finder.c (__stp_call_mmap_callbacks_for_task): Fixed cut-and-paste error.
* | Avoid holding semaphore while making mmap callbacks.David Smith2009-06-091-52/+130
| | | | | | | | | | | | | | | | | | * runtime/task_finder.c (__stp_call_mmap_callbacks_for_task): Grabs the 'mmap_sem' sempaphore. Caches vma information, releases the semaphore, then makes mmap callbacks. (__stp_utrace_task_finder_target_quiesce): Calls __stp_call_mmap_callbacks_for_task() to make mmap callbacks on initial attach to a task.
* | Avoid 1 case of holding a semaphore while mmap callbacks are being made.David Smith2009-06-091-57/+75
| | | | | | | | | | | | | | | | | | | | * runtime/task_finder.c (__stp_call_mmap_callbacks_with_addr): Renamed from __stp_call_mmap_callbacks_with_vma(). Also added some code from __stp_utrace_task_finder_target_syscall_exit() that locks the 'mmap_sem' semaphore. This avoids holding the semaphore while the mmap callbacks are made. (__stp_utrace_task_finder_target_syscall_exit): Just calls __stp_call_mmap_callbacks_with_addr() in the mmap case.
* | Make sure all DEBUG_TRANS output uses printk.David Smith2009-06-032-13/+21
| | | | | | | | | | | | | | | | * runtime/transport/control.c (_stp_ctl_write_cmd): Calls dbug_trans2 instead of _dbug (so that printk is used instead of the transport itself). (_stp_ctl_write_dbug): Ditto. * runtime/debug.h (dbug_trans2): New macro.
* | Fixed STP_TRANSPORT_VERSION 1 behavior.David Smith2009-06-036-23/+87
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * runtime/transport/control.c (_stp_ctl_write_dbug): Added support for more messages. * runtime/transport/relay_v2.c (_stp_transport_data_fs_start): New function. (_stp_transport_data_fs_stop): Ditto. (_stp_transport_data_fs_close): Moved some functionality into _stp_transport_data_fs_stop() and calls _stp_transport_data_fs_stop() also. (_stp_transport_data_fs_init): Moved some functionality into _stp_transport_data_fs_start() and calls _stp_transport_data_fs_start() also. * runtime/transport/relayfs.c (_stp_transport_data_fs_start): New function. (_stp_transport_data_fs_stop): Ditto. (_stp_transport_data_fs_close): Moved some functionality into _stp_transport_data_fs_stop() and calls _stp_transport_data_fs_stop() also. (_stp_transport_data_fs_init): Moved some functionality into _stp_transport_data_fs_start() and calls _stp_transport_data_fs_start() also. * runtime/transport/ring_buffer.c (_stp_transport_data_fs_start): New empty function. (_stp_transport_data_fs_stop): Ditto. * runtime/transport/transport.h: Added _stp_transport_data_fs_start() and _stp_transport_data_fs_stop() prototypes. * runtime/transport/transport.c (_stp_cleanup_and_exit): Calls _stp_transport_data_fs_stop(). (_stp_transport_close): Calls _stp_transport_fs_close() earlier. (_stp_transport_init): Calls _stp_transport_data_fs_start().
* | Cleanup and better original transport support.David Smith2009-05-263-4/+12
| | | | | | | | | | | | | | | | | | | | * runtime/print.h: Moved _stp_reserve_bytes() prototype here. * runtime/vsprintf.c (_stp_vsnprintf): Includes print.h to get _stp_reserve_bytes() prototype. * runtime/transport/transport.c (_stp_remove_root_dir): Better cleanup for STP_TRANSPORT_VERSION == 1. (_stp_transport_fs_close): Ditto.
* | Added error checking and other updates.David Smith2009-05-227-488/+44
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * runtime/vsprintf.c: Added transport.h inclusion for STP_BUFFER_SIZE definition. * runtime/transport/debugfs.c (_stp_register_ctl_channel_fs): Added error checking. * runtime/transport/transport.c (_stp_get_root_dir): Ditto. (_stp_transport_fs_init): Added original transport support and error checking. * runtime/transport/relay_v2.c (__stp_relay_create_buf_file_callback): Added error checking. (_stp_transport_data_fs_init): Ditto. * runtime/transport/ring_buffer.c (_stp_transport_data_fs_init): Ditto. * runtime/transport/utt.c: Removed unused file. * runtime/transport/utt.h: Ditto.
* | Merge commit 'origin/master' into pr7043David Smith2009-05-2149-760/+3395
|\| | | | | | | | | | | | | Conflicts: runtime/print.c runtime/transport/transport.c runtime/transport/transport_msgs.h
| * Initialize aptr in runtime/map.c and keep gcc-4.4 happyAnanth N Mavinakayanahalli2009-05-131-1/+1
| |
| * Problems using server scripts when not on PATH.Dave Brolley2009-05-061-1/+1
| | | | | | | | HAVE_NSS related compile time warning.
| * Add Vim modelines for new C/C++ sourcesJosh Stone2009-05-052-0/+3
| |
| * Module signing and verification using a separate file for the module signature.Dave Brolley2009-05-044-69/+532
| |
| * Fixed itrace on RHEL5 (PR10091).David Smith2009-04-272-1/+52
| | | | | | | | | | | | | | | | | | | | PR10091 fix. * runtime/itrace.c: Includes ptrace_compatibility.h. (usr_itrace_report_quiesce): Corrected return value for original version of utrace. * runtime/ptrace_compatibility.h: Defines arch_has_single_step() and arch_has_block_step() in terms of ARCH_HAS_SINGLE_STEP and ARCH_HAS_BLOCK_STEP.
| * PR10081: improve error message for verifying build-idWenji Huang2009-04-261-28/+23
| | | | | | | | | | | | | | Output debuginfo file name and build-id if verification failed. * runtime/sym.c: Print more info if not matched.