summaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
...
* Add ia64 pipe result support. Relax pipe syscall test a little.Mark Wielaard2010-03-192-4/+20
| | | | | | * tapset/syscalls2.stp (syscall.pipe.return): ia64 provides pipe0, pipe1 results through (user) registers. * testsuite/systemtap.syscall/pipe.c: Only expect zero as input fildes.
* Let try_block contain any statementJosh Stone2010-03-191-2/+2
| | | | | | | We still require the block for parsing, but the optimizer likes to fold singleton blocks away, so any statement is possible. PR11341 masks such issues at compile time, but I'm a little surprised that we've gotten away with this at runtime...
* PR909: add a baby test caseFrank Ch. Eigler2010-03-192-20/+15
| | | | | | * testsuite/systemtap.examples/profiling/thread-times.stp: Prefer perf.sw.cpu_clock to timer.profile. Prettify output by including comm string.
* tapset: port addr_to_node() to rhel4Frank Ch. Eigler2010-03-191-1/+5
|
* Add testcase for syscall.pipe.Mark Wielaard2010-03-191-0/+27
|
* Merge syscall.pipe and syscall.pipe2 to get around "nesting".Mark Wielaard2010-03-191-41/+24
| | | | | * tapset/syscalls2.stp (syscall.pipe[2][.return]): Merge into syscall.pipe and syscall.pipe.return. Set name according to flags.
* Reindent syscall2.stp pipe[2][.return] to follow unify formatting rules.Mark Wielaard2010-03-191-72/+54
| | | | See commit c0c1cc.
* PR11402 Support pipe2 syscall.Mark Wielaard2010-03-192-0/+59
| | | | | | | | | The pipe2() was added to Linux in version 2.6.27. It is a variant of the normal pipe syscall, but takes an extra flags argument which can be the ORed value of O_NONBLOCK and O_CLOEXEC. * tapset/aux_syscalls.stp (_sys_pipe2_flag_str:string): New helper function. * tapset/syscalls2.stp (syscall.pipe2, syscall.pipe2.return): New probes.
* Recognize O_CLOEXEC in _sys_open_flag_str.Mark Wielaard2010-03-191-0/+4
| | | | | * tapset/aux_syscalls.stp (_sys_open_flag_str): If O_CLOEXEC is defined recognize and return it.
* Make pipe file descriptors available in syscall.pipe[.return].Mark Wielaard2010-03-191-1/+34
| | | | | | | | | | | The actual value of the pipe file descriptors can be interesting, especially in the syscall.pipe.return probe. This can be done without any embedded C now using @cast. So don't use _fildes_u() anymore. _fildes_u in aux_syscall.stp is still retained because it is used in nd_syscalls2.stp for pipe. * tapset/syscalls2.stp (syscall.pipe, syscall.pipe.return): Add pipe1 pipe2 convenience variables. Don't use _fildes_u for argstr anymore.
* Use @defined() in syscall.pipe to select whether fildes_uaddr is available.Mark Wielaard2010-03-191-20/+10
| | | | | | * tapset/aux_syscalls.stp (syscall.pipe): Remove architecture dependent probe definitions. Newer gcc make $fildes available on more arches. Use @defined($fildes) to select on which ones.
* Sprinkle static to prevent unnecessary inclusionJosh Stone2010-03-182-3/+3
| | | | | | * runtime/stack.c (_stp_stack_print_tsk): Static. (_stp_stack_snprint_tsk): Static. * runtime/task_finder.c (__stp_utrace_task_finder_ops): Static.
* Simplify the perf entry handlersJosh Stone2010-03-181-9/+6
| | | | | | * tapset-perfmon.cxx (perf_derived_probe_group::emit_module_decls): Just pass an index from the individual entry handlers, and let handle_perf_probe figure out the pp and ph.
* Create one perf structure to rule them allJosh Stone2010-03-183-77/+38
| | | | | | | | | | * perf.h (stap_perf_probe): Define one structure for all our needs. * perf.c (_stp_perf_init): Use the new struct, return errors directly. (_stp_perf_exit): Use the new struct. * tapset-perfmon.cxx (perf_derived_probe_group::emit_module_decls): Use the stap_perf_probe definition from perf.h now. (perf_derived_probe_group::emit_module_init): Adapt. (perf_derived_probe_group::emit_module_exit): Adapt.
* PR11346: Move the skip-badvars logic into const-foldingJosh Stone2010-03-183-28/+42
| | | | | | | | | | | | | | | The const_folder is where we prune constant expressions, like conditionals based on a @defined($foo), so we want to give this a chance to work before skip-badvars comes in and throws a warning. As an added bonus, this makes skip-badvars more generic, so it will work even for non-dwarf $target variables. * elaborate.cxx (const_folder::visit_target_symbol): Enact skip-badvars. * tapsets.cxx (dwarf_var_expanding_visitor::visit_target_symbol): Don't worry about badvars here anymore. Save the error now, clean up later. * testsuite/semok/badvar_undefined.stp: Test that @defined with skip-badvars doesn't throw any warnings.
* tweak perf.* probe blurbage re. constrained hw pclFrank Ch. Eigler2010-03-181-2/+2
|
* PR909: add perf.hw_cache.* aliasesFrank Ch. Eigler2010-03-183-5/+79
| | | | | | * tapset/perf.stp: Add 'em. * man/tapset::perf.3stap: Document 'em a little. * stapprobes.3stap.in: Fix .sample (not .samples) probe point typo.
* Fixed BZ 568032 by adding support for sys_ia64_pipe.David Smith2010-03-181-2/+9
| | | | | * tapset/nd_syscalls2.stp: Added support for 'sys_ia64_pipe' so that the syscall.pipe probe works correctly under RHEL5.5.
* Fixed BZ 568032 by adding support for sys_ia64_pipe.David Smith2010-03-181-2/+9
| | | | | * tapset/syscalls2.stp: Added support for 'sys_ia64_pipe' so that the syscall.pipe probe works correctly under RHEL5.5.
* PR909: baby documentation for perf.* probesFrank Ch. Eigler2010-03-184-1/+91
|
* optimizer diagnostics: identify taken branch of optimizationsFrank Ch. Eigler2010-03-181-3/+3
| | | | | * elaborate.cxx (const_folder::visit_if_statement, visit_binary_expression, visit_ternary_expression): Print constant value in -vvv diagnostics.
* Remove <asm/segment.h> inclusion to fix ppc build.David Smith2010-03-181-1/+0
| | | | | * runtime/sym.c: Removed <asm/segment.h> include. That file doesn't exist on ppc, and it appears to be empty everywhere else.
* autoconf: standardize CPU_KHZ based on session kernel_exportsFrank Ch. Eigler2010-03-181-35/+11
| | | | | * buildrun.cxx (output_cpu_khz): Replace with generalized output_exportconf().
* testuite: modargs.exp shouldn't execute things without installcheckFrank Ch. Eigler2010-03-181-2/+5
|
* PR909: store kernel exported symbols in session objectFrank Ch. Eigler2010-03-183-4/+40
| | | | | | | * session.h (kernel_exports): New field. * main.cxx (parse_kernel_exports): Fill it. * tapset-perfmon.cxx (perf_builder::build): Check it for our pal perf_event_create_kernel_counter.
* PR909: reject perf.* probes laterFrank Ch. Eigler2010-03-181-6/+5
| | | | | * tapset-perfmon.cxx (perf_builder::build): Check for CONFIG_PERF_EVENTS here. (register_tapset_perf): ... instead of here.
* PR909: switch to tapset-based attr/type resolutionFrank Ch. Eigler2010-03-182-76/+54
| | | | | | * tapset/perf.stp: New file. * tapset-perfmon.cxx (perf_derived_probe): Drop event_name field throughout. Listen to type(N).config(M) instead.
* PR909: filter out offline cpus from perfctr registration loopFrank Ch. Eigler2010-03-171-0/+5
| | | | * runtime/perf.c (_stp_perf_init): If cpu_is_offline(), don't.
* Preserve perf initialization errorsJosh Stone2010-03-172-5/+10
| | | | | | | * runtime/perf.c (_stp_perf_init): Pass through ERR_PTRs, and create our own -ENOMEM for allocation failures. * tapset-perfmon.cxx (perf_derived_probe_group::emit_module_init): Check IS_ERR for registration status.
* Assign the perf probe_point on registration failureJosh Stone2010-03-171-0/+1
|
* AUTHORS bumpJosh Stone2010-03-172-0/+2
| | | | | * AUTHORS: Add Steve Dickson. * .mailmap: Squash William Cohen's twin Will.
* PR909: Emit proper decls for perf probesJosh Stone2010-03-171-24/+61
| | | | | | | | | | While I still have some TODOs, it's now in a usable state for others to start testing... * tapset-perfmon.cxx (perf_derived_probe_group::emit_module_decls): Implement the code to hook up real stap handlers. (perf_derived_probe_group::emit_module_init): Register for real. (perf_derived_probe_group::emit_module_exit): Unregister.
* Translate perf events names into kernel namesJosh Stone2010-03-171-4/+63
| | | | | | * tapset-perfmon.cxx (perf_builder::translate_event): New. The event mapping is hard-copied from the current state of perf. (perf_builder::build): Call it.
* Rename perf probe pointsJosh Stone2010-03-171-22/+36
| | | | | | | | | | | | These are now the available points: perf.event("NAME") perf.event("NAME").sample(NUM) * tapset-perfmon.cxx (perf_derived_probe::perf_derived_probe): Add fields for the event name, type, and config. Rewrite the probe_point to match the derived components (perf_builder::build): Parse the new fields. (register_tapset_perf): Adapt the match_nodes.
* Move the perf CONFIG checkJosh Stone2010-03-172-3/+6
| | | | | | | IMO, it's better to contain the CONFIG check inside the perf code. * tapsets.cxx (register_standard_tapsets): Always call perf register. * tapset-perfmon.cxx (register_tapset_perf): Do the CONFIG check here.
* Start of perf tapset parsingWill Cohen2010-03-175-1/+159
|
* Remove the old performance monitoring code.Will Cohen2010-03-177-427/+0
|
* Modify the systemtap perf sampling internal apiWill Cohen2010-03-172-20/+31
| | | | | | The only information available in the overflow interrupt is the event. Need to group other pieces of information needed by systemtap, so they can be found based on the the location of the event information.
* PR909: Runtime for Performance Event SamplingWill Cohen2010-03-172-108/+69
| | | | | | | | | | | | | | Implements a very simple sampling runtime to using the performance events kernel API. An perf event attribute describing the setup and a function to handle the counter overflows are passed into _stp_perf_init(). This function sets up the event on each processor. If successfully initialized, a pointer data structure is returned. When the sampling is no longer needed _stp_perf_del() is called to shutdown the sampling. * runtime/perf.h: Add declarations for data structures and functions * runtime/perf.c: Remove old perfmon runtime runtime. Add _stp_perf_init() and _stp_perf_del() functions.
* PR11364 sdt.h volatile for args isn't needed with gcc 4.5 or rh 4.4.3-10+Mark Wielaard2010-03-171-6/+4
|
* Fixed PR 11372 by removing (most) embedded-C from proc_mem.stp.David Smith2010-03-166-135/+353
| | | | | | | | | * tapset/proc_mem.stp: Tried to remove as much embedded-C as possible. * tapset/atomic.stp: New file. * testsuite/buildok/atomic.stp: New file. * testsuite/systemtap.base/atomic.exp: Ditto. * testsuite/systemtap.base/atomic_module.c: Ditto. * testsuite/systemtap.base/atomic_module.makefile: Ditto.
* Fixed regexp typo in stap_run_error.exp.David Smith2010-03-161-1/+1
| | | | * testsuite/lib/stap_run_error.exp: Fixed regexp typo.
* Move common code from {maxmemory.exp,overload.exp} into stap_run_error.exp.David Smith2010-03-164-113/+70
| | | | | | | | * testsuite/lib/stap_run_error.exp: New file. * testsuite/config/unix.exp: Loads stap_run_error.exp. * testsuite/systemtap.base/maxmemory.exp: Uses stap_run_error function instead of local code. * testsuite/systemtap.base/overload.exp: Ditto.
* PR10812: make build-id checking somewhat more robust w.r.t. bad addressesFrank Ch. Eigler2010-03-161-18/+36
| | | | | * runtime/sym.c (_stp_module_check): Use a failure-tolerant get_user() loop instead of memcmp() for buildid binary strings.
* PR10831: Remember derived "aliases" in the probe chainJosh Stone2010-03-164-67/+99
| | | | | | | | | | | | | SDT and label probes are not really final probe types themselves, but rather they get translated into some other final type. This patch preserves this relationship as if SDT and label probes were dynamically generated aliases. * elaborate.cxx (probe::create_alias): New, fake an alias_derived_probe. * tapsets.cxx (query_label): Append the label name as an alias. (sdt_query::handle_query_module): Let convert_location do the alias. (sdt_query::convert_location): Translate the location using an alias. * main.cxx (printscript): Elaborate the derivation debug dump.
* The rpc buildok test suite probe breaks with new kernelsSteve Dickson2010-03-161-2/+21
| | | | | | | | | | | With newer kernels the rpc_release_task() routine is not defined because it becomes inline since its only called once. Plus the task allocation routines have changed so the arguments no longer match up with previous routines. So this patch uses the kernel_v clauses to allow the original functionality with older kernels and not to break on new kernels. Signed-off-by: Steve Dickson <steved@redhat.com>
* Update the nfsd buildok test suite probesSteve Dickson2010-03-161-1/+0
| | | | | | | The __get_fh() is no longer exists due to the use of the @cast defines, so its removed Signed-off-by: Steve Dickson <steved@redhat.com>
* Backport recently added probes to RHEL5(U5)Steve Dickson2010-03-163-51/+79
| | | | | | | | Ensured the recent additions of v4 probes and supporting routines worked or at least don't break with RHEL5 U5 kernels (this time without kernel version checks). Signed-off-by: Steve Dickson <steved@redhat.com>
* Revert "Backport recently added probes to RHEL5(U5)"Steve Dickson2010-03-163-119/+51
| | | | | | | This reverts commit 35f22bd95cea2fb75573a27282f2a5edea84f2d7 beause kernel_v kernel checks should not be used. Signed-off-by: Steve Dickson <steved@redhat.com>
* Backport recently added probes to RHEL5(U5)Steve Dickson2010-03-163-51/+119
| | | | | | | Ensured the recent additions of v4 probes and supporting routines worked or at least don't break with RHEL5 U5 kernel. Signed-off-by: Steve Dickson <steved@redhat.com>