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)



The following reply was made to PR kern/54949; it has been noted by GNATS.

From: Andrew Doran <ad%netbsd.org@localhost>
To: Alexander Nasonov <alnsn%yandex.ru@localhost>
Cc: gnats-bugs%netbsd.org@localhost
Subject: Re: kern/54949 (locking against myself in 9.99.46)
Date: Mon, 17 Feb 2020 22:32:11 +0000

 On Mon, Feb 17, 2020 at 09:52:23PM +0000, Alexander Nasonov wrote:
 > 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);
 
 OK cool.  It's the same bug then.  Thanks.
 
 Andrew
 


Home | Main Index | Thread Index | Old Index