]> sourceware.org Git - systemtap.git/log
systemtap.git
14 years agoPR11474: Don't manually iterate over CUs for @cast
Josh Stone [Wed, 7 Apr 2010 21:33:24 +0000 (14:33 -0700)]
PR11474: Don't manually iterate over CUs for @cast

Since commit 063906a9, we can just let dwflpp look everywhere for the
type on our behalf.  Thanks dwflpp!

* tapsets.cxx (dwarf_cast_query::handle_query_module): Call dwflpp's
  declaration_resolve_other_cus, focus on the CU, and expand.
  (dwarf_cast_query::handle_query_cu): Remove.
  (dwarf_cast_query::cast_query_cu): Remove.

14 years agoPR 9871 (partial) fix. Removed embedded-C in ioblock.stp and ipmib.stp.
David Smith [Wed, 7 Apr 2010 21:12:10 +0000 (16:12 -0500)]
PR 9871 (partial) fix.  Removed embedded-C in ioblock.stp and ipmib.stp.

* tapset/ioblock.stp(__bio_start_sect): Converted from embedded-C to
  script language.
* tapset/ipmib.stp: Replaced all _tcphdr_get_dport()/_tcphdr_get_sport()
  calls with _tcp_skb_dport()/_tcp_skb_sport() calls.  Removed embedded-C
  functions _tcphdr_get_dport()/_tcphdr_get_sport().
  (ipmib.OutRequests): Fixed for RHEL4.
  (_trn_unspec): New function.
  (_input_route_type): Originally called
  __input_route_type_old()/__input_route_type_new(), which were embedded-C
  functions.  Now just does everything in script language.
  (__input_route_type_old): Deleted.
  (__input_route_type_new): Ditto.
  (_output_route_type): Originally called
  __output_route_type_old()/__output_route_type_new(), which were
  embedded-C functions.  Now just does everything in script language.
  (__output_route_type_old): Deleted.
  (__output_route_type_new): Ditto.

14 years agoAdded kernel_pointer()/set_kernel_pointer() tapset functions.
David Smith [Wed, 7 Apr 2010 21:02:24 +0000 (16:02 -0500)]
Added kernel_pointer()/set_kernel_pointer() tapset functions.

* tapset/conversions.stp (kernel_pointer): New function.
* tapset/conversions-guru.stp (set_kernel_pointer): Ditto.
* testsuite/buildok/conversions-embedded.stp: Added kernel_pointer() test.
* testsuite/buildok/conversions.stp: Ditto.
* testsuite/buildok/set_kernel.stp: Added set_kernel_pointer() test.
* tapset/nfs.stp: Removed __d_loff_t() function.  Uses new
  kernel_pointer() function instead.
* testsuite/buildok/nfs-embedded.stp: Removed __d_loff_t() test.

14 years agoPR 9871 (partial) fix. Removed all embedded-C in rpc.stp.
David Smith [Wed, 7 Apr 2010 14:42:44 +0000 (09:42 -0500)]
PR 9871 (partial) fix.  Removed all embedded-C in rpc.stp.

* tapset/rpc.stp: Replaced all embedded-C functions with script language.

14 years agoAdded atomic_read() embedded-C function and tests.
David Smith [Tue, 6 Apr 2010 18:17:15 +0000 (13:17 -0500)]
Added atomic_read() embedded-C function and tests.

* tapset/atomic.stp: Added atomic_read().
* testsuite/buildok/atomic.stp: Added atomic_read() compile test.
* testsuite/systemtap.base/atomic.exp: Added atomic_read() tests.
* testsuite/lib/stap_run_error.exp (stap_run_error): Logs stap command and
  tries to ensure inferior process is killed.

14 years agoPR 9871 (partial) fix. Removed some embedded-C in scsi.stp.
David Smith [Tue, 6 Apr 2010 16:36:29 +0000 (11:36 -0500)]
PR 9871 (partial) fix.  Removed some embedded-C in scsi.stp.

* tapset/scsi.stp: Added script function timer_pending().  Rewrote
  embedded-C function scsi_timer_pending() in script language.

14 years agoPR 9871 (partial) fix. Removed more embedded-C in nfs_proc.stp and nfs.stp.
David Smith [Tue, 6 Apr 2010 15:04:30 +0000 (10:04 -0500)]
PR 9871 (partial) fix.  Removed more embedded-C in nfs_proc.stp and nfs.stp.

* tapset/nfs_proc.stp: Added script functions NFS_I(), NFS_FH(),
  NFS_SERVER, NFS_PROTO.  Rewrote embedded-C functions __nfsv4_bitmask()
  and __getfh_inode() in script language.
* tapset/nfs.stp: Rewrote embedded-C functions __nfsi_cache_valid(),
  __nfsi_rcache_time(), __nfsi_attr_time(), __nfsi_ndirty(),
  __nfs_server_rsize(), __nfs_version(), __nfs_server_wsize(),
  __nfs_rpages(), and __nfs_wpages() in script language.

14 years agoPR 9871 (partial) fix. Removed more embedded-C in nfs_proc.stp.
David Smith [Mon, 5 Apr 2010 19:54:45 +0000 (14:54 -0500)]
PR 9871 (partial) fix.  Removed more embedded-C in nfs_proc.stp.

* tapset/nfs_proc.stp: Rewrote embedded-C functions stap_NFS_CLIENT(),
  get_ip_from_client(), get_prot_from_client(), get_ip(), and get_prot()
  in script language.  Simplified __i2n_ip_proto() by just calling
  get_ip_from_client() or get_prot_from_client().

14 years agoPR 9871 (partial) fix. Removed some embedded-C in nfs_proc.stp.
David Smith [Mon, 5 Apr 2010 17:29:28 +0000 (12:29 -0500)]
PR 9871 (partial) fix.  Removed some embedded-C in nfs_proc.stp.

* tapset/nfs_proc.stp: To avoid a deref hazard, rewrote embedded-C
  __i2n_ip_proto() in script language.

14 years agoFixed BZ 557165 by adding better error handling.
David Smith [Mon, 5 Apr 2010 15:55:57 +0000 (10:55 -0500)]
Fixed BZ 557165 by adding better error handling.

* runtime/staprun/mainloop.c (stp_main_loop): When a read error happens,
  quit instead of retrying (which can end up in an infinite loop).

14 years agodocumentation: don't panic
Frank Ch. Eigler [Fri, 2 Apr 2010 01:12:25 +0000 (21:12 -0400)]
documentation: don't panic

14 years agoAdd NEWS for set_kernel_*
Josh Stone [Fri, 2 Apr 2010 00:38:31 +0000 (17:38 -0700)]
Add NEWS for set_kernel_*

14 years agoAdd set_kernel_* bad-address tests
Josh Stone [Fri, 2 Apr 2010 00:31:32 +0000 (17:31 -0700)]
Add set_kernel_* bad-address tests

* testsuite/systemtap.base/set_kernel.stp: try/catch addresses of -1.

14 years agoTest that all of the set_kernel_* functions work
Josh Stone [Fri, 2 Apr 2010 00:16:27 +0000 (17:16 -0700)]
Test that all of the set_kernel_* functions work

* testsuite/buildok/set_kernel.stp: Test that all can build.
* testsuite/systemtap.base/set_kernel.stp: Test that values are all set.

14 years agoPR9958: Test that the guru notation is working
Josh Stone [Thu, 1 Apr 2010 23:30:16 +0000 (16:30 -0700)]
PR9958: Test that the guru notation is working

* testsuite/semko/gurufunc.stp: Test rejection without -g.
* testsuite/semok/gurufunc.stp: Test acceptance with -g.

14 years agoAdd kernel-writing functions for guru only
Josh Stone [Thu, 1 Apr 2010 22:18:01 +0000 (15:18 -0700)]
Add kernel-writing functions for guru only

* runtime/loc2c-runtime.h (store_deref_string): New.
* tapset/conversions-guru.stp (set_kernel_*): New guru functions.

14 years agoPR9958: Let embedded-C assert guru mode
Josh Stone [Thu, 1 Apr 2010 22:15:45 +0000 (15:15 -0700)]
PR9958: Let embedded-C assert guru mode

* staptree.cxx (varuse_collecting_visitor::visit_embeddedcode): Don't
  allow calling /* guru */ functions unless guru mode is active.

14 years agoMake sure that the testsuite can find its server
Josh Stone [Wed, 31 Mar 2010 22:53:25 +0000 (15:53 -0700)]
Make sure that the testsuite can find its server

* testsuite/lib/systemtap.exp (setup_server): Use stap-find-servers to
  check that the firewall is letting us through to the server.

14 years agoUse a different PATH approach for pfiles
Josh Stone [Wed, 31 Mar 2010 22:29:08 +0000 (15:29 -0700)]
Use a different PATH approach for pfiles

    //bin/true && exec stap -g $0 ${1+"$@"}

This keeps it as an entirely valid stap script, so manual stap
invocation still works (as in pfiles.meta).

14 years agoUse a wider cache for simple function lookups
Josh Stone [Tue, 30 Mar 2010 21:54:39 +0000 (14:54 -0700)]
Use a wider cache for simple function lookups

When we have many individual function lookups, like the nearly 1000 with
syscall.*, each one will iterate every CU in the module (M) and then do a
cache lookup in N entries.  That's a thousand MlogN lookups.

We can instead keep the functions in a module-wide map, and then the
complexity is just a thousand logMN lookups.

Before:
  $ ./run-stap -l 'syscall.**' --vp 01 >/dev/null
  Pass 2: analyzed script: 793 probe(s), 11 function(s), 20 embed(s),
  0 global(s) using 245872virt/147304res/78272shr kb,
  in 1390usr/60sys/1448real ms.

After:
  $ ./run-stap -l 'syscall.**' --vp 01 >/dev/null
  Pass 2: analyzed script: 793 probe(s), 11 function(s), 20 embed(s),
  0 global(s) using 246228virt/147616res/78276shr kb,
  in 720usr/60sys/782real ms.

* dwflpp.cxx (dwflpp::iterate_single_function): Do a simple function
  lookup based on a module-wide cache.
  (dwflpp::mod_function_caching_callback): Helper for above.
* tapsets.cxx (dwarf_query::query_module_functions): Query a single
  function from the module-wide cache.
  (dwarf_query::query_module_dwarf): Use above for simple cases.

14 years agoRemove unused code from iterate_over_functions
Josh Stone [Tue, 30 Mar 2010 01:24:04 +0000 (18:24 -0700)]
Remove unused code from iterate_over_functions

* dwflpp.cxx (dwflpp::iterate_over_functions): No caller is using
  has_statement_num anymore (since 6b517475), so kill it.
* tapsets.cxx (query_cu): Let the default call rule the day.

14 years agoPR 9871 (partial) fix. Removed some embedded-C in ioblock.stp/vfs.stp.
David Smith [Tue, 30 Mar 2010 20:53:51 +0000 (15:53 -0500)]
PR 9871 (partial) fix.  Removed some embedded-C in ioblock.stp/vfs.stp.

* tapset/dev.stp: Added a bdevname() script function.
* tapset/ioblock.stp: Rewrote the embedded-C devname function to just use
  bdevname() script function.
* tapset/vfs.stp: Removed embedded-C __bdevname() C function.  Calls
  bdevname() script function instead.
* tapset/string.stp: Added isdigit() function.

14 years agotestsuite: convert pfiles.stp to $PATH-based stap invocation form
Frank Ch. Eigler [Tue, 30 Mar 2010 16:50:55 +0000 (12:50 -0400)]
testsuite: convert pfiles.stp to $PATH-based stap invocation form

14 years agotestsuite: use #! /usr/bin/env stap instead of /usr/bin/stap
Frank Ch. Eigler [Tue, 30 Mar 2010 13:59:10 +0000 (09:59 -0400)]
testsuite: use #! /usr/bin/env stap instead of /usr/bin/stap

14 years agoAdd documentation about Flight Recorder Mode to Beginner's Guide
William Cohen [Tue, 30 Mar 2010 16:01:18 +0000 (12:01 -0400)]
Add documentation about Flight Recorder Mode to Beginner's Guide

14 years agoPR 11338 (partial): Used @defined in ioscheduler.stp and fixed deref hazards.
David Smith [Mon, 29 Mar 2010 21:11:28 +0000 (16:11 -0500)]
PR 11338 (partial): Used @defined in ioscheduler.stp and fixed deref hazards.

* tapset/ioscheduler.stp (ioschedule.elv_next_request): Used '@defined'
  instead of a kernel version check.
  (ioscheduler.elv_next_request.return): Ditto.
  (ioscheduler.elv_add_request.kp): Ditto.
  (ioscheduler.elv_completed_request): Ditto.
  (disk_major_from_request): Fixed deref hazards.
  (disk_minor_from_request): Ditto.

14 years agoPR4105 Support up to 9 (up from 5) array indices documentation.
William Cohen [Mon, 29 Mar 2010 15:25:04 +0000 (11:25 -0400)]
PR4105 Support up to 9 (up from 5) array indices documentation.

14 years agoAdd kprobe user probe semaphore handling.
Stan Cox [Fri, 26 Mar 2010 21:14:32 +0000 (17:14 -0400)]
Add kprobe user probe semaphore handling.

Adds stap_kprobe_process_found and stap_kprobe_mmap_found handlers
and then the task_finder uses those to set the semaphore values.
The probe adds user_path and user_lib which are used by the
task_finder to decide what object to sniff.

* sdt.h (STAP_SEMAPHORE): Also define for kprobes.
* tapsets.cxx (dwarf_derived_probe): Add user_path and user_lib.
(dwarf_derived_probe::join_group): Enable task finder for kprobes.
(dwarf_derived_probe::dwarf_derived_probe): Set user_path and
user_lib.
(dwarf_derived_probe_group::emit_module_decls): Emit
stap_kprobe_mmap_found, sdt_sem_offset, sdt_sem_address, pathname,
and finder declarations.  Emit stap_kprobe_process_found and
stap_kprobe_mmap_found.
(dwarf_derived_probe_group::emit_module_init): Setup task finder.
(sdt_query::convert_location): Remove TOK_LIBRARY token.
(dwarf_builder::build): Set user_path and user_lib.
(kprobe_derived_probe): Add path and library.
(kprobe_builder::build): Get process and library params

14 years agoPR 11338 (partial): Used '@defined()' in inet_sock tapsets.
David Smith [Fri, 26 Mar 2010 19:17:48 +0000 (14:17 -0500)]
PR 11338 (partial): Used '@defined()' in inet_sock tapsets.

* tapset/inet_sock.stp (inet_get_local_port): Used '@defined' instead of a
  kernel version check.  Added RHEL4 support.
  (inet_get_ip_source): Now calls __ip_sock_daddr() to get daddr.

14 years agoPR 9871/11338 fix in tcpmib.stp by removing embedded-C and using @defined.
David Smith [Fri, 26 Mar 2010 18:24:38 +0000 (13:24 -0500)]
PR 9871/11338 fix in tcpmib.stp by removing embedded-C and using @defined.

* tapset/tcpmib.stp (tcpmib_get_state): Changed from embedded-C to script
  code.
  (tcpmib_local_addr): Instead of an embedded-C function, now calls
  function from ip.stp/tcp.stp.
  (tcpmib_remote_addr): Ditto.
  (tcpmib_local_port): Ditto.
  (tcpmib_remote_port): Ditto.
  (tcpmib.OutRsts.A): Used '@defined' instead of a kernel version check.
* tapset/ip.stp (__ip_sock_saddr): Used '@defined' instead of a kernel
  version check.  Added RHEL4 support.
  (__ip_sock_daddr): Ditto.
* tapset/tcp.stp (__tcp_sock_dport): Ditto.
  (__tcp_sock_sport): Ditto.

14 years agoRemove probe_point code duplication
Josh Stone [Fri, 26 Mar 2010 02:35:53 +0000 (19:35 -0700)]
Remove probe_point code duplication

* staptree.cxx (probe_point::str): Don't duplicate ::print -- reuse it.

14 years agoPrint probepoint addresses in hex
Josh Stone [Fri, 26 Mar 2010 02:32:46 +0000 (19:32 -0700)]
Print probepoint addresses in hex

* staptree.h (literal_number): Add a bool "print_hex".
* staptree.cxx (literal_number::print): Switch to hex if needed.
* tapsets.cxx (dwarf_derived_probe::dwarf_derived_probe): Write the
  statement number component with a hex literal_number.
  (sdt_query::convert_location): Ditto
  (kprobe_derived_probe::kprobe_derived_probe): Ditto.
  (hwbkpt_derived_probe::hwbkpt_derived_probe): Ditto for data addr.

14 years agoMention ** in NEWS and stapprobes.3stap
Josh Stone [Fri, 26 Mar 2010 01:50:16 +0000 (18:50 -0700)]
Mention ** in NEWS and stapprobes.3stap

14 years agoPR11399: Allow '**' to match tapsets across '.'
Josh Stone [Thu, 25 Mar 2010 21:31:45 +0000 (14:31 -0700)]
PR11399: Allow '**' to match tapsets across '.'

Normally wildcards are constrained to matching a single probe point
component between the '.' separator.  This patch enables '**' to match
across the separator.

Probe point parameters are still absolute separators though, as there's
not really a meaningful semantic we could use to cross them with '**'.

* elaborate.cxx (isdoubleglob): Check for '**'.
  (match_node::find_and_build): Recurse '**' to cross separators.
* testsuite/semok/doubleglob.stp: New test of broad wildcards.
* testsuite/semko/doubleglob.stp: New negative test.

14 years agoPR11427: port sdt.h to sparc
Tom Callaway [Wed, 24 Mar 2010 16:06:22 +0000 (12:06 -0400)]
PR11427: port sdt.h to sparc

* includes/sys/sdt.h (STAP_NOP): Add __sparc__ to list of "nop" users.

14 years agoSmall cleanup of context.exp.
David Smith [Wed, 24 Mar 2010 16:04:16 +0000 (11:04 -0500)]
Small cleanup of context.exp.

* testsuite/systemtap.context/context.exp: Used "make -C $build_dir" to
  avoid using 'cd'.  Added error handling.

14 years agoImproved atomic.exp testcase by removing the need for an external module.
David Smith [Wed, 24 Mar 2010 15:57:01 +0000 (10:57 -0500)]
Improved atomic.exp testcase by removing the need for an external module.

* testsuite/systemtap.base/atomic.exp: Removed the need for the external
  module by putting the atomic_long_t inside the stap module.
* testsuite/systemtap.base/atomic_module.c: Removed.
* testsuite/systemtap.base/atomic_module.makefile: Ditto.
* testsuite/lib/stap_run_error.exp (stap_run_error): Better error handling.

14 years agoFix pipe syscall name in return probe.
Mark Wielaard [Wed, 24 Mar 2010 08:24:06 +0000 (09:24 +0100)]
Fix pipe syscall name in return probe.

* tapset/syscalls2.stp (syscall.pipe.return): If @defined($flags) then use
  it to determine correct name.

14 years agoRemoved unneeded convenience variables in syscall.pipe.return.
David Smith [Tue, 23 Mar 2010 22:34:33 +0000 (17:34 -0500)]
Removed unneeded convenience variables in syscall.pipe.return.

* tapset/syscalls2.stp: Removed unneeded 'flags' and 'flag_str'
  convenience variables in syscall.pipe.return probe.

14 years agoFixed PR 11425 by fixing probefunc() when used with kprobe.function.
David Smith [Tue, 23 Mar 2010 21:37:59 +0000 (16:37 -0500)]
Fixed PR 11425 by fixing probefunc() when used with kprobe.function.

* tapset/context-symbols.stp: Fixed probefunc() by looking for '"' as the
  end of the function name along with '@'.

14 years agoPartial fix for pr 11414. Fixed several 32-bit probe points.
David Smith [Tue, 23 Mar 2010 19:40:43 +0000 (14:40 -0500)]
Partial fix for pr 11414.  Fixed several 32-bit probe points.

* tapset/nd_syscalls2.stp: Updated/fixed rt_sigaction32, compat_select,
  and sigaction32 probes.

14 years agoPR10913: Fix error messages when unable to close certain tokens
Charley Wang [Tue, 23 Mar 2010 15:55:56 +0000 (11:55 -0400)]
PR10913: Fix error messages when unable to close certain tokens

14 years agoreleng: bump to version 1.2 release-1.2
Frank Ch. Eigler [Mon, 22 Mar 2010 21:35:02 +0000 (17:35 -0400)]
releng: bump to version 1.2

14 years agoFixed nd_syscalls 'sys32_mmap2' problem on newer kernels.
David Smith [Mon, 22 Mar 2010 21:49:03 +0000 (16:49 -0500)]
Fixed nd_syscalls 'sys32_mmap2' problem on newer kernels.

* tapset/x86_64/nd_syscalls.stp: Made 'sys32_mmap2' probe point optional,
  since it doesn't exist on newer kernels.

14 years agoFixed cut-and-paste error for sys_ia64_pipe.
David Smith [Mon, 22 Mar 2010 21:37:15 +0000 (16:37 -0500)]
Fixed cut-and-paste error for sys_ia64_pipe.

* tapset/nd_syscalls2.stp: Removed '.call' from
  'kprobe.function("sys_ia64_pipe")'.

14 years agoIfdef out atomic_long_read() body on older kernels where the type doesn't exist.
David Smith [Mon, 22 Mar 2010 18:41:02 +0000 (13:41 -0500)]
Ifdef out atomic_long_read() body on older kernels where the type doesn't exist.

* tapset/atomic.stp: If we don't have ATOMIC_LOGN_INIT(), ifdef out the
  function.

14 years agoPartial fix for pr 11388 by adding 'sys_mmap_pgoff' support.
David Smith [Mon, 22 Mar 2010 18:14:18 +0000 (13:14 -0500)]
Partial fix for pr 11388 by adding 'sys_mmap_pgoff' support.

* tapset/i386/nd_syscalls.stp: Add support for 'sys_mmap_pgoff' (which is
  what the mmap syscall uses).
* tapset/x86_64/nd_syscalls.stp: Ditto.

14 years agoPartial fix for pr 11388 by adding 'sys_mmap_pgoff' support.
David Smith [Mon, 22 Mar 2010 15:43:20 +0000 (10:43 -0500)]
Partial fix for pr 11388 by adding 'sys_mmap_pgoff' support.

* tapset/i386/syscalls.stp: Add support for 'sys_mmap_pgoff' (which is
  what the mmap syscall uses).
* tapset/x86_64/syscalls.stp: Ditto.

14 years agoFix syscall tapset on older kernels (RHEL4).
David Smith [Mon, 22 Mar 2010 15:34:34 +0000 (10:34 -0500)]
Fix syscall tapset on older kernels (RHEL4).

* tapset/aux_syscalls.stp: On systems where inotify isn't supported, don't
  include inotify.h.

14 years agoImprove handling of O_NONBLOCK and O_CLOEXEC.
David Smith [Mon, 22 Mar 2010 15:05:14 +0000 (10:05 -0500)]
Improve handling of O_NONBLOCK and O_CLOEXEC.

* tapset/aux_syscalls.stp (_sys_pipe2_flag_str): Separate O_NONBLOCK and
  O_CLOEXEC support.
  (_sys_open_flag_str): Added O_CLOEXEC support.

14 years agoSupport signalfd4 in syscalls2.stp tapset.
Mark Wielaard [Sun, 21 Mar 2010 16:23:17 +0000 (17:23 +0100)]
Support signalfd4 in syscalls2.stp tapset.

* tapset/aux_syscalls.stp (_signalfd4_flags_str): New utility function.
* tapset/syscalls2.stp (syscall.signalfd[.return]): Handle signalfd4 variant
  when available.
* testsuite/systemtap.syscall/signalfd.c: New test.

14 years agoAdd inotify_init1() and inotify_add_watch() mask string support.
Mark Wielaard [Sun, 21 Mar 2010 08:55:10 +0000 (09:55 +0100)]
Add inotify_init1() and inotify_add_watch() mask string support.

* tapset/aux_syscalls.stp (_inotify_watch_mask_str): New helper function.
  (_inotify_init1_flag_str): Likewise.
* tapset/syscalls.stp (inotify_add_watch): Stringify watch mask.
  (syscall.inotify_init[.return]): Add inotify_init1() support.
* testsuite/systemtap.syscall/inotify.c: New test.

14 years agoAdd support for eventfd2 to syscall.stp tapset.
Mark Wielaard [Sat, 20 Mar 2010 21:43:51 +0000 (22:43 +0100)]
Add support for eventfd2 to syscall.stp tapset.

* tapset/aux_syscalls.stp (_eventfd2_flag_str): New utility function.
* tapset/syscalls.stp (syscall.eventfd[.return]): Add alternatives to
  handle eventfd2.
* testsuite/systemtap.syscall/eventfd.c: New test.

14 years agoExplicitly test first kernel version in utimensat syscall test.
Mark Wielaard [Sat, 20 Mar 2010 19:53:18 +0000 (20:53 +0100)]
Explicitly test first kernel version in utimensat syscall test.

* testsuite/systemtap.syscall/futimes.c: utimensat was only available since
  2.6.22, but libc headers might already define __NR_utimensat.

14 years agoMatch syscall.pipe32 with regular syscall.pipe[2] output.
Mark Wielaard [Sat, 20 Mar 2010 19:20:39 +0000 (20:20 +0100)]
Match syscall.pipe32 with regular syscall.pipe[2] output.

* tapset/x86_64/syscalls.stp (syscall.pipe32[.return]): Define same
  variables and match argstr with regular syscall.pipe.

14 years agoAdd support for dup3 to syscall.stp tapset.
Mark Wielaard [Sat, 20 Mar 2010 18:58:29 +0000 (19:58 +0100)]
Add support for dup3 to syscall.stp tapset.

* tapset/aux_syscalls.stp (_dup3_flag_str): New helper function.
* tapset/syscalls.stp (syscall.dup2): Add alternatives to handle dup3 also.
* testsuite/systemtap.syscall/dup.c: New testcase.

14 years agoAdd F_DUPFD_CLOEXEC to _fcntl_cmd_str().
Mark Wielaard [Sat, 20 Mar 2010 13:59:11 +0000 (14:59 +0100)]
Add F_DUPFD_CLOEXEC to _fcntl_cmd_str().

14 years agoAdd MSG_CMSG_CLOEXEC to _recvflags_str.
Mark Wielaard [Sat, 20 Mar 2010 13:49:05 +0000 (14:49 +0100)]
Add MSG_CMSG_CLOEXEC to _recvflags_str.

14 years agoSupport epoll_create1 syscall.
Mark Wielaard [Fri, 19 Mar 2010 22:19:19 +0000 (23:19 +0100)]
Support epoll_create1 syscall.

* tapset/aux_syscalls.stp (_epoll_create1_flag_str): New helper function.
* tapset/syscalls.stp (syscall.epoll_create[.return]): Match epoll_creat1
  if available.

14 years agorobustness: add special_mapping_* to blacklist for 2.6.32ish
Frank Ch. Eigler [Sat, 20 Mar 2010 23:25:27 +0000 (19:25 -0400)]
robustness: add special_mapping_* to blacklist for 2.6.32ish

* dwflpp.cxx (build_blacklist): Add special_mapping_*

14 years agoPR11405: Warn and continue for parsing errors in tapsets
Josh Stone [Sat, 20 Mar 2010 19:29:37 +0000 (12:29 -0700)]
PR11405: Warn and continue for parsing errors in tapsets

When we start seeing tapsets provided by third parties, any errors in
their files should not be fatal to us.  Since we don't really know which
tapsets are our own, this leniency applies to all.

* main.cxx (main): Warn on tapset errors, but continue unless -W.
* testsuite/parseko/bad_tapset/foo.stp: New bogus tapset.
* testsuite/parseko/bad_tapset.stp: Check that "-W -I bad_tapset" fails.
* testsuite/parseok/bad_tapset.stp: Check that "-I bad_tapset" succeeds.
* testsuite/parseok/all_tapsets.stp: Check -W with the default tapsets.

14 years agoBump the sample indexes
Josh Stone [Sat, 20 Mar 2010 02:00:49 +0000 (19:00 -0700)]
Bump the sample indexes

14 years agoAdd ia64 pipe result support. Relax pipe syscall test a little.
Mark Wielaard [Fri, 19 Mar 2010 19:57:01 +0000 (20:57 +0100)]
Add ia64 pipe result support. Relax pipe syscall test a little.

* 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.

14 years agoLet try_block contain any statement
Josh Stone [Fri, 19 Mar 2010 19:04:39 +0000 (12:04 -0700)]
Let try_block contain any statement

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...

14 years agoPR909: add a baby test case
Frank Ch. Eigler [Fri, 19 Mar 2010 18:58:16 +0000 (14:58 -0400)]
PR909: add a baby test case

* testsuite/systemtap.examples/profiling/thread-times.stp: Prefer
  perf.sw.cpu_clock to timer.profile.  Prettify output by including
  comm string.

14 years agotapset: port addr_to_node() to rhel4
Frank Ch. Eigler [Fri, 19 Mar 2010 18:57:45 +0000 (14:57 -0400)]
tapset: port addr_to_node() to rhel4

14 years agoAdd testcase for syscall.pipe.
Mark Wielaard [Fri, 19 Mar 2010 15:55:10 +0000 (16:55 +0100)]
Add testcase for syscall.pipe.

14 years agoMerge syscall.pipe and syscall.pipe2 to get around "nesting".
Mark Wielaard [Fri, 19 Mar 2010 15:53:19 +0000 (16:53 +0100)]
Merge syscall.pipe and syscall.pipe2 to get around "nesting".

* tapset/syscalls2.stp (syscall.pipe[2][.return]): Merge into syscall.pipe
  and syscall.pipe.return. Set name according to flags.

14 years agoReindent syscall2.stp pipe[2][.return] to follow unify formatting rules.
Mark Wielaard [Fri, 19 Mar 2010 13:35:15 +0000 (14:35 +0100)]
Reindent syscall2.stp pipe[2][.return] to follow unify formatting rules.

See commit c0c1cc.

14 years agoPR11402 Support pipe2 syscall.
Mark Wielaard [Fri, 19 Mar 2010 12:00:50 +0000 (13:00 +0100)]
PR11402 Support pipe2 syscall.

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.

14 years agoRecognize O_CLOEXEC in _sys_open_flag_str.
Mark Wielaard [Fri, 19 Mar 2010 11:30:44 +0000 (12:30 +0100)]
Recognize O_CLOEXEC in _sys_open_flag_str.

* tapset/aux_syscalls.stp (_sys_open_flag_str): If O_CLOEXEC is defined
  recognize and return it.

14 years agoMake pipe file descriptors available in syscall.pipe[.return].
Mark Wielaard [Fri, 19 Mar 2010 10:55:57 +0000 (11:55 +0100)]
Make pipe file descriptors available in syscall.pipe[.return].

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.

14 years agoUse @defined() in syscall.pipe to select whether fildes_uaddr is available.
Mark Wielaard [Fri, 19 Mar 2010 10:32:22 +0000 (11:32 +0100)]
Use @defined() in syscall.pipe to select whether fildes_uaddr is available.

* 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.

14 years agoSprinkle static to prevent unnecessary inclusion
Josh Stone [Fri, 19 Mar 2010 01:59:57 +0000 (18:59 -0700)]
Sprinkle static to prevent unnecessary inclusion

* runtime/stack.c (_stp_stack_print_tsk): Static.
  (_stp_stack_snprint_tsk): Static.
* runtime/task_finder.c (__stp_utrace_task_finder_ops): Static.

14 years agoSimplify the perf entry handlers
Josh Stone [Fri, 19 Mar 2010 01:57:10 +0000 (18:57 -0700)]
Simplify the perf entry handlers

* 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.

14 years agoCreate one perf structure to rule them all
Josh Stone [Fri, 19 Mar 2010 01:54:18 +0000 (18:54 -0700)]
Create one perf structure to rule them all

* 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.

14 years agoPR11346: Move the skip-badvars logic into const-folding
Josh Stone [Thu, 18 Mar 2010 22:39:42 +0000 (15:39 -0700)]
PR11346: Move the skip-badvars logic into const-folding

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.

14 years agotweak perf.* probe blurbage re. constrained hw pcl
Frank Ch. Eigler [Thu, 18 Mar 2010 22:17:16 +0000 (18:17 -0400)]
tweak perf.* probe blurbage re. constrained hw pcl

14 years agoPR909: add perf.hw_cache.* aliases
Frank Ch. Eigler [Thu, 18 Mar 2010 21:54:29 +0000 (17:54 -0400)]
PR909: add perf.hw_cache.* aliases

* tapset/perf.stp: Add 'em.
* man/tapset::perf.3stap: Document 'em a little.
* stapprobes.3stap.in: Fix .sample (not .samples) probe point typo.

14 years agoFixed BZ 568032 by adding support for sys_ia64_pipe.
David Smith [Thu, 18 Mar 2010 21:26:14 +0000 (16:26 -0500)]
Fixed BZ 568032 by adding support for sys_ia64_pipe.

* tapset/nd_syscalls2.stp:  Added support for 'sys_ia64_pipe' so that the
  syscall.pipe probe works correctly under RHEL5.5.

14 years agoFixed BZ 568032 by adding support for sys_ia64_pipe.
David Smith [Thu, 18 Mar 2010 21:21:15 +0000 (16:21 -0500)]
Fixed BZ 568032 by adding support for sys_ia64_pipe.

* tapset/syscalls2.stp: Added support for 'sys_ia64_pipe' so that the
  syscall.pipe probe works correctly under RHEL5.5.

14 years agoPR909: baby documentation for perf.* probes
Frank Ch. Eigler [Thu, 18 Mar 2010 21:03:48 +0000 (17:03 -0400)]
PR909: baby documentation for perf.* probes

14 years agooptimizer diagnostics: identify taken branch of optimizations
Frank Ch. Eigler [Thu, 18 Mar 2010 20:39:32 +0000 (16:39 -0400)]
optimizer diagnostics: identify taken branch of optimizations

* elaborate.cxx (const_folder::visit_if_statement, visit_binary_expression,
  visit_ternary_expression): Print constant value in -vvv diagnostics.

14 years agoRemove <asm/segment.h> inclusion to fix ppc build.
David Smith [Thu, 18 Mar 2010 15:37:51 +0000 (10:37 -0500)]
Remove <asm/segment.h> inclusion to fix ppc build.

* runtime/sym.c: Removed <asm/segment.h> include.  That file doesn't exist
  on ppc, and it appears to be empty everywhere else.

14 years agoautoconf: standardize CPU_KHZ based on session kernel_exports
Frank Ch. Eigler [Thu, 18 Mar 2010 14:18:47 +0000 (10:18 -0400)]
autoconf: standardize CPU_KHZ based on session kernel_exports

* buildrun.cxx (output_cpu_khz): Replace with generalized
  output_exportconf().

14 years agotestuite: modargs.exp shouldn't execute things without installcheck
Frank Ch. Eigler [Thu, 18 Mar 2010 13:56:18 +0000 (09:56 -0400)]
testuite: modargs.exp shouldn't execute things without installcheck

14 years agoPR909: store kernel exported symbols in session object
Frank Ch. Eigler [Thu, 18 Mar 2010 13:35:28 +0000 (09:35 -0400)]
PR909: store kernel exported symbols in session object

* 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.

14 years agoPR909: reject perf.* probes later
Frank Ch. Eigler [Thu, 18 Mar 2010 12:45:16 +0000 (08:45 -0400)]
PR909: reject perf.* probes later

* tapset-perfmon.cxx (perf_builder::build): Check for CONFIG_PERF_EVENTS here.
  (register_tapset_perf): ... instead of here.

14 years agoPR909: switch to tapset-based attr/type resolution
Frank Ch. Eigler [Thu, 18 Mar 2010 12:04:21 +0000 (08:04 -0400)]
PR909: switch to tapset-based attr/type resolution

* tapset/perf.stp: New file.
* tapset-perfmon.cxx (perf_derived_probe): Drop event_name field throughout.
  Listen to type(N).config(M) instead.

14 years agoPR909: filter out offline cpus from perfctr registration loop
Frank Ch. Eigler [Thu, 18 Mar 2010 03:08:26 +0000 (23:08 -0400)]
PR909: filter out offline cpus from perfctr registration loop

* runtime/perf.c (_stp_perf_init): If cpu_is_offline(), don't.

14 years agoPreserve perf initialization errors
Josh Stone [Thu, 18 Mar 2010 02:06:56 +0000 (19:06 -0700)]
Preserve perf initialization errors

* 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.

14 years agoAssign the perf probe_point on registration failure
Josh Stone [Thu, 18 Mar 2010 01:41:21 +0000 (18:41 -0700)]
Assign the perf probe_point on registration failure

14 years agoAUTHORS bump
Josh Stone [Thu, 18 Mar 2010 00:40:27 +0000 (17:40 -0700)]
AUTHORS bump

* AUTHORS: Add Steve Dickson.
* .mailmap: Squash William Cohen's twin Will.

14 years agoPR909: Emit proper decls for perf probes
Josh Stone [Thu, 18 Mar 2010 00:30:06 +0000 (17:30 -0700)]
PR909: Emit proper decls for perf probes

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.

14 years agoTranslate perf events names into kernel names
Josh Stone [Wed, 17 Mar 2010 21:07:56 +0000 (14:07 -0700)]
Translate perf events names into kernel names

* 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.

14 years agoRename perf probe points
Josh Stone [Tue, 16 Mar 2010 23:53:48 +0000 (16:53 -0700)]
Rename perf probe points

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.

14 years agoMove the perf CONFIG check
Josh Stone [Wed, 17 Mar 2010 19:28:11 +0000 (12:28 -0700)]
Move the perf CONFIG check

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.

14 years agoStart of perf tapset parsing
Will Cohen [Wed, 17 Mar 2010 15:15:24 +0000 (11:15 -0400)]
Start of perf tapset parsing

14 years agoRemove the old performance monitoring code.
Will Cohen [Wed, 17 Feb 2010 18:06:51 +0000 (13:06 -0500)]
Remove the old performance monitoring code.

14 years agoModify the systemtap perf sampling internal api
Will Cohen [Wed, 17 Feb 2010 16:28:36 +0000 (11:28 -0500)]
Modify the systemtap perf sampling internal api

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.

This page took 0.066987 seconds and 5 git commands to generate.