| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
| |
* runtime/syscall.h (x86_64 MMAP2_SYSCALL_NO): Define.
|
| |
|
|
|
|
| |
Signed-off-by: Robb Romans <robb@linux.vnet.ibm.com>
|
| |
|
| |
|
|
|
|
| |
* transport/symbols.c (_stp_do_relocation): Make msg static.
|
| |
|
|
|
|
|
|
|
|
|
| |
* runtime/regs.h (SET_REG_IP): Define.
(REG_IP_LVALUE): Undefine.
* tapsets.cxx (*::emit_module_decls): Use SET_REG_IP() instead
of old LVALUE? conditional.
Written by jkenisto & jistone.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
With old relayfs, out_fd is used only when non-bulk mode. However,
open_oldoutfile and open_relayfs_files open files with fopen and
set only percpu_tmpfile. This will cause a problem with -S option,
that out_fd will be closed when the file size reaches fsize_max
and new fd will be opened only on percpu_tmpfile.
So, out_fd should be synchronized with percpu_tmpfile.
* runtime/staprun/relay_old.c (open_oldoutfile): Set fd of output file
to out_fd[cpu].
(open_relayfs_files): Ditto.
|
|/
|
|
|
|
|
| |
* runtime/transport/ring_buffer.c (_stp_event_to_user): Removed unneeded
cast.
(_stp_data_write_reserve): Ditto.
(_stp_data_write_commit): Ditto.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
| |
* testsuite/systemtap.examples/check.exp: Handle with test_support.
* testsuite/systemtap.examples/io/iostat-scsi.meta: Add meta-tag test_support.
* testsuite/systemtap.examples/memory/mmanonpage.meta: Ditto.
* testsuite/systemtap.examples/memory/mmfilepage.meta: Ditto.
* testsuite/systemtap.examples/memory/mmreclaim.meta: Ditto.
* testsuite/systemtap.examples/memory/mmwriteback.meta: Ditto.
* testsuite/systemtap.examples/network/autofs4.meta: Ditto.
* testsuite/systemtap.examples/network/dropwatch.meta: Ditto.
* testsuite/systemtap.examples/process/schedtimes.meta: Ditto.
|
|
|
|
|
| |
* Makefile.am (uninstall-local): Don't rm libexecdir but remove doc/exmaples.
* Makefile.in: Regenerated.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The general approach is to rip out task_finder_tgt's from all over the
place (including the unwindsym vmcbs, and the stap_uprobe_specs), and
instead have a small handful of them: one for all unwindsyms, and one
per abstract probed process (PID or NAME). These are in turn shared
by all new stap_unwind_specs by index.
Before: probe process("./stap").function("*")
-rw-r--r--. 1 fche users 11775283 2009-09-08 20:26 /var/tmp/fche/systemtap/cache/96/stap_96c0479d674db55ec98d8a8750a790e7_7989596.ko
text data bss dec hex filename
445158 8351944 4306472 13103574 c7f1d6 /var/tmp/fche/systemtap/cache/96/stap_96c0479d674db55ec98d8a8750a790e7_7989596.ko
After: (Note how data shrank, though text gained a bit in const-init-data.)
-rw-r--r--. 1 fche users 4021569 2009-09-08 20:27 /var/tmp/fche/systemtap/cache/e4/stap_e46e88634efd850b1586e81c231c239a_8058419.ko
text data bss dec hex filename
1896511 2192 4324808 6223511 5ef697 /var/tmp/fche/systemtap/cache/e4/stap_e46e88634efd850b1586e81c231c239a_8058419.ko
* tapsets.cxx (uprobe_derived_probe_group): Rewrite emit_module_decls,
and adjust emit_module_init.
* runtime/sym.c (_stp_sym_init): Initialize unwindsyms-shared vmcb.
* runtime/sym.h (_stp_module): Remove *vmcb field.
* translate.cxx (emit_module_init, dump_unwindsyms): Adapt.
* translate.h (assert_0_indent): Flush output before possibly assert-failing.
|
| |
|
|
|
|
|
|
|
|
| |
Suspecting that some kernel->user control messages may be getting
lost, let's more robustly log these occurrences.
* runtime/transport/control.c (_stp_ctl_send): printk(KERN_ERROR)
instead of ignoring errors.
|
|
|
|
| |
* io.c (DEBUG_TASK_FINDER_PRINTK): Remove conditional.
|
|
|
|
|
|
| |
* task_finder.c (stap_start_task_finder): Emit _stp_dbug message at end
rather at beginning, so printed utrace-engine attach counts reflect
status at end of initialization rather than at beginning.
|
|
|
|
|
|
| |
* runtime/io.c (_stp_vlog): Don't put ansi highlighting into debugging
messages. #if STAP_DEBUG_PRINTK, direct all diagnostics to appropriate
printk channel instead of runtime trace buffer.
|
|
|
|
| |
* sdt_misc: Add -shared section.
|
| |
|
|\ |
|
| | |
|
|/ |
|
|
|
|
|
| |
* testsuite/semko/nodwf07.stp: Add >/dev/null at end, since stap -p2
for this script generates turbomucho text.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
* tapsets.cxx (validate_module_elf): Set expect_machine = "powerpc" for both
EM_PPC and EM_PPC64 to match session architecture set in main.
|
| |
|
|
|
|
|
|
|
|
|
| |
For some reason the do_filp_open const char *pathname argument has changed
its name between different kernel versions. Luckily filp_open has a cont char
*filename argument that is constant between versions (the test needs a
const char* argument to do an array operation on).
* testsuite/semok/bz10475.stp: Use filp_open instead of do_filp_open.
|
|
|
|
|
|
|
|
|
|
| |
Note that the new compat_sys_ustat is asmlinkage and has a differently
named argument for the user struct.
* tapset/syscalls2.stp (syscall.ustat32): Add compat_sys_ustat variant.
(syscall.ustat.return): Likewise.
* tapset/nd_syscalls2.stp (nd_syscall.ustat32): Likewise.
(nd_syscall.ustat.return): Likewise.
|
|
|
|
|
|
| |
Save offset of build id relative to _stext instead of absolute
address for kernel and apply relocations at run-time. This fixes
Debian bug #545277 (http://bugs.debian.org/545277).
|
|\ |
|
| | |
|
| | |
|
|/ |
|
|\ |
|
| |
| |
| |
| | |
* hash.cxx (find_script_hash): Add s.unprivileged.
|
| |\ |
|
| | |
| | |
| | |
| | | |
* dwflpp.cxx (dwflpp::build_blacklist): Escape '.'s in filenames.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We already use regexp for function/file blacklisting, so this just makes
the section blacklisting consistent with the rest.
* dwflpp.cxx (dwflpp::blacklisted_p): Use regexec instead of section==.
(dwflpp::build_blacklist): Build blacklist_section too.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We only check blacklisting on kernel probes, so it's a waste to dig up
the section name otherwise.
* dwflpp.cxx (dwflpp::blacklisted_p): Lookup the section directly.
(relocate_address::relocate_address): Don't do blacklisting here.
* tapsets.cxx (dwarf_query::add_probe_point): Don't carry the blacklist
section directly anymore.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In C++, identical functions included in multiple CUs will get merged at
link time into a single instance. We need to make sure that inlines
within those merged functions are not probed multiple times.
* tapsets.cxx (inline_instance_info::operator<): Used for set support.
(dwarf_query::handle_query_module): Clear inline_dupes on each module.
(query_dwarf_inline_instance): Squash this inline instance if it's
already in the inline_dupes set.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We can't assume that a given function name will only appear once in a
CU. In C++, two functions may have the same name in different classes
or namespaces, or even in the same scope with overloaded parameters.
Even in C, the compiler may generate multiple copies of a single
function with different optimizations.
We now use a multimap for function names, so we shouldn't miss any.
* dwflpp.h (cu_type_cache_t, mod_cu_type_cache_t): New typedef to keep a
normal map for the global_alias_cache.
(cu_function_cache_t): Use a multimap for function names.
* dwflpp.cxx (dwflpp::iterate_over_functions): Walk over the range of
exactly-matching functions.
* tapsets.cxx (query_dwarf_func): Don't abort after seeing an exact
match -- there could be more to come.
|
| | |
| | |
| | |
| | | |
* dwflpp.cxx (dwflpp::~dwflpp): Delete all of the caches.
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
We were defining our own stap_map with a ::type to let us use typedefs
to use the new unordered_map if available, or hash_map otherwise. Since
unordered_map is the future direction, I'm changing our code to use that
directly. The backward-compatible version is a #define to hash_map,
which has a compatible interface.
While I'm at it, let's also define unordered_multimap, unordered_set,
and unordered_multiset.
* unordered.h: New.
* dwflpp.h (stap_map): Removed.
(cache typedefs): Use the unordered name now.
|