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]

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



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