| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
|
|
| |
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>
|
|
|
|
|
|
| |
This commit causes the 2.6.33 probes to break
This reverts commit 3ca4e3f2f5a7a615d0aed00a242f4e30864deaa8.
|
|
|
|
|
|
|
| |
Ensured the recent additions of v4 probes and
supporting routines worked with RHEL5 U5 kernel.
Signed-off-by: Steve Dickson <steved@redhat.com>
|
|
|
|
|
|
|
|
| |
- Fixed a couple typos
- To allow better optimization, removed the used of
"convenience variables"
Signed-off-by: Steve Dickson <steved@redhat.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
To allow filtering by the client's IP address,
the addr_from_rqst_str() function was added which
extracts the IP address from incoming procedures
and converts them into a character string. Calls to
addr_from_rqst_str() were added to the top of each
probe so callers of the probes can use the IP addresses
as a filter.
Calls to __svc_fh() were also sprinkled were needed
so callers can also filter on file handles
Signed-off-by: Steve Dickson <steved@redhat.com>
|
|
|
|
|
|
|
|
|
|
| |
Added the ftype() function which converts file types
into character strings
Added calls nfsderror() to the return probes that will display
errors in character strings
Signed-off-by: Steve Dickson <steved@redhat.com>
|
|
|
|
|
|
|
| |
Either probes displayed anything that was useful, plus
there are other ways to display similar information.
Signed-off-by: Steve Dickson <steved@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Converted the nfsd.proc.remove probes to used
the @cast() mechanism.
Created the nfsd.proc4.remove probes
Signed-off-by: Steve Dickson <steved@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Converted the nfsd.proc.remove probes to used
the @cast() mechanism.
Created the nfsd.proc4.remove probes
Signed-off-by: Steve Dickson <steved@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Converted the nfsd.proc.create probes to used
the @cast() mechanism.
Created the nfsd.proc4.create probes
Signed-off-by: Steve Dickson <steved@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Converted the nfsd.proc.write probes to used
the @cast() mechanism.
Created the nfsd.proc4.write probes
Signed-off-by: Steve Dickson <steved@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Converted the nfsd.proc.read probes to used
the @cast() mechanism.
Created the nfsd.proc4.read probes
Signed-off-by: Steve Dickson <steved@redhat.com>
|
|
|
|
|
|
|
|
|
| |
Converted the nfsd.proc.lookup probes to used
the @cast() mechanism.
Created the nfsd.proc4.lookup probes
Signed-off-by: Steve Dickson <steved@redhat.com>
|
|
|
|
|
|
|
|
| |
The nfsderror() function takes the error numbers used
by the NFS server and converts them into a text representation
of the given error number.
Signed-off-by: Steve Dickson <steved@redhat.com>
|
|
|
|
|
|
| |
The kernel has min/max/clamp macros to make range comparisons easier.
Clamp is a newer invention, but we can define it for older kernels in
terms of min and max.
|
| |
|
|
|
|
|
|
|
|
|
| |
Some distributions might have backported the pipe fd leak patch and removed
the sys32_pipe kernel function even before 2.6.32. So make the probe alias
optional instead of relying on a version check.
* tapset/x86_64/syscalls.stp (syscall.pipe): Make alias optional.
(syscall.pipe.return): Likewise.
|
|
|
|
|
|
|
| |
Files changed:
tapset/ipmib.stp, tapset.tcpmib.stp, testsuite/systemtap.examples/network/tcpipstat.stp, testsuite/systemtap.examples/network/tcp_trace.stp
Signed-of-by: David Wilder <dwilder@us.ibm.com>
|
|
|
|
|
|
| |
We now implement __get_argv's string building in pure stap script.
Also, every argument is now quoted, which is different than before, but
it's much more robust about handling special characters.
|
|
|
|
| |
This reverts commit f75409719f120a3dbee66d761cf23a64092d1414.
|
| |
|
|
|
|
|
|
|
| |
That function was calling strlcpy as if the return value was the number
of bytes copied, but strlcpy actually returns the length of the input
string. We now use min() to handle the case when it's bigger than the
buffer length, and drop out of the loop when that happens.
|
|
|
|
|
|
| |
* tapset/syscalls2.stp (syscall.sigaction32): Added
kernel.function("compat_sys_sigaction").
(syscall.sigaction32.return): Ditto.
|
|
|
|
|
|
|
|
|
|
| |
* tapset/aux_syscalls.stp (_struct_old_sigaction32_u): New function.
* tapset/syscalls2.stp (syscall.sigaction32): Uses new
_struct_old_sigaction32() function to provide a human readable version
of the sigaction argument.
* testsuite/systemtap.syscall/test.tcl (run_one_test): Use additional C
flags when pre-processing test files to better determine which tests are
valid on which platforms.
|
|
|
|
|
|
|
|
| |
* tapset/syscalls2.stp (syscall.readv): Removed old ppc hack.
(syscall.writev): Ditto.
* tapset/nd_syscalls2.stp (nd_syscall.readv): Removed mention of old ppc
hack.
(nd_syscall.writev): Ditto.
|
|
|
|
|
| |
* tapset/syscalls2.stp (syscall.pwrite32): Remove extra 'buf_uaddr'
assignment.
|
|
|
|
| |
The function sys32_mmap2 is removed since 2.6.33.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Older kernels don't have all GFP constants defined, and the fallback
kernel function probe fallbacks don't have the same dwarf variable
names as the kernel trace point probes. So replace them with variables
that are available. bytes_alloc was sometimes a long and sometimes a
string, this caused scripts to fail depending on which alternative was
chosen for a particular kernel. So make it a long always.
This isn't a full solution since kmalloc is always inlined which makes
the kernel.function("kmalloc").return probe fail.
* tapset/memory.stp: Define __GFP_THISNODE, __GFP_RECLAIMABLE,
GFP_TEMPORARY, GFP_HIGHUSER_MOVABLE and GFP_THISNODE when not yet
defined.
(__vm.kmalloc.kp): Use $flags, not $gfp_flags. Set bytes_alloc equal
to bytes_req.
(__vm.kmem_cache_alloc.kp): Likewise. And use $cachep->buffer_size
for bytes_req.
(__vm.kmalloc_node.kp): Likewise.
(__vm.kmem_cache_alloc_node.kp): Likewise.
(__vm.kfree.kp): Use $ibjp for ptr, not $return.
(__vm.kmem_cache_free.kp): Likewise.
* testsuite/buildok/vm.tracepoints.stp: Move vm.kmalloc test to...
* testsuite/buildok/vm.tracepoints.kmalloc.stp: ... here.
|
|
|
|
|
| |
Older kernels didn't define these constants, which are only used in
the tapset/scsi.stp describe_device_state() function.
|
|
|
|
|
| |
Older kernels might not have these defines available, so define them
if not yet there.
|
| |
|
|
|
|
|
|
|
| |
* tapset/inet_sock.stp : Add prefix "inet_" to field.
* tapset/ip.stp : Ditto.
* tapset/tcp.stp : Ditto.
* tapset/tcpmib.stp : Ditto.
|
|
|
|
| |
that got left out in earlier commit 0c487e433fd6343e49b1e9dbc6492f38cfe26143.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* runtime/task_finder_vma.c (stap_remove_vma_map_info): Return negative
status on failure.
(stap_find_vma_map_info): Likewise.
(stap_find_vma_map_info_user): New function.
(stap_drop_vma_maps): New function.
* runtime/sym.h (addr): Renamed to static_addr, to store addresses for
sections which are always mapped at the same address.
(_stp_module_relocate): Add extra struct task_struct *tsk argument.
* runtime/sym.c (_stp_tf_exec_cb): New callback, calls stap_drop_vma_maps.
(_stp_tf_mmap_cb): Don't store address in module.section, but call
stap_add_vma_map_info() per tsk->group_leader for matched module.
Don't register empty/null modules.
(_stp_module_relocate): Take extra struct task_struct *tsk argument,
cache last tsk used. Only use section->static_addr for none dynamic
modules. Use stap_find_vma_map_info_user() to locate dynamic modules.
(_stp_mod_sec_lookup): Add extra argument unsigned long *rel_addr to
optionally store relative address when module/section found.
(_stp_kallsyms_lookup): Use _stp_mod_sec_lookup to find relative address.
(_stp_sym_init): Register _stp_tf_exec_cb in stap_task_finder_target.
Add error check to see if task finder could be initialized.
* dwflpp.cxx (emit_address): Pass NULL for kernel/modules and current for
user tasks to _stp_module_relocate.
* runtime/transport/symbols.c (_stp_do_relocation): Set new static_addr
_stp_section field.
* runtime/unwind.c (adjustStartLoc): Take new struct task_struct *tsk
argument and pass to stap_find_vma_map_info_user and _stp_module_relocate
to find adjusted addr.
(_stp_search_unwind_hdr): Pass through struct task_struct *tsk.
(unwind_frame): Likewise.
* tapset/context-symbols.stp (probemod): Add NULL to _stp_mod_sec_lookup
call to indicate we aren't interested in relative address.
* tapsets.cxx (dwarf_derived_probe_group::emit_module_init): Pass NULL to
_stp_module_relocate to indicate kernel/module address.
|
|
|
|
|
|
| |
The automatic documentation extraction doesn't allow blank lines between the
the comment and the actual code. Removed the problem blank line to allow
the information to be extracted for the SystemTap Tapset Reference Manual.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This only prints symbol+offset, or an address if the symbol isn't
known.
* runtime/runtime.h (SYM_VERBOSE_NO, SYM_VERBOSE_FULL,
SYM_VERBOSE_BRIEF): new constants
* runtime/stack.c (_stp_stack_print): support brief format
* runtime/sym.c (_stp_func_print): ditto
* tapset/ucontext-unwind.stp (print_ubacktrace_brief): new function
* testsuite/systemtap.context/fib.c: new test program
* testsuite/systemtap.context/fib.stp: new test
* testsuite/systemtap.context/fib.exp: new test
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
It's easily available in kretprobes and uretprobes and is consistent
with the rest of the program state.
* translate.cxx (emit_common_header) : add uretprobe_instance to context.
* tapsets.cxx (common_probe_entryfn_prologue): Initialize ri in
context to 0.
(dwarf_derived_probe_group::emit_module_decls): Change IP to return
address in kretprobes.
(uprobe_derived_probe_group::emit_module_decls): enter_uretprobe_probe:
set ri (uretprobe_instance) in context. Change IP to return
address in uretprobes. Don't emit uprobe include and #define
* runtime/runtime.h : Add includes and #define for uprobes.
* runtime/stack.c (_stp_stack_print, _stp_stack_snprint): Add extra
argument for uretprobe_instance.
* tapset/context-unwind.stp (print_backtrace, backtrace): Pass NULL
for uretprobe_instance to _stp_stack_print.
* tapset/ucontext-unwind.stp (print_ubacktrace, ubacktrace): pass
uretprobe_instance to _stp_stack_print
* testsuite/systemtap.context/uprobe_uaddr.exp : new test for uaddr in
function probes
* testsuite/systemtap.context/uprobe_uaddr.stp : new file
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* tapset/ioscheduler.stp : Make probe optional.
* tapset/irq.stp : Ditto.
* tapset/scheduler.stp : Ditto.
* tapset/tcpmib.stp : Ditto.
* tapset/linuxmib.stp : Switch variable by version.
* tapset/tty.stp : Ditto.
* testsuite/buildok/irq.stp : Make probe test optional.
* testsuite/buildok/tty.stp : Ditto.
* testsuite/systemtap.examples/network/netdev.stp : Ditto.
* testsuite/buildok/tcpmib-all-probes.stp : Add embedded functions.
|
|
|
|
|
|
|
|
|
|
| |
* runtime/copy.c: Can use ppc64's code.
* runtime/regs.h: Ditto.
* runtime/string.h: Ditto.
* tapset/context.stp: Ditto.
* tapset/errno.stp: Ditto.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
|
|
|
|
|
|
|
| |
* tapset/nd_syscalls.stp: Implement ppc32 variant of __is_user_regs.
* tapset/syscalls.stp: Ditto.
Signed-off-by: Anton Vorontsov <avorontsov@ru.mvista.com>
|
|
|
|
|
|
| |
* doc/SystemTap_Tapset_Reference/tapsets.tmpl: Add string.stp chapter.
* tapset/string.stp: Convert documentation to standard markup and add
documentation that was missing.
|
|
|
|
|
| |
* tapset/scheduler.stp (__scheduler.kthread_stop.kp): Change
priority to prio.
|
|
|
|
|
|
|
| |
* doc/SystemTap_Tapset_Reference/Makefile.am: Check for file existence
before doing compare.
* doc/SystemTap_Tapset_Reference/Makefile.in: Regenerated.
* tapset/ioblock.stp: Fixed comment so that docs can be built.
|
| |
|
|
|
|
|
|
| |
* tapset/ioblock.stp: Update comment and variables.
* testsuite/buildok/ioblock_test.stp: Add parameters.
* testsuite/buildok/ioscheduler.stp: Remove redundant parameters.
|
|
|
|
|
| |
Added testcases for these probes.
Also, modified comments in ioblock.stp so that tapset docmentation can be automatically generated for this tapset.
|