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