Kernel Deadlock while using uprobes
Josh Stone
jistone@redhat.com
Mon Apr 9 17:48:00 GMT 2012
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/
More information about the Systemtap
mailing list