.IR http://sourceware.org/systemtap/wiki/TipExhaustedResourceErrors ,
.IR error::fault (7stap),
.IR error::reporting (7stap)
+.IR warning::pass5 (7stap)
--- /dev/null
+.\" t -*- nroff -*-
+
+.TH ERROR::PASS5 7stap
+.SH NAME
+warning::pass5 \- systemtap pass-5 warnings
+
+.\" macros
+.de SAMPLE
+
+.nr oldin \\n(.i
+.br
+.RS
+.nf
+.nh
+..
+.de ESAMPLE
+.hy
+.fi
+.RE
+.in \\n[oldin]u
+
+..
+
+.SH DESCRIPTION
+Warnings that occur during pass 5 (execution) can have a variety of causes.
+
+
+.TP
+probe insertion errors
+With any of the systemtap runtimes, it may be possible that the
+backends are unable to insert probe points requested by the systemtap
+script. For example, you may see errors such as
+.SAMPLE
+WARNING: probe [...] registration error (rc -524)
+.ESAMPLE
+(524 is a kernel error code for ENOTSUPP). These situations are out
+of systemtap's control, and result in some probes not receiving any
+hits. This may be caused by temporary resource constraints or
+permanent problems. One common permanent problem is such a probe
+point being placed at instructions that the runtime (kernel kprobes,
+uprobes or dyninst) cannot decode or intercept. A possible workaround
+is to move the probe points slightly in the script, so as to target a
+nearby statement, or a caller, or a callee. See also
+.IR error::dwarf (7stap).
+
+.SH GATHERING MORE INFORMATION
+Increasing the verbosity of pass-5
+with an option such as
+.IR "--vp 00001"
+can help pinpoint the problem.
+
+.SH SEE ALSO
+.nh
+.nf
+.IR stap (1),
+.IR http://sourceware.org/systemtap/wiki/TipExhaustedResourceErrors ,
+.IR error::pass5 (7stap),
+.IR error::reporting (7stap)
+.IR error::dwarf (7stap)
&& ((skp->module == NULL) || skp->module[0] == '\0'
|| strcmp(skp->module, "kernel") == 0)) {
if (skp->symbol_name)
- _stp_warn("probe %s (%s+%u) registration error (rc %d)",
+ _stp_warn("probe %s (%s+%u) registration error [man warning::pass5] (rc %d)",
skp->probe->pp, skp->symbol_name, skp->offset, rc);
else
- _stp_warn("probe %s (address 0x%lx) registration error (rc %d)",
+ _stp_warn("probe %s (address 0x%lx) registration error [man warning::pass5] (rc %d)",
skp->probe->pp, stapkp_relocate_addr(skp), rc);
}
}
if (ret)
_stp_warn("probe %s at inode-offset %lu:%p "
- "registration error (rc %d)",
+ "registration error [man warning::pass5] (rc %d)",
c->probe->pp,
(unsigned long) inst->inode->i_ino,
(void*) (uintptr_t) c->offset,
s.op->newline() << "stap_hwbkpt_ret_array[i] = 0;";
s.op->newline(-1) << "}";
s.op->newline() << "if (rc) {";
- s.op->newline(1) << "_stp_warn(\"Hwbkpt probe %s: registration error %d, addr %p, name %s\", probe_point, rc, addr, hwbkpt_symbol_name);";
+ s.op->newline(1) << "_stp_warn(\"Hwbkpt probe %s: registration error [man warning::pass5] %d, addr %p, name %s\", probe_point, rc, addr, hwbkpt_symbol_name);";
s.op->newline() << "skp->registered_p = 0;";
s.op->newline(-1) << "}";
s.op->newline() << " else skp->registered_p = 1;";
// If a probe types's emit_module_init() wants to handle error
// messages itself, it should set probe_point to NULL,
o->newline(1) << "if (probe_point)";
- o->newline(1) << "_stp_error (\"probe %s registration error (rc %d)\", probe_point, rc);";
+ o->newline(1) << "_stp_error (\"probe %s registration error [man warning::pass5] (rc %d)\", probe_point, rc);";
o->indent(-1);
// NB: we need to be in the error state so timers can shutdown cleanly,
// and so end probes don't run. OTOH, error probes can run.