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: Alexander Nasonov <alnsn%yandex.ru@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc: ad%netbsd.org@localhost, kern-bug-people%netbsd.org@localhost, netbsd-bugs%netbsd.org@localhost,
	gnats-admin%netbsd.org@localhost, alnsn%netbsd.org@localhost
Subject: Re: kern/54949 (locking against myself in 9.99.46)
Date: Mon, 17 Feb 2020 21:52:23 +0000

 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