This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]