hunt [Thu, 9 Nov 2006 17:57:40 +0000 (17:57 +0000)]
2006-11-09 Martin Hunt <hunt@redhat.com>
* transport_msgs.h: Change all ints to int32_t. Prefix
all struct names with "_stp".
* transport.c: Use new struct names.
(_stp_handle_start): Send pointer size and endianess.
* procfs.c: Use new struct names.
hunt [Thu, 9 Nov 2006 17:53:41 +0000 (17:53 +0000)]
2006-11-09 Martin Hunt <hunt@redhat.com>
* librelay.c: Change all references to transport messages
to use the new names with "_stp" prefix.
(stp_main_loop): For STP_SYMBOLS, check pointer size and
endianess to confirm staprun is compatible with the kernel.
* librelay.h: Move a bunch of common includes here.
* stpd.c: Cleanup includes.
* symbols.c: Ditto.
guanglei [Thu, 9 Nov 2006 12:19:22 +0000 (12:19 +0000)]
add options for lket-b2a to control the output data fields of lket.out.
make fork/execce trace hooks lket internally and turned on by default.
add stoptrace_fork and stoptrace_execve flags for lket to control
stopping fork/execve in user scripts.
tpnguyen [Thu, 2 Nov 2006 19:03:03 +0000 (19:03 +0000)]
2006-11-02 Thang Nguyen <thang.p.nguyen@intel.com>
* systemtap.samples/tcptest.exp: Put TCP load gen into a
a seperate script.
* systemtap.samples/tcptest.tcl: new script for TCP load
gen.
dsmith [Thu, 2 Nov 2006 17:27:43 +0000 (17:27 +0000)]
2006-11-02 David Smith <dsmith@redhat.com>
* main.cxx (main): Added '-r' check. If the user changes the
kernel release to compile against, make sure pass 5 isn't
performed (since the resulting module won't be installable).
jistone [Wed, 1 Nov 2006 23:29:51 +0000 (23:29 +0000)]
2006-11-01 Josh Stone <joshua.i.stone@intel.com>
* tapsets.cxx (timer_derived_probe_group::emit_interval): New -
Fixes randomization for jiffies timers in ms mode.
(timer_derived_probe_group::emit_module_decls): Use emit_interval.
(timer_derived_probe_group::emit_module_init): Ditto.
fche [Wed, 1 Nov 2006 01:55:59 +0000 (01:55 +0000)]
2006-10-31 Frank Ch. Eigler <fche@redhat.com>
Probe registration rework. Offline dwarf processing for better
cross-instrumentation.
* elaborate.h (derived_probe): Remove registration-related code
generation API. Add new function sole_location().
(derived_probe_group): Reworked this and associated classes.
* session.h (systemntap_session): Create individual per-category
derived_probe_groups.
* elaborate.cxx (derived_probe_group): Reworked.
(alias_derived_probe): Switch to new derived_probe API.
(semantic_pass_symbols): Ditto.
* translate.cxx (mapvar init): Check for array initialization error.
(emit_module_init): Handle such failures, at least in theory.
(emit_module_exit): Switch to new derived_probe_group API. Call
cpu_relax() during shutdown busywait.
(emit_common_header): Elide context variables for elided handler fns.
(c_unparser::emit_probe): Implement new, improved duplicate
elimination technique for probe handlers. Leave two older ones
behind as compile options for education.
* tapsets.cxx (*): Reworked all probe registration code, moving
it from derived_probes into derived_probe_groups. Shrunk output
code. Temporarily disabled probe timing and perfmon/mark probes.
(dwflpp): Use offline reporting, so that module matching and
relocation is performed at run time.
(dwarf_query): Remove flavour logic, now supplanted by other
duplicate elimination code.
(dwarf_derived_probe): Reworked construction, centralized
module/section/offset computations.
* tapsets.h (all_session_groups): New little helper.
* main.cxx (main): For pass-2 message, print number of embeds too.
* systemtap.spec.in: Add a "BuildRequires: dejagnu" for make check.
* configure.ac: Bump version to 0.5.11.
* configure: Regenerated.
jistone [Mon, 30 Oct 2006 20:26:43 +0000 (20:26 +0000)]
2006-10-30 Josh Stone <joshua.i.stone@intel.com>
* systemtap.maps/pmap_agg_overflow.stp: Use
kernel.function("scheduler_tick") instead of timer.jiffies
so the test works on all kernels. The test needs a probe
that is invoked often on all cpus.
dsmith [Mon, 30 Oct 2006 15:24:44 +0000 (15:24 +0000)]
2006-10-30 David Smith <dsmith@redhat.com>
* systemtap.base/cache.exp: Saves value of SYSTEMTAP_DIR
environment variable before starting tests and restores value at
the end. Without this caching was broken for the rest of the
testsuite, since all cached files were ending up in
testsuite/.cache_test (which gets deleted on the next run of the
testsuite).
* Makefile.am: The 'clean-local' target now removes the .systemtap
and .cache_test directories.
* Makefile.in: Regenerated.
dsmith [Thu, 26 Oct 2006 14:43:13 +0000 (14:43 +0000)]
2006-10-26 David Smith <dsmith@redhat.com>
* systemtap.base/cache.exp: New file that tests caching
functionality.
* lib/systemtap.exp (setup_systemtap_environment): Use a local
systemtap directory/cache (instead of the user's cache).
* .cvsignore: Added .systemtap directory.
dsmith [Mon, 23 Oct 2006 22:09:51 +0000 (22:09 +0000)]
2006-10-23 David Smith <dsmith@redhat.com>
* main.cxx (printscript): New function containing code moved from
main().
(main): Added code to create cache directory, call function to
generate hash, and see if we can use cached source/module. If
pass 4 is actually run to produce a new module, we call
add_to_cache() to cache the result.
* session.h (struct systemtap_session): Added hash/cache session
data.
* cache.cxx: New file handling adding/getting files from the
cache.
* cache.h: New header file for cache.cxx.
* hash.cxx: New file containing C++ wrapper for routines in
mdfour.c and the find_hash function which computes the hash file
name for an input script.
* hash.h: New header file for hash.cxx.
* mdfour.c: New file containing MD4 hash code.
* mdfour.h: New header file for mdfour.c.
* util.cxx: New file containing several utility functions used by
the caching code.
* util.h: New header file for util.cxx.
* Makefile.am: Added new C/C++ files.
* Makefile.in: Regenerated.
guanglei [Fri, 13 Oct 2006 10:08:30 +0000 (10:08 +0000)]
* tapset/scsi.stp:
add more variables
* tapset/LKET/register_event.stp:
be sync with scsi trace hooks
* tapset/LKET/scsi.stp:
avoid reference to struct members in
embedded c. Use stap variables as more as possible.
break scsi_info into four variables.
delete cmd_pid from all logging functions
hunt [Thu, 12 Oct 2006 18:19:18 +0000 (18:19 +0000)]
2006-10-12 Martin Hunt <hunt@redhat.com>
* stack.c: Reorganize and split arch-specific functions to
separate files.
(_stp_kta): Better checking.
(_stp_stack_sprint): Better handling of return probes.
* stack-i386.c: New file. Uses 2.6.18 DWARF unwinder if available.
* stack-x86_64.c: New file. Uses 2.6.18 DWARF unwinder if available.
* stack-ppc64.c: New file.
* stack-ia64.c: New file.
* sym.c (_stp_kallsyms_lookup_name): New function. Like
kallsyms_lookup_name() except use our internal lookup table.
guanglei [Thu, 12 Oct 2006 08:29:10 +0000 (08:29 +0000)]
* ioscheduler.stp:
bugfix to avoid refer to NULL pointer
* hookid_defs.stp, ioscheduler.stp, register_event.stp:
break the old addevent.ioscheduler.elv_next_request into
addevent.ioscheduler.elv_next_request.entry and
addevent.ioscheduler.elv_next_request.return.
Now log_ioscheduler_tracedata_* will use the
variables defined in generic ioscheduler tapset
dsmith [Wed, 11 Oct 2006 14:56:09 +0000 (14:56 +0000)]
2006-10-11 David Smith <dsmith@redhat.com>
* tapsets.cxx (in_kprobes_function): New function that looks up
the values of '__kprobes_text_start' and '__kprobes_text_end' in
the kernel to be able to automatically exclude functions marked as
'__kprobes' (BZ# 2639).
(blacklisted_p): Calls in_kprobes_function().
(query_kernel_module): Utility function that finds the kernel module.
* session.h (struct systemtap_session): Added kprobes_text
variables - kprobes_text_initialized, kprobes_text_start, and
kprobes_text_end.
* elaborate.cxx (systemtap_session::systemtap_session):
kprobes_text variables get initialized.
guanglei [Tue, 10 Oct 2006 09:53:54 +0000 (09:53 +0000)]
* runtime/lket/b2a/lket_b2a.c, runtime/lket/b2a/lket_b2a.h:
Adding the support of automatically database creation and
dumping lket trace into mysql database
* configure.ac:
add the checking of mysql client library
* Makefile.in, configure:
regenerated
* runtime/lket/b2a/Makefile.am:
add the checking and optional compiling for mysql client library
guanglei [Tue, 10 Oct 2006 08:32:06 +0000 (08:32 +0000)]
stapprobes.signal.5.in:
document signal syscall
hookiddefs.stp:
some changes to the hookid:
Now the hookid of a return type event(addevent.*.return)
should be an even number and its value should be the
corresponding entry event hookid +1.
The hookid of a non-return type event should be an odd
number.
Add the hookid of HOOKID_REGEVTDESC
register_event.stp:
add register_evt_desc() to register the description of an event.
Change the register_sys_event() to add the an argument
representing event description
Allow to use empty format string and empty field name when
calling register_event().
Change all calling to register_sys_event() to add an
argument which represents the event description.
Change register_evt_desc() and register_event() to add an argument
representing the event description string, which could help
facilitate the error debugging.
iosyscall.stp:
bugfix to add the variable GroupID and hookID
nfs.stp:
bugfix to add some omitted probe definitions.
nfs_proc.stp:
bugfix of the wrong calling to _lket_trace() for
nfs_proc.remove.entry.
jistone [Mon, 9 Oct 2006 19:34:07 +0000 (19:34 +0000)]
2006-10-09 Josh Stone <joshua.i.stone@intel.com>
From David Wilder <dwilder@us.ibm.com>
* time.c (__stp_estimate_cpufreq): Short-circuit on s390.
(_stp_gettimeofday_ns): Use a fixed formula on s390 to
convert TOD clocks to nanoseconds.
PR 3278
* tapsets.cxx (hrtimer_derived_probe::emit_probe_entries): Only
restart timers when the session is still active and we updated the
expire time.
* session.h (struct systemtap_session): Add kernel_base_release
to store the kernel version without the -NNN suffix.
* main.cxx (main): Generate and use kernel_base_release.
* parse.cxx (eval_pp_conditional): Use kernel_base_release.
* tapsets.cxx (profile_derived_probe::profile_derived_probe):
Use kernel_base_release.
* tapsets.cxx (timer_builder::build): Support a wide variety of
timer varients -- jiffies, s/sec, ms/msec, us/usec, ns/nsec, and
hz. Use hrtimers automatically on kernels that have it.
(timer_builder::register_patterns): Bind all of the new timer
varients in one easy place.
(register_standard_tapsets): Call timer_builder::register_patterns.
(struct hrtimer_builder): Removed since timer_builder is generic.
* stapprobes.5.in: Document new timer.* functionality.
* tapsets.cxx (hrtimer_derived_probe_group::emit_probes): Add a
shared global for the actual hrtimer resolution, _stp_hrtimer_res.
(hrtimer_derived_probe_group::emit_module): Init _stp_hrtimer_res.
(hrtimer_derived_probe::emit_interval): Limit intervals at a
minimum to the hrtimer's actual resolution.
(hrtimer_derived_probe::emit_probe_entries): Forward timers
based on previous expiration instead of restarting relative.
testsuite/
* buildok/fourteen.stp: Test new timer functionality.