]> sourceware.org Git - systemtap.git/log
systemtap.git
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.

14 years agoPR909: Runtime for Performance Event Sampling
Will Cohen [Wed, 17 Feb 2010 15:30:15 +0000 (10:30 -0500)]
PR909: Runtime for Performance Event Sampling

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.

14 years agoPR11364 sdt.h volatile for args isn't needed with gcc 4.5 or rh 4.4.3-10+
Mark Wielaard [Wed, 17 Mar 2010 14:41:02 +0000 (15:41 +0100)]
PR11364 sdt.h volatile for args isn't needed with gcc 4.5 or rh 4.4.3-10+

14 years agoFixed PR 11372 by removing (most) embedded-C from proc_mem.stp.
David Smith [Tue, 16 Mar 2010 20:47:36 +0000 (15:47 -0500)]
Fixed PR 11372 by removing (most) embedded-C from proc_mem.stp.

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

14 years agoFixed regexp typo in stap_run_error.exp.
David Smith [Tue, 16 Mar 2010 20:19:25 +0000 (15:19 -0500)]
Fixed regexp typo in stap_run_error.exp.

* testsuite/lib/stap_run_error.exp: Fixed regexp typo.

14 years agoMove common code from {maxmemory.exp,overload.exp} into stap_run_error.exp.
David Smith [Tue, 16 Mar 2010 20:10:06 +0000 (15:10 -0500)]
Move common code from {maxmemory.exp,overload.exp} into stap_run_error.exp.

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

14 years agoPR10812: make build-id checking somewhat more robust w.r.t. bad addresses
Frank Ch. Eigler [Tue, 16 Mar 2010 18:41:11 +0000 (14:41 -0400)]
PR10812: make build-id checking somewhat more robust w.r.t. bad addresses

* runtime/sym.c (_stp_module_check): Use a failure-tolerant
  get_user() loop instead of memcmp() for buildid binary strings.

14 years agoPR10831: Remember derived "aliases" in the probe chain
Josh Stone [Tue, 16 Mar 2010 18:11:26 +0000 (11:11 -0700)]
PR10831: Remember derived "aliases" in the probe chain

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.

14 years agoThe rpc buildok test suite probe breaks with new kernels
Steve Dickson [Tue, 16 Mar 2010 12:23:14 +0000 (08:23 -0400)]
The rpc buildok test suite probe breaks with new kernels

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>
14 years agoUpdate the nfsd buildok test suite probes
Steve Dickson [Tue, 16 Mar 2010 10:04:04 +0000 (06:04 -0400)]
Update the nfsd buildok test suite probes

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>
14 years agoBackport recently added probes to RHEL5(U5)
Steve Dickson [Thu, 4 Mar 2010 20:35:12 +0000 (15:35 -0500)]
Backport recently added probes to RHEL5(U5)

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>
14 years agoRevert "Backport recently added probes to RHEL5(U5)"
Steve Dickson [Thu, 4 Mar 2010 20:23:39 +0000 (15:23 -0500)]
Revert "Backport recently added probes to RHEL5(U5)"

This reverts commit 35f22bd95cea2fb75573a27282f2a5edea84f2d7
beause kernel_v kernel checks should not be used.

Signed-off-by: Steve Dickson <steved@redhat.com>
14 years agoBackport recently added probes to RHEL5(U5)
Steve Dickson [Thu, 4 Mar 2010 14:18:47 +0000 (09:18 -0500)]
Backport recently added probes to RHEL5(U5)

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>
14 years agoRevert "Backport recent changes to RHEL5 (U5)"
Steve Dickson [Wed, 3 Mar 2010 19:40:04 +0000 (14:40 -0500)]
Revert "Backport recent changes to RHEL5 (U5)"

This commit causes the 2.6.33 probes to break

This reverts commit 3ca4e3f2f5a7a615d0aed00a242f4e30864deaa8.

14 years agoBackport recent changes to RHEL5 (U5)
Steve Dickson [Wed, 3 Mar 2010 17:06:22 +0000 (12:06 -0500)]
Backport recent changes to RHEL5 (U5)

Ensured the recent additions of v4 probes and
supporting routines worked with RHEL5 U5 kernel.

Signed-off-by: Steve Dickson <steved@redhat.com>
14 years agoIncorporated comments from code review
Steve Dickson [Tue, 2 Mar 2010 20:03:53 +0000 (15:03 -0500)]
Incorporated comments from code review

- Fixed a couple typos
- To allow better optimization, removed the used of
 "convenience variables"

Signed-off-by: Steve Dickson <steved@redhat.com>
14 years agoAllow better filtering with IP address and File handle
Steve Dickson [Tue, 23 Feb 2010 16:58:16 +0000 (11:58 -0500)]
Allow better filtering with IP address and File handle

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>
14 years agoGeneral clean up on the upper level probes
Steve Dickson [Tue, 23 Feb 2010 16:56:15 +0000 (11:56 -0500)]
General clean up on the upper level probes

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>
14 years agoRemoved the nfsd.proc4.compound and nfsd.proc.compound.return probes
Steve Dickson [Tue, 23 Feb 2010 16:52:17 +0000 (11:52 -0500)]
Removed the nfsd.proc4.compound and nfsd.proc.compound.return probes

Either probes displayed anything that was useful, plus
there are other ways to display similar information.

Signed-off-by: Steve Dickson <steved@redhat.com>
14 years agoUpdated nfsd.proc.remove probes
Steve Dickson [Tue, 23 Feb 2010 16:51:19 +0000 (11:51 -0500)]
Updated nfsd.proc.remove probes

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>
14 years agoUpdated nfsd.proc.remove probes
Steve Dickson [Tue, 23 Feb 2010 16:50:38 +0000 (11:50 -0500)]
Updated nfsd.proc.remove probes

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>
14 years agoUpdated nfsd.proc.create probes
Steve Dickson [Tue, 23 Feb 2010 16:48:57 +0000 (11:48 -0500)]
Updated nfsd.proc.create probes

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>
14 years agoUpdated nfsd.proc.write probes
Steve Dickson [Tue, 23 Feb 2010 16:48:15 +0000 (11:48 -0500)]
Updated nfsd.proc.write probes

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>
14 years agoUpdated nfsd.proc.read probes
Steve Dickson [Tue, 23 Feb 2010 16:47:19 +0000 (11:47 -0500)]
Updated nfsd.proc.read probes

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>
14 years agoUpdated nfsd.proc.lookup probes
Steve Dickson [Tue, 23 Feb 2010 16:29:06 +0000 (11:29 -0500)]
Updated nfsd.proc.lookup probes

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>
14 years agoAdded new nfsderror() function
Steve Dickson [Tue, 23 Feb 2010 16:15:05 +0000 (11:15 -0500)]
Added new nfsderror() function

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>
14 years agoUse the @defined rather than kernel_v in the inode-watch.stp
William Cohen [Fri, 12 Mar 2010 22:44:28 +0000 (17:44 -0500)]
Use the @defined rather than kernel_v in the inode-watch.stp

14 years agoMinor corrections to inode-watch.stp example.
William Cohen [Fri, 12 Mar 2010 22:36:02 +0000 (17:36 -0500)]
Minor corrections to inode-watch.stp example.

14 years agoGet d_path's root natively with @cast
Josh Stone [Fri, 12 Mar 2010 19:39:52 +0000 (11:39 -0800)]
Get d_path's root natively with @cast

As mjw's aborted commit 5ab0b1b6 attempted, we can use a @cast to get
the filesystem root for the current task instead of embedded-C.  I've
left it using the kernel debuginfo instead of headers for now, because
all of the neighboring @casts are doing the same.

* tapset/dentry.stp (d_path): Use @cast to get the root.
  (__dentry_get_current_root): Remove, no longer needed.
* testsuite/buildok/dentry.stp: Test that dentry's functions all build.

14 years agoMake the stap-prep script available in the RPM.
William Cohen [Fri, 12 Mar 2010 19:00:38 +0000 (14:00 -0500)]
Make the stap-prep script available in the RPM.

14 years agoRevert "Make stap-prep script available in the RPM"
William Cohen [Fri, 12 Mar 2010 18:57:56 +0000 (13:57 -0500)]
Revert "Make stap-prep script available in the RPM"

This reverts commit da3dfc346ff926f0f1bdd2872fe4f5f8e920953a.

14 years agoMake stap-prep script available in the RPM
William Cohen [Fri, 12 Mar 2010 18:56:15 +0000 (13:56 -0500)]
Make stap-prep script available in the RPM

14 years agoPR11373 kludge: clean up testsuite/stap_*.ko upon 'make clean'
Frank Ch. Eigler [Fri, 12 Mar 2010 19:12:49 +0000 (14:12 -0500)]
PR11373 kludge: clean up testsuite/stap_*.ko upon 'make clean'

14 years agolangref.tex editing
William Cohen [Fri, 12 Mar 2010 16:31:24 +0000 (11:31 -0500)]
langref.tex editing

Reviewed the language reference manual and made editing changes:

-Reorderd sections for better grouping
-Added description of the @defined operation
-Corrected limits for MAXSTRENLEN and number of indices in associate array
-Adjusted language in aggregates section
-Corrected @hist example writeup.
-Make output for @hist avoid page breaks
-Updated information about manpages in "For Futher References" section

14 years agosmileytap logo: inserted GPLv2 RDF tag
Frank Ch. Eigler [Fri, 12 Mar 2010 14:29:15 +0000 (09:29 -0500)]
smileytap logo: inserted GPLv2 RDF tag

14 years agoAdd startswith/endswith helpers
Josh Stone [Fri, 12 Mar 2010 03:19:33 +0000 (19:19 -0800)]
Add startswith/endswith helpers

Inspired by the Python equivalents, these new utility functions just
make it a little cleaner to match at the beginning or end of a string.

14 years agoFix the edge-case of MAXTRYLOCK=0
Josh Stone [Fri, 12 Mar 2010 01:14:59 +0000 (17:14 -0800)]
Fix the edge-case of MAXTRYLOCK=0

We didn't really have good semantics for what is meant by MAXTRYLOCK=0,
so when skipped.exp tried it, we ended up locking the variable and then
reporting a skip without ever unlocking it.

This is now cleaning up the semantics such that MAXTRYLOCK defines how
many times we should loop if the lock is busy.  Thus MAXTRYLOCK=0 means
we try only once and fail immediately.

The testcase was accidentally creating contention due to the broken
unlock behavior.  We now have to try a bit harder to create real
contention, so some lengthy delays are inserted to hoard the lock.

* runtime/probe_lock.h (stp_probe_lock): Fix the skip behavior.
* testsuite/systemtap.base/skipped.exp: Add a big udelay.

14 years agoFix proc_mem.stp for RHEL5.
David Smith [Thu, 11 Mar 2010 21:07:43 +0000 (15:07 -0600)]
Fix proc_mem.stp for RHEL5.

* tapset/proc_mem.stp: Move header file so that it will compile on RHEL5
  systems.

14 years agoRevoke unprivileged from ftrace()
Josh Stone [Thu, 11 Mar 2010 20:52:26 +0000 (12:52 -0800)]
Revoke unprivileged from ftrace()

It's writing into a system-wide resource, so it shouldn't be permitted
to just anyone.  Also remove the printk fallback that isn't actually
functional.

* tapset/logging.stp (ftrace): Remove unprivileged and printk.

14 years agoUpdate tapset proc_mem for 2.6.34
Wenji Huang [Thu, 11 Mar 2010 09:59:16 +0000 (17:59 +0800)]
Update tapset proc_mem for 2.6.34

* tapset/proc_mem.stp(_stp_get_mm_counter_file_rss,
   _stp_get_mm_counter_anon_rss): Use embedded function.

14 years agoPR11370: Add multi-header @casts
Josh Stone [Thu, 11 Mar 2010 03:17:40 +0000 (19:17 -0800)]
PR11370: Add multi-header @casts

Sometimes you need multiple headers to fully describe a type, so we now
permit them to be listed together, e.g. "kernel<foo.h><bar.h>".

* buildrun.cxx (make_typequery): Split the input string into a vector.
  (make_typequery_kmod, make_typequery_umod): Use the vector of headers.
* testsuite/semok/cast.stp: Add a multi-header case.
* stap.1.in, NEWS: Document it.

14 years agoRevert "Remove unnecessary embedded-c function __dentry_get_current_root()."
Mark Wielaard [Wed, 10 Mar 2010 22:12:26 +0000 (23:12 +0100)]
Revert "Remove unnecessary embedded-c function __dentry_get_current_root()."

This reverts commit 5ab0b1b6c4d3a7f1ea156835a32000669e378886.
Wrongly pushed commit.

14 years agoBe pessimistic about the gcc version as debuginfo has an undependable case (RH572260).
Stan Cox [Wed, 10 Mar 2010 21:52:37 +0000 (16:52 -0500)]
Be pessimistic about the gcc version as debuginfo has an undependable case (RH572260).

* sdt.h (GNUC_VERSION): Check against gcc 4.5.0

14 years agoPR 11210 move stapprobe.* man pages to tapset::*
William Cohen [Wed, 10 Mar 2010 20:53:32 +0000 (15:53 -0500)]
PR 11210 move stapprobe.* man pages to tapset::*

make on RHEL-5 and earlier cannot deal with the :: in the man page names.
This work around uses the install-data-local rule to install the
manpages to avoid confusing the older versions of make.

14 years agoRemoved unneeded '-u' switch from 3 tests.
David Smith [Wed, 10 Mar 2010 17:46:29 +0000 (11:46 -0600)]
Removed unneeded '-u' switch from 3 tests.

* testsuite/buildok/scheduler-test-tracepoints.stp: Removed unneeded '-u'
  option.
* testsuite/buildok/vm.tracepoints.kmalloc.stp: Ditto.
* testsuite/buildok/vm.tracepoints.stp: Ditto.

14 years agosdt.h: rename volatile-control macro to STAP_SDT_VOLATILE. Document in NEWS.
Frank Ch. Eigler [Wed, 10 Mar 2010 16:18:11 +0000 (11:18 -0500)]
sdt.h: rename volatile-control macro to STAP_SDT_VOLATILE.  Document in NEWS.

14 years agoPR11366 Always call semantic_pass_const_fold.
Mark Wielaard [Wed, 10 Mar 2010 15:44:38 +0000 (16:44 +0100)]
PR11366 Always call semantic_pass_const_fold.

Even in unoptimized mode we want constant folding to work to make sure
non-existing $variable expressions (detected through @defined) aren't
included.

* elaborate.cxx (semantic_pass_optimize1): Call semantic_pass_const_fold()
  unconditionally.

14 years agoRemove unnecessary embedded-c function __dentry_get_current_root().
Mark Wielaard [Mon, 8 Mar 2010 16:15:52 +0000 (17:15 +0100)]
Remove unnecessary embedded-c function __dentry_get_current_root().

* tapset/dentry.stp: Removed embedded-c include and function
  __dentry_get_current_root(). Use task_current and @cast in d_path().

14 years agotapset/task.stp remove redundant extra @defined in task_cpu().
Mark Wielaard [Wed, 10 Mar 2010 12:57:07 +0000 (13:57 +0100)]
tapset/task.stp remove redundant extra @defined in task_cpu().

14 years agoUse exported print_context_stack for 2.6.33
Wenji Huang [Wed, 10 Mar 2010 09:06:26 +0000 (17:06 +0800)]
Use exported print_context_stack for 2.6.33

* runtime/stack.c(print_stack_ops): Use print_context_stack and
  adjust version code.

14 years agoNEWS: mention man page renames
Frank Ch. Eigler [Wed, 10 Mar 2010 03:02:37 +0000 (22:02 -0500)]
NEWS: mention man page renames

14 years agoPR 11210 move stapprobe.* man pages to tapset::*
William Cohen [Wed, 10 Mar 2010 00:53:52 +0000 (19:53 -0500)]
PR 11210 move stapprobe.* man pages to tapset::*

Complete the renaming scheme with prefix of "tapset::" for the man
pages related to over all description of groups of probes.

14 years agoPR11360: Make @defined and -L play nice
Josh Stone [Tue, 9 Mar 2010 23:32:58 +0000 (15:32 -0800)]
PR11360: Make @defined and -L play nice

The constant-folding is now enabled for s.listing_mode_vars, despite all
other optimizations being disabled.  This is needed so we can prune any
invalid branches that are gated by @defined.

* elaborate.cxx (semantic_pass): Leave the optimization decision to the
  optimization passes themselves.
  (semantic_pass_optimize1): Predicate most optimizations, but enable the
  constant-folding for listing_mode_vars too.
  (semantic_pass_optimize2): Predicate all (1) optimizations.
* testsuite/semok/defined_list_vars.stp: New test.

14 years agoInclude __GNUC_RH_RELEASE__ in the volatile check.
Stan Cox [Tue, 9 Mar 2010 22:40:04 +0000 (17:40 -0500)]
Include __GNUC_RH_RELEASE__ in the volatile check.

sdt.h (GNUC_VERSION) Include __GNUC_RH_RELEASE__.  Check for at least gcc 4.4.4

14 years agoPR 11338 (partial): Used '@defined()' in task, dentry, and scsi tapsets.
David Smith [Tue, 9 Mar 2010 21:39:15 +0000 (15:39 -0600)]
PR 11338 (partial): Used '@defined()' in task, dentry, and scsi tapsets.

* tapset/task.stp: Used '@defined()' to remove kernel version checks.
* tapset/dentry.stp: Ditto.
* tapset/scsi.stp: Ditto.

14 years agoUpdate tests to check for uprobes instead of utrace.
David Smith [Tue, 9 Mar 2010 20:22:56 +0000 (14:22 -0600)]
Update tests to check for uprobes instead of utrace.

* testsuite/systemtap.context/uprobe_stmt_num.exp: Change utrace test to
  uprobes test.
* testsuite/systemtap.context/uprobe_uaddr.exp: Ditto.
* testsuite/systemtap.base/bz5274.exp: Ditto.

14 years agoCheck the gcc version using polynomial representation.
Stan Cox [Tue, 9 Mar 2010 19:57:41 +0000 (14:57 -0500)]
Check the gcc version using polynomial representation.

* sdt.h (GNUC_VERSION): New.

14 years agoFix PR 11363 by using logrotate to ensure logfile doesn't grow too large.
David Smith [Tue, 9 Mar 2010 17:51:10 +0000 (11:51 -0600)]
Fix PR 11363 by using logrotate to ensure logfile doesn't grow too large.

* initscript/logrotate.stap-server: Add logrotate config file to make sure
  stap-server logfile doesn't grow too large.
* systemtap.spec: Install logrotate config file.  Also follow
  <https://fedoraproject.org/wiki/PackagingDrafts/Logfiles> to correctly
  create the logfile.

14 years agoImproved PR 11309 by fixing directory and file permissions.
David Smith [Tue, 9 Mar 2010 17:33:59 +0000 (11:33 -0600)]
Improved PR 11309 by fixing directory and file permissions.

* systemtap.spec: Fixed directory and file permissions on
  /usr/share/systemtap/runtime/uprobes and /var/log/stap-server.

14 years agoPR 11210 Eliminate man page collisions
William Cohen [Tue, 9 Mar 2010 16:05:25 +0000 (11:05 -0500)]
PR 11210 Eliminate man page collisions

The various man pages for each systemtap probe and function
are prepended with "probe::" and "function::" respectively to avoid
collisions with other man3 pages with the same name.  For example
systemtap's strlen function was colliding with glibc's strlen function.

14 years agoOnly use volatile for sdt.h arguments when needed.
Stan Cox [Tue, 9 Mar 2010 15:50:14 +0000 (10:50 -0500)]
Only use volatile for sdt.h arguments when needed.

sdt.h (VOLATILE_ARG): gcc 4.4.3 support for inline asm
argument debug info means volatile is not needed.

14 years agobuild: re-enable librpm checking
Frank Ch. Eigler [Mon, 8 Mar 2010 21:22:42 +0000 (16:22 -0500)]
build: re-enable librpm checking

* configure.ac: With AC_CHECK_LIB()'s four-parameter variant,
  the default AC_DEFINE etc. is removed, so restore the key
  parts by hand.

14 years agotypo 7754 -> 775
Dave Brolley [Mon, 8 Mar 2010 20:46:55 +0000 (15:46 -0500)]
typo 7754 -> 775

14 years agoPRs 11205, 11309: Specfile problems for stap-server:
Dave Brolley [Mon, 8 Mar 2010 19:37:06 +0000 (14:37 -0500)]
PRs 11205, 11309: Specfile problems for stap-server:

- Use assigned gid/uid of 155/155 for stap-server.
- Create stap-server group in main systemtap rpm.
- Make uprobes runtime directory read/write/search by members
  of stap-server group in main systemtap rpm.
- Keep stap-server log in %{_localstatedir}/log/stap-server/log

14 years agoPR 11338 (partial): Used '@defined()' in tty, scheduler, and vfs tapsets.
David Smith [Mon, 8 Mar 2010 19:38:51 +0000 (13:38 -0600)]
PR 11338 (partial): Used '@defined()' in tty, scheduler, and vfs tapsets.

* tapset/tty.stp: Used '@defined()' to remove kernel version checks.
* tapset/scheduler.stp: Ditto.
* tapset/vfs.stp: Used '@defined()' to remove kernel version checks.  Also
  made several probe points optional instead of using kernel version
  checks to know when to include them.
* testsuite/buildok/vfs_testcase.stp: Removed stap '-u' (unoptimized mode)
  switch, since '@defined()' doesn't work in unoptimized mode.

14 years agodocs: clarify that only -> is used for $var dereferencing, not .
Frank Ch. Eigler [Mon, 8 Mar 2010 14:06:41 +0000 (09:06 -0500)]
docs: clarify that only -> is used for $var dereferencing, not .

14 years agonew sample: varwatch
Frank Ch. Eigler [Mon, 8 Mar 2010 02:13:39 +0000 (21:13 -0500)]
new sample: varwatch

14 years agoMove semko/nineteen.stp to semok
Josh Stone [Sat, 6 Mar 2010 21:08:22 +0000 (13:08 -0800)]
Move semko/nineteen.stp to semok

The *ko tests are for things that SHOULD fail, but semko/nineteen is a
test that should pass but often doesn't (due to inline var trouble).  It
should be in semok to set the expectation properly.

It does pass on F12 now, but if we want to silence the error for older
gcc, setup_kfail is the right approach.

14 years agoPR11352: Assign tokens to all SDT-synthesized elements
Josh Stone [Sat, 6 Mar 2010 19:41:49 +0000 (11:41 -0800)]
PR11352: Assign tokens to all SDT-synthesized elements

* tapsets.cxx (sdt_query::convert_probe): Fix a few missing tokens.
  (sdt_var_expanding_visitor::visit_target_symbol): Ditto.
* translate.cxx (c_unparser::record_actions): Add a defensive check,
  which perhaps someday can be an assertion instead.

14 years agoPR11342: Ensure that last_stmt is always set
Josh Stone [Sat, 6 Mar 2010 01:24:41 +0000 (17:24 -0800)]
PR11342: Ensure that last_stmt is always set

* translate.cxx (c_unparser::record_actions): Take a token to fill in
  last_stmt for MAXACTION errors.
  (c_unparser::*): Pass a token to record_actions.
  (c_unparser::visit_try_block): The try/catch blocks are also basic
  blocks, so they should flush record_actions when done.
  (c_unparser_assignment::c_assignop): Set last_stmt for /= and %=.
  (c_unparser::visit_foreach_loop): Set last_stmt for agg. overflow.
  (c_unparser::visit_print_format): Set last_stmt for %m errors.

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