This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug runtime/13654] New: permit begin/end probes to sleep
- From: "fche at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sourceware dot org
- Date: Thu, 02 Feb 2012 15:43:47 +0000
- Subject: [Bug runtime/13654] New: permit begin/end probes to sleep
- Auto-submitted: auto-generated
http://sourceware.org/bugzilla/show_bug.cgi?id=13654
Bug #: 13654
Summary: permit begin/end probes to sleep
Product: systemtap
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: runtime
AssignedTo: systemtap@sourceware.org
ReportedBy: fche@redhat.com
Blocks: 13641
Classification: Unclassified
It is sometimes desirable (bug #13641) to permit embedded-C code to
sleep, when not otherwise precluded by the invoking kernel context.
This may include nothing other than begin/end type probes. However,
our general probe handler prologue does:
static void enter_be_probe (struct stap_be_probe *stp) {
...
#if INTERRUPTIBLE
preempt_disable ();
#else
local_irq_save (flags);
#endif
...
which makes might_sleep() contents unsafe. Sure, removing these lines
is an option, but then suddenly the various runtime code that assumes
that it's being invoked preemption-free (and thus may safely use
smp_processor_id()) has to be fixed. They could instead take the
CONTEXT* from from the probe handler, where by the way we could as
well store whatever per-cpu transport gunk is currently being
indexed.
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.