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]

Re: Experiences with cvs runtime


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


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