NetBSD-Bugs archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

Re: kern/54949 (locking against myself in 9.99.46)



ad%NetBSD.org@localhost wrote:
> Do you still have that kernel?  Can you tell what line is exit1+0x41f with gdb?
> gdb ./netbsd.gdb ..... info line *exit1+0x41f
> I think it's likely the same problem as Martin suggests.

No /netbsd.gdb but in my /netbsd, that address is between two calls:

ffffffff8090312a:       e8 54 0b 3f 00          callq  ffffffff80cf3c83 <radix_tree_remove_node>
ffffffff8090312f:       4c 89 e7                mov    %r12,%rdi
ffffffff80903132:       e8 3f 09 3f 00          callq  ffffffff80cf3a76 <radix_tree_fini_tree>

I can easily see it in the code (KASSERTs are nops):

        /* Don't bother with p_treelock as no other LWPs remain. */
        l2 = radix_tree_remove_node(&p->p_lwptree, (uint64_t)(l->l_lid - 1));
        KASSERT(l2 == l);
        KASSERT(radix_tree_empty_tree_p(&p->p_lwptree));
        radix_tree_fini_tree(&p->p_lwptree);
        mutex_exit(p->p_lock);

-- 
Alex


Home | Main Index | Thread Index | Old Index