Index: sys/kern/kern_umtx.c =================================================================== --- sys/kern/kern_umtx.c (revision 232618) +++ sys/kern/kern_umtx.c (working copy) @@ -129,6 +129,7 @@ struct umtx_key key; LIST_ENTRY(umtxq_queue) link; int length; + int max_length; }; LIST_HEAD(umtxq_list, umtxq_queue); @@ -189,6 +190,8 @@ static SYSCTL_NODE(_debug, OID_AUTO, umtx, CTLFLAG_RW, 0, "umtx debug"); SYSCTL_INT(_debug_umtx, OID_AUTO, umtx_pi_allocated, CTLFLAG_RD, &umtx_pi_allocated, 0, "Allocated umtx_pi"); +static long max_length; +SYSCTL_LONG(_debug_umtx, OID_AUTO, max_length, CTLFLAG_RD, &max_length, 0, "max_length"); static void umtxq_sysinit(void *); static void umtxq_hash(struct umtx_key *key); @@ -384,6 +387,11 @@ TAILQ_INSERT_TAIL(&uh->head, uq, uq_link); uh->length++; + if (uh->length > uh->max_length) { + uh->max_length = uh->length; + if (uh->max_length > max_length) + max_length = uh->max_length; + } uq->uq_flags |= UQF_UMTXQ; uq->uq_cur_queue = uh; return;