This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: disabled interrupts (Was bug #2293
On Mon, 2006-02-27 at 13:56 -0500, Frank Ch. Eigler wrote:
> hunt wrote:
>
> > [...] You have now disabled interrupts, so the data [produced by end
> > probes] fills the buffers but stpd cannot empty them.
>
> How could stpd have emptied them before, in a reliable way? During an
> "end" probe, or when? stpd can't run until the next timeslice; we
> never cooperatively schedule out of a probe.
The runtime calls probe_end(), and it used to know it was safe to sleep
while in probe_end(). So if it attempted to send data and no buffers
were available, it would sleep a bit (allowing stpd to precess the data)
and retry (up to a limit), thus ensuring 100% of the data got sent.
Other solutions require fixed limits on the amount of data that can be
sent during probe end.