Experiences with cvs runtime

Ananth N Mavinakayanahalli amavin@redhat.com
Thu Apr 28 16:14:00 GMT 2005


Martin Hunt wrote:
> On Wed, 2005-04-27 at 17:44 -0400, Ananth N Mavinakayanahalli wrote:
> 
> 
>>Kprobe infrastructure ensures that (un)registration and all handlers run 
>>with preemption disabled. 
> 
> I believe they have local IRQs disabled, which is not quite the same
> thing. From the kernel documentation:
> 
> It is possible to prevent a preemption event using local_irq_disable and
> local_irq_save.  Note, when doing so, you must be very careful to not
> cause an event that would set need_resched and result in a preemption
> check.  When in doubt, rely on locking or explicit preemption disabling.

Well, kprobes uses spin_lock_irqsave/irqrestore() during reg/unreg and
spin_lock/unlock() during probe processing; and spin_lock() and friends
implicitly disable/enable preemption.

> 
>>The problem here is seen during pre and post 
>>processing by the runtime. 
> 
> 
> Ahh.  That is indeed a problem.  The example probes don't have those
> sections protected. I'll fix for the examples in CVS.
> 
> 
>>>>- the stp script assumes that relayfs is built in as a kernel module,
>>>>while it can be configured tristate (<*>, <M>, <>).
> 
> 
> Please try the attached stp script.

Will give this a spin and let you know if I see any problems.

Regards,
Ananth



More information about the Systemtap mailing list