From be184deb8fa8f58ebe693c2483b9012daff6137d Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Mon, 9 Mar 2009 19:10:20 -0700 Subject: Fix a few typos in stap(1) --- stap.1.in | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) (limited to 'stap.1.in') diff --git a/stap.1.in b/stap.1.in index 6e4df024..3a0823e6 100644 --- a/stap.1.in +++ b/stap.1.in @@ -1039,10 +1039,10 @@ Maximum number of soft errors before an exit is triggered, default 0, which means that the first error will exit the script. .TP MAXSKIPPED -.TP Maximum number of skipped probes before an exit is triggered, default 100. Running systemtap with \-t (timing) mode gives more details about skipped probes. +.TP MINSTACKSPACE Minimum number of free kernel stack bytes required in order to run a probe handler, default 1024. This number should be large enough @@ -1053,8 +1053,9 @@ Maximum number of concurrently armed user-space probes (uprobes), default 100 times the number of user-space probe points named in the script. This pool is large because individual uprobe objects are allocated for each process for each script-level probe. + .PP -Multipule scripts can write data into a relay buffer concurrently. A host +Multiple scripts can write data into a relay buffer concurrently. A host script provides an interface for accessing its relay buffer to guest scripts. Then, the output of the guests are merged into the output of the host. To run a script as a host, execute stap with @@ -1096,16 +1097,16 @@ using symbols read from vmlinux and/or the modules in /lib/modules. Systemtap can also read the kernel symbol table from a text file such as /boot/System.map or /proc/kallsyms. See the -.B \-\--kelf +.B \-\-kelf and -.B \-\--kmap +.B \-\-kmap options. .PP If systemtap finds relevant debugging information, it will use it even if you specify -.B \-\--kelf +.B \-\-kelf or -.BR \-\--kmap . +.BR \-\-kmap . .PP Without debugging information, systemtap cannot support the following types of language constructs: -- cgit From e0a17418b9d12e2a95dc345e95080ba31a41677f Mon Sep 17 00:00:00 2001 From: Josh Stone Date: Mon, 9 Mar 2009 19:12:02 -0700 Subject: Let -DINTERRUPTIBLE=0 mask interrupts in probes Some time ago we loosened up the code for all probe types to allow interrupts during the handler. However, when probing something like kernel.trace("*"), you get a mix of probes in and out of the interrupt path, and it becomes much more common to have probes skipped due to interrupt reentrancy. The common_probe_entryfn_prologue and common_probe_entryfn_epilogue functions had an interruptible flag, but this was no longer used anywhere. I removed this flag, but then reused the logic to check an INTERRUPTIBLE macro instead. Now users can use -DINTERRUPTIBLE=0 to prevent interrupt reentrancy in their script, at the cost of a bit more overhead to toggle the interrupt mask. --- stap.1.in | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'stap.1.in') diff --git a/stap.1.in b/stap.1.in index 3a0823e6..546bebb8 100644 --- a/stap.1.in +++ b/stap.1.in @@ -1054,6 +1054,17 @@ Maximum number of concurrently armed user-space probes (uprobes), default pool is large because individual uprobe objects are allocated for each process for each script-level probe. +.PP +With scripts that contain probes on any interrupt path, it is possible that +those interrupts may occur in the middle of another probe handler. The probe +in the interrupt handler would be skipped in this case to avoid reentrance. +To work around this issue, execute stap with the option +.BR \-DINTERRUPTIBLE=0 +to mask interrupts throughout the probe handler. This does add some extra +overhead to the probes, but it may prevent reentrance for common problem +cases. However, probes in NMI handlers and in the callpath of the stap +runtime may still be skipped due to reentrance. + .PP Multiple scripts can write data into a relay buffer concurrently. A host script provides an interface for accessing its relay buffer to guest scripts. -- cgit From 3bd0d4df7ccfd9afe7771441b26d8baaaf180e29 Mon Sep 17 00:00:00 2001 From: Rajan Arora Date: Wed, 11 Mar 2009 18:44:21 -0400 Subject: PR 7071: Optional $context variables fix * tapsets.cxx (dwarf_var_expanding_visitor::visit_target_symbol): Substitute erroneous target symbol with literal 0 if session level flag, skip_badvars is set. * session.h (struct systemtap_session): New flag: skip_badvars. * main.cxx: Command line argument --skip-badvars added. * stap.1.in: Entry for new option --skip-badvars. * NEWS: Added blurb for new option now available. * testsuite/semok/badvar.stp: Test case to check added functionality. --- stap.1.in | 3 +++ 1 file changed, 3 insertions(+) (limited to 'stap.1.in') diff --git a/stap.1.in b/stap.1.in index 546bebb8..5a2e35f9 100644 --- a/stap.1.in +++ b/stap.1.in @@ -230,6 +230,9 @@ nor the kernel debugging information can be found. .TP .B \-\-ignore\-dwarf For testing, act as though vmlinux and modules lack debugging information. +.TP +.B \-\-skip\-badvars +Ignore out of context variables and substitute with literal 0. .SH ARGUMENTS -- cgit