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