Sorry for late reply, but I just can't understand why & how this happens, been trying to graspOk - that's a deadlock.
the IPC/SHM part but I'm missing something. One processor gets locked up and never released.
I did:That's not surprising: the full debug code is only active for uniprocessor kernels. On SMP, only a simple check for unitialized spinlocks is performed.
printk("taking lock\n"); spin_lock(&info->lock);
printk("lock taken\n");
and it never prints out "lock taken" so i know where it locks up. Now the fun part,
spinlock debugging doesn't catch it,
but I did a simple patch to show who is holding a lockI must think about it. Who's printed as the last owner that released the lock? Perhaps there is a race with segment destruction: The structures are protected by RCU.
at the current time, and it appears noone has taken the lock. I really don't get this.