This is the mail archive of the systemtap@sources.redhat.com 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] |
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.
Regards, Ananth
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |