This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: djprobes status
On Fri, 2006-09-15 at 19:00 -0400, Satoshi Oshima wrote:
> > there's a fifth option too i can think of: just dont free probe
> buffers
> > but put them into a linked list! Once there's too many of them, do
> the
> > gather/release thing once, to release a bunch of buffers at once.
> That
> > way the overhead of the gather/release will trigger only seldomly.
> >
> > this is faster than the pushl based one, and much simpler as well i
> > believe.
>
> Link list approach still requires to use preempt_disable()/enable() or
> freeze_process() because we can not guarantee the safety that all the
> buffer is not preempted. I think it is not enough to put buffers away
> to linked list for a long time.
yes, my suggestion above was to occasionally do (for every 1000 buffers
or 10000 buffers) something like:
freeze_processes();
list_for_each_entry(&list)
release_buffer(buffer);
thaw_processes();
this way the trampoline code is the simplest possible (and the fastest
possible) as we dont have to add preempt_disable()/enable() to the
trampoline code. Am i missing some important complication?
Ingo