[Bug runtime/13654] New: permit begin/end probes to sleep

fche at redhat dot com sourceware-bugzilla@sourceware.org
Thu Feb 2 15:45:00 GMT 2012


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.



More information about the Systemtap mailing list