This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: MAXACTION exceeded error while using systemtap
Marcelo Tosatti writes:
> On Thu, Dec 08, 2005 at 08:57:46AM -0500, Frank Ch. Eigler wrote:
> > Hi -
> >
> > jamesd.wi wrote:
> >
> > > [...] perhaps you two, should look at how your neighbor DTrace
> > > deals with this issue. It seems to work pretty well.
> >
> > Their situation is a little simpler because the language forbids
> > looping and recursion, so the individual handler run times are already
> > statically bounded.
> >
> >
> > > [...] btw MAXACTION really can't work reliably what happens when
> > > the box is underload, say with 4 gigabit nics all being flooded with
> > > data, and you are probing a function in the fast path?
> >
> > Yes, this is a good point. A system-level watchdog would be useful.
> >
> >
> > > P.S. I would recomend the members of this list subscribe to the
> > > dtrace-discuss list on www.opensolaris.org, its a low traffic list,
> > > but they do discuss issues you will face as you proceed. I can
> > > assure that the dtrace programers monitor your mailing list.
> >
> > Good point. Welcome all, and feel free to delurk.
>
> Hi folks,
>
> I think that SystemTap needs some method to periodically (or when memory
> pressure arrives) dump the parts of the array to userspace via
> relayfs.
See my previous reply for one way you could do this i.e. the
kmalloc-stacks example.
>
> relayfs already supports such mechanism with its "sub-buffer" structure,
> where the userspace reader is allowed to read full buffers (thus freeing
> them afterwards) while the hooks continue to push data to empty or
> partially filled buffers.
>
> James mentions that
>
> "btw MAXACTION really can't work reliably what happens when the box is
> underload, say with 4 gigabit nics all being flooded with data, and
> you are probing a function in the fast path?
>
> Not everyone has a box that can sum 4 billion numbers in less than a minute."
>
> relayfs works in two modes once its memory pool is full:
>
> - panic's
> - drops new entries
>
> I imagine that by using relayfs to send data to userspace one should
> automatically get those very important features.
I'm not sure what you mean - relayfs can be used in either 'overwrite'
or 'no-overwrite' modes; if its memory pool is full, 'overwrite' mode
overwrites the oldest entries, while 'no-overwrite' mode drops new
entries - there should be no 'panic's' anywhere in there. ;-)
Tom