summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* Pick up some NEWS items from the release notesJosh Stone2009-06-111-0/+7
|
* remove erroneous dependency (systemtap-sdt-devel -> systemtap)Frank Ch. Eigler2009-06-111-1/+0
|
* Add nd_syscalls NEWSJosh Stone2009-06-101-0/+6
|
* Reformat the module signing NEWSJosh Stone2009-06-101-7/+8
|
* Merge branch 'master' of ssh://sourceware.org/git/systemtapJosh Stone2009-06-101-4/+4
|\
| * gcc 3.4.6 compatibility: s/{true,false}/{1,0} in runtime/unwind.cFrank Ch. Eigler2009-06-101-4/+4
| |
* | PR10260: Clean up all resources after init errorsJosh Stone2009-06-101-0/+8
|/ | | | | | | | | | | | | | When anything in systemtap_module_init fails, and we return non-zero, then the module load is aborted. The normal module unload path (systemtap_module_exit) is not even attempted, so we need to make sure that all partially-allocated resources are returned. Our timer callbacks for the gettimeofday subsystem are a classic example of this error. If we don't unregister the timers before aborting init, they will later be called and cause a kernel fault. We also were neglecting to free the percpu context. A memory leak is less harmful, but that's fixed now too.
* Fix condition propagation across aliasesJosh Stone2009-06-093-5/+40
| | | | | | | | | | When an instance of an alias has a condition, that condition gets propagated to each of the locations that the alias defines. However, the copy of the location list was not a deep copy, and so all other instances of the alias would also incorrectly receive the condition. This patch makes the location list copy a little deeper, and adds a test case which demonstrates the issue.
* build compatibility fix for gcc 3.4Frank Ch. Eigler2009-06-091-1/+1
| | | | * translate.cxx (emit_symbol_data): Use ~0 instead of -1 for big unsigned constant
* Add bounds-checking to sdt $argNJosh Stone2009-06-091-5/+9
|
* Remove probe_table's unused location memberJosh Stone2009-06-091-5/+4
|
* Remove sdt_var_expanding_visitor's now-unused dwJosh Stone2009-06-091-6/+5
|
* Remove the spurious sdt @cast expansionJosh Stone2009-06-091-3/+0
| | | | | | | The result of sdt's private @cast expansion was not being used, and it's not really needed anyway. The global cast visitor is registered to run as a post-processing step on ALL functions and probes, and so it will pick up and expand sdt's casts too.
* Simplify process.mark parameter parsingJosh Stone2009-06-091-8/+5
| | | | | This just makes it so the parameters only need to be checked and pulled out once.
* dummy empty changeFrank Ch. Eigler2009-06-090-0/+0
|
* * tapsets.cxx (sdt_var_expanding_visitor::process_name): New.Stan Cox2009-06-091-13/+12
| | | | | | (sdt_var_expanding_visitor::visit_target_symbol): Have @cast use types from a dtrace built object instead of a dtrace supplied header. (dwarf_builder::build): Use it.
* Fix uninitialized shdr in probe_tableJosh Stone2009-06-091-1/+8
| | | | | | | | | (redo commit 3d022fa9c6bdbca383dfc639d08d65287c708f56) * tapsets.cxx (dwarf_builder::probe_table::probe_table): gcc 4.4 complains that shdr may be used uninitialized. I added returns to ensure that it's ok, but gcc still complains. Set the thing to NULL as well to silence the beast.
* * tapsets.cxx (probe_table): Make mark_name and sess refs.Stan Cox2009-06-081-115/+115
| | | | | | | (probe_table::get_next_probe): Dissect using struct probe_table. (sdt_var_expanding_visitor): Use lex_cast. (dwarf_builder::build): Copy probe and location for TOK_MARK cases. Call derive_probes for kprobe and utrace cases.
* Remove dwflpp::default_nameJosh Stone2009-06-082-17/+4
| | | | | | It was just a basic NULL check, but creating its string temporaries was causing a fair slowdown. Removing this function and adjusting the callers shaves ~5% off the syscall.* elaboration time.
* Let query_module abort early for simple matchesJosh Stone2009-06-082-10/+5
| | | | | | | | | | | | | | | | | | query_module was already returning DW_CB_ABORT when a simple match was found, but dwflpp::iterate_over_modules was ignoring that and instead forcing the module loop to restart. The only way out of the loop was with the pending_interrupts flag, which is only for signalled interrupts. Now iterate_over_modules will only attempt the dwfl_getmodules loop once, since that loop will only abort if the CB returns DW_CB_ABORT. Then query_module is also modified to return ABORT if pending_interrupts is flagged. My trusty test, stap -l syscall.*, is nearly 2x faster with this change. Empirically, I found that the kernel object is always the first "module" returned, so the syscall probepoints always gets to short-circuit the loop right away.
* ttyspy: struct pid->number[0]->nr arrived with 2.6.24 not laterFrank Ch. Eigler2009-06-061-1/+1
|
* ttyspy.stp: new sample scriptFrank Ch. Eigler2009-06-066-1/+118
|
* PR10209: extend configury for --disable-translatorElliott Baron2009-06-059-163/+258
| | | | | | | | | | | | * configure.ac: Added --disable-translator feature, creates AM_CONDITIONAL BUILD_TRANSLATOR. * Makefile.am: Only build runtime components (staprun, stapio) if BUILD_TRANSLATOR == FALSE. * configure: Regenerated. * Makefile.in: Likewise. * aclocal.m4: Likewise. * config.in: Likewise. * doc/Makefile.in: Likewise. * doc/SystemTap_Tapset_Reference/Makefile.in: Likewise. * grapher/Makefile.in: Likewise.
* Fix uninitialized shdr in probe_tableJosh Stone2009-06-031-15/+22
| | | | | | | * tapsets.cxx (dwarf_builder::probe_table::probe_table): gcc 4.4 complains that shdr may be used uninitialized. I added returns to ensure that it's ok, but gcc still complains. Set the thing to NULL as well to silence the beast.
* * tapsets.cxx (dwarf_builder::probe_table): New. Derived fromStan Cox2009-06-031-145/+411
| | | | | | dwarf_builder::build to handle the .probes section (sdt_var_expanding_visitor): New. Expand static probe $argN. (dwarf_builder::build): Use probe_table. Add kprobe and utrace probe types.
* Detect kretprobe trampoline and use fallback unwinder.Mark Wielaard2009-06-035-11/+34
| | | | | | | | | | | | * 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.
* Add $arch/nd_syscalls.stpJosh Stone2009-06-025-0/+1419
| | | | | These are all the dwarfless analogs to $arch/syscalls.stp. (Only i686 and x86_64 have been tested...)
* Clean up the formatting of $arch/syscalls.stpJosh Stone2009-06-025-149/+224
|
* Complete a few TODO probe points in nd_syscalls2Josh Stone2009-06-021-39/+96
| | | | This adds renameat, unlinkat, unshare, and compat_sys_semctl.
* 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.
* Fix nd_syscall2 open.return typo.Mark Wielaard2009-06-021-2/+2
| | | | | * tapset/nd_syscalls2.stp (nd_syscall.open.return): Add commas after alternatives.
* More nd_syscalls2 cleanup, and add SYSCALL_WRAPPERSJosh Stone2009-06-021-291/+575
| | | | | | | - Fix a few more formatting issues - Add SYSCALL_WRAPPERS analogous to 132c33 tapset/syscalls2.stp Thanks to Przemysław Pawełczyk for the helpful translation scripts.
* Merge branch 'master' of ssh://sourceware.org/git/systemtapJosh Stone2009-06-022-2/+9
|\
| * Add debuginfo-install suggestion for kernel probing.William Cohen2009-06-011-1/+7
| |
| * Better sdt.exp test cleanup.David Smith2009-06-011-1/+2
| | | | | | | | * testsuite/systemtap.base/sdt.exp: Better cleanup.
* | Cache the last result of dwarf_getscopesJosh Stone2009-06-022-2/+27
| | | | | | | | | | | | | | | | | | | | | | This one function accounted for ~30% of my callgrind profile of "stap -l 'syscall.*'", even though it was only called ~1200 times. We call dwarf_getscopes for each $target variable, with the same parameters within a given probe. Since they're no nicely grouped, it's easy to just cache the most recent call, and the next few calls will be a hit. Overall this cuts the number of calls down to about 300, for an easy speed gain.
* | Move the blacklist functions into dwflppJosh Stone2009-06-013-321/+315
|/ | | | | | | For a call like "stap -l 'syscall.*'", I found that ~10% of the time was spent compiling the blacklist regexps over again for each probe point. By moving this functionality into the kernel dwflpp instance, we can reuse the regexps and get an easy speed boost.
* 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.
* Fix a few variables in nd_syscalls2Josh Stone2009-05-291-13/+13
|
* Clean up nd_syscalls2 formattingJosh Stone2009-05-291-556/+786
| | | | This applies some of the formatting rules specified in c0c1ccc.
* Kill trailing whitespace in nd_syscalls[2]Josh Stone2009-05-292-144/+144
|
* Convert nd_syscalls2 to kprobe.functionJosh Stone2009-05-291-437/+437
|
* Add JoeLynn Keniston to AUTHORSJosh Stone2009-05-291-0/+1
|
* Create nd_syscalls2.stpJoeLynn Keniston2009-05-291-0/+3916
| | | | | | | This contains an initial transformation of syscalls2.stp to start using numbered parameter access instead of relying on dwarf. Signed-off-by: Josh Stone <jistone@redhat.com>
* PR10206: Include NOTYPE symbols in stap-symbols.hAnanth N Mavinakayanahalli2009-05-281-0/+1
| | | | | On powerpc, function descriptors are in the .opd section as NO_TYPE. Include them in stap-symbols.h
* 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.
* Add ucontext-symbols and ucontext-unwind tapset functions to the manual.Mark Wielaard2009-05-282-1/+2
| | | | | | | * tapset/ucontext-unwind.stp (ubacktrace): Remove empty line before function triggering parse errors for doc scanner. * doc/SystemTap_Tapset_Reference/tapsets.tmpl (chapter context_stp): Add tapset/ucontext-symbols.stp and tapset/ucontext-unwind.stp.
* More testsuite tweaks to make it work with SYSCALL_WRAPPERSAnanth N Mavinakayanahalli2009-05-285-9/+9
|
* Suggest rpms to install using debuginfo-install.William Cohen2009-05-2715-66/+985
| | | | | | | | | The patch makes use of the RPM libraries to determine which rpm supplied the executable and from that information suggest a command to install the appropriate debuginfo rpm. This is enabled using the "--with-rpm" option for configure. Can be explicitly disabled with "--without-rpm".
* Fix nd_syscalls.stp for architectures using SYSCALL_WRAPPERS.Przemyslaw Pawelczyk2009-05-261-305/+568
| | | | | | | | | | | | Add kprobe.function("SyS_*") probe points to nd_syscall.* probe aliases. Analogue of commit 132c337c with two exceptions: - remove sufficiency of these new probe points (use '?' instead of '!'), because translator always considers them resolved, - make non-SyS probe points optional in probe aliases affected by syscall wrappers, because otherwise they will fail on such architectures. Signed-off-by: Josh Stone <jistone@redhat.com>