This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
Re: Kernel Deadlock while using uprobes
On 04/09/2012 05:30 AM, Negreanu Marius wrote:
> I managed to get a 3.0 kernel patched with uprobes from here[1].
> The kernel probing works fine as far as disktop.stp can test that.
>
> But, when I'm trying to insert a uprobe, the kernel detects a deadlock.
> The script I'm using is:
> echo 'probe process("/bin/ping").function("main") { print($$parms) }'
>> /tmp/cfg/test.stp
> and the deadlock is the one attached.
> [ 173.733192] CPU0
> [ 173.735655] ----
> [ 173.738192] lock(task_utrace_lock);
> [ 173.741912] <Interrupt>
> [ 173.744550] lock(task_utrace_lock);
> [ 173.748440]
> [ 173.748443] *** DEADLOCK ***
Hmm, looks like we have inconsistent interrupt state while taking that
lock. We either need to disable interrupts while holding it, or make
sure that it's never attempted within any interrupt. This is dsmith's
utrace port, hopefully he can take a closer look.
> 1: http://repos.fedorapeople.org/repos/jistone/kernel-uprobes/fedora-15/SRPMS/kernel-2.6.40.4-6.uprobes2.fc15.src.rpm
Do note that this new uprobes is still under heavy development, and I
haven't been keeping that repo up to date. Anton Arapov has much newer
builds available here:
http://repos.fedorapeople.org/repos/aarapov/kernel-uprobes/