| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
| |
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...
|
|
|
|
|
|
| |
* testsuite/systemtap.examples/profiling/thread-times.stp: Prefer
perf.sw.cpu_clock to timer.profile. Prettify output by including
comm string.
|
| |
|
| |
|
|
|
|
|
| |
* tapset/syscalls2.stp (syscall.pipe[2][.return]): Merge into syscall.pipe
and syscall.pipe.return. Set name according to flags.
|
|
|
|
| |
See commit c0c1cc.
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
* tapset/aux_syscalls.stp (_sys_open_flag_str): If O_CLOEXEC is defined
recognize and return it.
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
| |
* runtime/stack.c (_stp_stack_print_tsk): Static.
(_stp_stack_snprint_tsk): Static.
* runtime/task_finder.c (__stp_utrace_task_finder_ops): Static.
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
| |
* tapset/perf.stp: Add 'em.
* man/tapset::perf.3stap: Document 'em a little.
* stapprobes.3stap.in: Fix .sample (not .samples) probe point typo.
|
|
|
|
|
| |
* tapset/nd_syscalls2.stp: Added support for 'sys_ia64_pipe' so that the
syscall.pipe probe works correctly under RHEL5.5.
|
|
|
|
|
| |
* tapset/syscalls2.stp: Added support for 'sys_ia64_pipe' so that the
syscall.pipe probe works correctly under RHEL5.5.
|
| |
|
|
|
|
|
| |
* elaborate.cxx (const_folder::visit_if_statement, visit_binary_expression,
visit_ternary_expression): Print constant value in -vvv diagnostics.
|
|
|
|
|
| |
* runtime/sym.c: Removed <asm/segment.h> include. That file doesn't exist
on ppc, and it appears to be empty everywhere else.
|
|
|
|
|
| |
* buildrun.cxx (output_cpu_khz): Replace with generalized
output_exportconf().
|
| |
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
* tapset-perfmon.cxx (perf_builder::build): Check for CONFIG_PERF_EVENTS here.
(register_tapset_perf): ... instead of here.
|
|
|
|
|
|
| |
* tapset/perf.stp: New file.
* tapset-perfmon.cxx (perf_derived_probe): Drop event_name field throughout.
Listen to type(N).config(M) instead.
|
|
|
|
| |
* runtime/perf.c (_stp_perf_init): If cpu_is_offline(), don't.
|
|
|
|
|
|
|
| |
* 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.
|
| |
|
|
|
|
|
| |
* AUTHORS: Add Steve Dickson.
* .mailmap: Squash William Cohen's twin Will.
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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.
|
| |
|
| |
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
| |
|
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
| |
* testsuite/lib/stap_run_error.exp: Fixed regexp typo.
|
|
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
| |
* runtime/sym.c (_stp_module_check): Use a failure-tolerant
get_user() loop instead of memcmp() for buildid binary strings.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
| |
This reverts commit 35f22bd95cea2fb75573a27282f2a5edea84f2d7
beause kernel_v kernel checks should not be used.
Signed-off-by: Steve Dickson <steved@redhat.com>
|
|
|
|
|
|
|
| |
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>
|