| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | | | | | | | |
|
| | | |_|_|_|/
| | |/| | | | |
|
| | | |_|_|/
| | |/| | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
All callers of __stp_tf_get_vma_map_entry_internal lock and unlock
the mutex correctly themselves in all cases. This unlock would trigger
a double unlock.
* runtime/task_finder_vma.c (__stp_tf_get_vma_map_entry_internal):
Don't mutex_unlock(&__stp_tf_vma_mutex).
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
When given directly by the user through -d or in case of the kernel
name and path might differ. path should be used for matching.
* runtime/sym.h (_stp_module): Add path field.
* runtime/task_finder.c (__stp_tf_vm_cb): Use module path to compare vm_path.
* translate.cxx (dump_unwindsyms): Output canonical path.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
In some configurations, GCC was warning about a possible use of _v in
the deref macros. I could not reproduce the error, but the only case
where _v is not written is if lookup_bad_addr rejects the address, in
which case we will hit DEREF_FAULT and _v won't be used.
Now we're priming _v=0 anyway, so GCC has no right to complain...
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
* tapsets.cxx (utrace_derived_probe_group::emit_module_decls):
Always emit vm callback probe for __stp_tf_vm_cb.
* runtime/task_finder.c (__stp_tf_vm_cb): Always expose, move _stp_dbug
statements under ifdef DEBUG_TASK_FINDER_VMA. Find and record
corresponding module when vm_path not NULL.
* runtime/task_finder_vma.c (struct __stp_tf_vma_entry): Add _stp_module.
(stap_add_vma_map_info): Add _stp_module argument and assign.
(__stp_tf_get_vma_entry_addr): New static function to get
the __stp_tf_vma_entry given an address.
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
With most of the implementations, kread/kwrite call deref/store_deref,
and so it makes sense to have lookup_bad_addr in the latter as an
underlying address check.
However, in the STAPCONF_PROBE_KERNEL case that uses probe_kernel_read
and probe_kernel_write, the roles are reversed, so lookup_bad_addr needs
to be in kread/kwrite.
Also note that __deref_bad and __store_deref_bad should only be used in
cases that can be determined at compile time. These turn into invalid
symbols which prevent the module from loading. (They might be better
replaced with compile-time assertions.)
|
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | |
| | | | | | |
The kernel lockdep checking found a possible deadlock if a forced rmmod
tried to destroy _stp_work_queue at the same time that the work queue
was unregistering tracepoints. An unlikely scenario, but still
possible.
Now the work queue will just issue a STP_REQUEST_EXIT down to usermode,
and usermode will echo back an STP_EXIT that triggers the actual probe
cleanup. This way the unregistrations are happening in exactly the same
context as the registrations were.
|
| |/ / / /
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
pseudo-instructions like fclex, finit, fstsw, and fstcw.
Do reject opcode 0x82 in 64-bit mode.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* runtime/print.c: Only use print_new.c.
* runtime/print_new.c (stp_print_flush): Add STP_TRANSPORT_VERSION 1 support.
* runtime/transport/transport.c: Removed inclusion of procfs.c.
* runtime/transport/procfs.c (_stp_proc_read): Adapt to new interface.
(_stp_proc_write): Ditto.
* runtime/transport/relayfs.c: Ditto.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* runtime/transport/relay_v2.c (_stp_transport_data_fs_init): Sets uid/gid
on "dropped" file.
|
| | | | |
| | | | |
| | | | |
| | | | | |
* runtime/transport/relay_v2.c: Cleanup.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* runtime/transport/relay_v2.c: Morphed utt.c into relay_v2.c. Actually
works.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* runtime/print_new.c (stp_print_flush): Calls _stp_data_entry_data() to
get data pointer.
* runtime/transport/transport.h: Removed _stp_entry definition. Added
_stp_data_entry_data() declaration.
* runtime/transport/ring_buffer.c: Uses new _stp_data_entry structure.
(_stp_data_entry_data): Added.
|
| | | | |
| | | | |
| | | | |
| | | | | |
* runtime/transport/transport.h: Added comments.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* runtime/transport/control.c: Added inclusion of linux/delay.h to get
declaration of msleep().
* runtime/transport/relay_v2.c: New skeleton file for transport version 2.
* runtime/transport/ring_buffer.c: Cleanup.
* runtime/transport/transport.c: Ditto.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
2009-04-02 David Smith <dsmith@redhat.com>
* runtime.h: Defines STP_TRANSPORT_VERSION instead of STP_OLD_TRANSPORT.
* staprun/staprun.h (STP_OLD_TRANSPORT): Ditto.
* print.c: Changed STP_OLD_TRANSPORT to STP_TRANSPORT_VERSION.
* staprun/mainloop.c (stp_main_loop): Ditto.
* transport/transport.c: Ditto.
* transport/transport.h: Ditto.
* transport/transport_msgs.h: Ditto.
* transport/utt.h: Ditto.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* print_new.c (stp_print_flush): Pushed MAX_RESERVE logic down to
_stp_data_write_reserve(). Now just keeps calling
_stp_data_write_reserve() until it has written the entire print
buffer.
* transport/ring_buffer.c (_stp_data_write_reserve): Breaks large
reserve requests down into smaller ones for better buffer use.
Returns the number of bytes reserved.
* transport/transport.h: Updated _stp_data_write_reserve()
prototype.
|
| | | | |
| | | | |
| | | | |
| | | | | |
* print_new.c: Whitespace/indent changes only.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
2009-03-13 David Smith <dsmith@redhat.com>
* print_new.c (stp_print_flush): Added bulkmode support for new
transport.
* transport/ring_buffer.c (__stp_find_next_entry): Fixed syntax
error in bulkmode code.
(_stp_transport_data_fs_init): Changed 'for_each_possible_cpu()'
to 'for_each_online_cpu()' so that non-online cpu's won't have a
trace file created.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
2009-03-13 David Smith <dsmith@redhat.com>
* transport/ring_buffer.c (_stp_data_open_trace): Passes the
inode's private data into the file's private data.
(_stp_trace_seq_to_user): Deleted unused function.
(trace_seq_reset): Ditto.
(__stp_find_next_entry): Renamed and added bulkmode support.
(_stp_find_next_entry): Updated call.
(_stp_data_read_trace): Updated call.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
2009-03-13 David Smith <dsmith@redhat.com>
* transport/ring_buffer.c (__stp_free_ring_buffer): Frees
_stp_trace_reader_cpumask.
(__stp_alloc_ring_buffer): Allocates and clears
_stp_trace_reader_cpumask.
(_stp_data_open_trace): Instead of using an atomic variable, uses
a cpumask variable to allow for only one reader of trace files.
(_stp_data_release_trace): Clears cpumask when trace files are
closed.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
2009-03-12 David Smith <dsmith@redhat.com>
* transport/ring_buffer.c (_stp_transport_data_fs_init): Start of
STP_BULKMODE support - creates one trace file per cpu.
(_stp_transport_data_fs_close): Cleans up one trace file per cpu.
|
|\| | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
After linux-next commit f2a8205c, it takes two parameters again,
so we autoconf for it rather than use KERNEL_VERSION ifdefs.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
* buildrun.cxx (compile_pass): Add autoconf line for stack trace
test, which defines STAPCONF_KERNEL_STACKTRACE.
* runtime/autoconf-save-stack-trace.c: New file.
* runtime/stack.c : Use STAPCONF_KERNEL_STACKTRACE instead of
tests for kernel configuration and versions.
* runtime/stack-i386.c : ditto
* runtime/stack-x86_64.c : ditto
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
It also adds a private copy of access_process_vm to runtime/itrace.c
since that function is not consistently exported by all distros.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
Impact: cleanup
Since sdt.h is in git tree, sduprobes is no longer needed.
* Makefile.am: Remove sduprobes.
* Makefile.in: Regenerated.
* doc/Makefile.in: Ditto.
* runtime/sduprobes.c: Removed.
Signed-off-by: Wenji Huang <wenji.huang@oracle.com>
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
2009-03-12 David Smith <dsmith@redhat.com>
* transport/ring_buffer.c (__stp_alloc_ring_buffer): Updated
buffer size.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
2009-03-11 David Smith <dsmith@redhat.com>
* print_new.c (stp_print_flush): Updated MAX_RESERVE_SIZE.
* transport/ring_buffer.c (__stp_alloc_ring_buffer): Reserves
more space.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
2009-03-11 David Smith <dsmith@redhat.com>
* print_new.c (stp_print_flush): Breaks up the buffer into smaller
pieces (since the ring_buffer likes lots of small events, not one
large one).
* transport/ring_buffer.c (__stp_alloc_ring_buffer): Reserves
space for struct _stp_entry.
(_stp_data_poll_trace): New function.
(_stp_data_write_commit): Wakes up any tasks waiting on data.
|
| | | | | |
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
2009-03-09 David Smith <dsmith@redhat.com>
* print_new.c (stp_print_flush): Calls _stp_data_write_reserve()
and _stp_data_write_commit().
* transport/ring_buffer.c (__stp_alloc_ring_buffer): Sets up a
default buffer size of STP_BUFFER_SIZE;
(trace_seq_reset): New function.
(peek_next_entry): New function.
(__find_next_entry): New function.
(find_next_entry_inc): New function.
(_stp_data_read_trace): Uses find_next_entry_inc() to get the next
entry, then calls _stp_entry_to_user() to copy it to the user's
buffer, then calls ring_buffer_consume() to consume it.
(_stp_data_write_reserve): New function.
(_stp_data_write_commit): New function.
* transport/transport.c (_stp_transport_close): Calls functions
that were ifdef'ed out.
* transport/transport.h (struct _stp_entry): Added _stp_entry
definition and _stp_data_write_reserve()/_stp_data_write_commit()
prototypes.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
2009-03-04 David Smith <dsmith@redhat.com>
* runtime.h: Added _stp_exit() prototype.
* transport/ring_buffer.c: New file.
* transport/transport.c: Removed unneeded utt_trace lines.
Includes transport/ring_buffer.c.
(_stp_transport_fs_init): Calls _stp_transport_data_fs_init().
(_stp_transport_fs_close): Calls _stp_transport_data_fs_close().
* transport/transport.h: Added prototypes.
|
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | |
| | | | | |
2009-02-25 David Smith <dsmith@redhat.com>
* debug.h: Removed unused variable '_stp_transport_state'.
* print_new.c (stp_print_flush): Ifdef'ed out call to
utt_reserve().
* runtime.h: Added _stp_warn() prototype.
* transport/control.c: Includes control.h, mempool.c, and
symbols.c. Renamed '_stp_attached' to '_stp_ctl_attached'.
* transport/control.h: Removed _stp_pool_q declaration.
* transport/debugfs.c (_stp_register_ctl_channel_fs): Uses
_stp_get_module_dir().
* transport/transport.c: Cleanup.
* transport/transport.h: Ditto.
|
|/ / / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
2009-02-24 David Smith <dsmith@redhat.com>
* print.h: New file.
* print.c: Includes new print.h file.
* print_new.c (stp_print_flush): Commented out some code that
needs replacing.
* sym.c: Includes sym.h.
* transport/debugfs.c: Includes transport.h.
* transport/relayfs.c: Updated _stp_get_root_dir() call.
* transport/transport.c: Ifdef'ed out most setup.
* transport/transport.h: Ifdef'ed out all but basics.
* transport/utt.c (utt_create_tree): Updated _stp_get_root_dir()
call.
* transport/utt.h: Commented out 'rchan' in struct utt_trace.
(utt_reserve): Ifdef'ed out guts.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Our gettimeofday runtime has frequent wakeups to stay in sync with
kernel time, but this is wasted effort if gettimeofday is not used in
the script. This patch moves the calls to _stp_time_init and
_stp_time_kill into begin and end/error probes, which only get pulled in
if one of the gettimeofday variants is called.
|
| |_|/
|/| |
| | |
| | |
| | |
| | |
| | | |
2009-02-20 David Smith <dsmith@redhat.com>
* debugfs.c: Added inclusion of linux/debugfs.h.
* relayfs.h: Removed inclusion of linux/debugfs.h.
|
| | |
| | |
| | |
| | |
| | |
| | | |
Mark Wielaard, a dear friend of the departed, will be performing a song
and dance at the funeral services to commemorate the joyous times that
they had together.
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
2009-02-18 David Smith <dsmith@redhat.com>
* io.c (_stp_log): Removed unused function.
* map.c (_stp_cmp): Replace _stp_log() with dbug().
* mempool.c (_stp_mempool_resize): Removed unused function.
* print.c (next_fmt): Removed unused function.
* procfs.c: Removed unused variable '_stp_num_procfs_files'.
* regs.c (_stp_ret_addr): Removed unused function.
* string.c (_stp_text_str): Removed unused variable 'len'.
* string.h: Removed unused variable '_stdout_' and function
declaration for deleted function '_stp_vsprintf'.
* sym.c: Removed unused variables.
* unwind.c (_stp_create_unwind_hdr): Removed unused function.
2009-02-18 David Smith <dsmith@redhat.com>
* control.c: Removed unused variable '_stp_current_buffers'.
* procfs.c (_stp_set_buffers): Removed unused function.
(_stp_register_ctl_channel_fs): Removed unused variables and
label.
* symbols.c (u32_swap): Removed unused function.
(generic_swap): Ditto.
(_stp_sort): Ditto.
(_stp_section_is_interesting): Ditto.
* transport.c (_stp_transport_init): Removed unused variable
'ret'.
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
2009-02-17 David Smith <dsmith@redhat.com>
* control.c: Contains generic control channel functions.
* procfs.c: Specific procfs control channel functions. All generic
control channel functions moved to control.c.
* debugfs.c: New file containing debugfs specific control channel
functions.
* control.h: New file.
* transport.c: Updated file inclusion.
|
| | | |
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
2009-02-13 David Smith <dsmith@redhat.com>
* stack.c: Fixed compile problems on systems with older kernels
(like RHEL4).
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
2009-02-13 David Smith <dsmith@redhat.com>
* procfs.c: Added macros to guard against multiple inclusion.
2009-02-13 David Smith <dsmith@redhat.com>
* procfs.c: Added inclusion of ../procfs.c for
_stp_mkdir_proc_module().
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
2009-02-12 David Smith <dsmith@redhat.com>
* tapsets.cxx (procfs_derived_probe_group::emit_module_decls):
Moved inclusion of procfs.c here from runtime/transport.c
2009-02-12 David Smith <dsmith@redhat.com>
* transport.c: Moved inclusion of procfs.c to
procfs_derived_probe_group::emit_module_decls() in tapsets.cxx.
|