NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
Re: kern/56828: futex calls in Linux emulation sometimes hang
The following reply was made to PR kern/56828; it has been noted by GNATS.
From: Thomas Klausner <wiz%NetBSD.org@localhost>
To: gnats-bugs%netbsd.org@localhost
Cc:
Subject: Re: kern/56828: futex calls in Linux emulation sometimes hang
Date: Fri, 16 Sep 2022 14:05:07 +0200
Some information from debugging with riastradh, OCR'd and handfixed:
crash> ps/w | grep futex
7203 8445 java linux 43 futex ffffa3212cc45ed0
7203 8701 java linux 43 futex ffffa3212cc3eed0
...
many many more of these.
(gdb) p futex_tab
$1 = (lock = {u = (mtxa_owner = 0, s = (mtxs_dummy = 0 '\000', mtxs_ipl = {_ipl = 0 '\000'}, mtxs_lock = 0 '\000', mtxs_unused = 0 '\000'}}}, va = {rbt_root = 0x0, rbt_ops = 0xffffffff81375ba0 <futex_rb_ops>,
rbt_minmax = {0x0, 0x0}}, oa = {rbt_root = 0xffff8039324615a0, rbt_ops = 0xffffffff81375b80 <futex_shared_rb_ops>, rbt_minmax = {0xffff8035d9ac71e0, 0xffff8035fa7f0c60}}}
(gdb) print ((struct futex_wait *) (0xffffa3212cc45ed0
- (size_t)&((struct futex_wait *)0)->fw_cv))
$2 = (struct futex wait *) 0xffffa3212cc45ec8
(gd) print &((struct futex_wait *)0)->fw_cv
$3 = (kcondvar t *) 0x8
(gdb) print _Alignof (struct futex_wait)
$4 = 8
(gdb) print *((struct futex_wait *) (0xffffa3212cc45ed0 - (size_t)&((struct futex_wait *)0)->fw_cv))
$5 = (fw lock = {u = {mtxa_owner = 0, s = {mtxs_dummy = 0 '\000', mtxs_ipl = { ipl = 0 '\000'}, mtxs_lock = 0 '\000', mtxs_unused = 0 '\000'}}}, fw_cv = {cv_opaque = 0xffff803897cb8100, 0xffffffff813e61a9}}, fw_futex = 0xffff803873cf9400, fw_entry = {tqe_next = 0x0, tqe_prev = 0xffff803873cf9440}, fw_abort = (le_next = 0xca, le_prev = 0xffffa3212cc45f407, fw_bitset=-1, fw_aborting = false}
(gdb) x/s ((struct futex_wait *)(0xffffa3212cc45ed0 - (size_t)&((struct futex_wait *)0)->fw_cv))->fw_cv->cv_opaque[1]
Oxffffffff813e61a9: "futex"
(gdb) print *((struct futex_wait *)(0xffffa3212cceed0 - (size_t)&((struct futex_wait *)0)->fw_cv))
$6 = {fw lock = {u = (mtxa_owner = 0, s = {mtxs_dummy = 0 '\000', mtxs_ipl = { ipl = 0 '\000'}, mtxs_lock = 0 '\000', mtxs_unused = 0 '\000'}}}, fw_cv = {cv_opaque = {0xffff80389a4d3940, 0xffffffff813e61a93}, fw_futex = 0xffff8038720bcac0, fw_entry = {tqe_next = 0x0, tqe_prev = 0xffff8038720bcb00}, fw_abort = {le_next = Oxffff8035da5d3100, le_prev = 0xffffa3212cc3ef307, fw_bitset = -1, fw_aborting = false }
Home |
Main Index |
Thread Index |
Old Index