Zero knotes on allocation. Parts of struct knote, such as kn_tqe, can retain their old value quite long, which is not good in this complex piece of code.
OK? Index: kern/kern_event.c =================================================================== RCS file: src/sys/kern/kern_event.c,v retrieving revision 1.122 diff -u -p -r1.122 kern_event.c --- kern/kern_event.c 5 Feb 2020 17:03:13 -0000 1.122 +++ kern/kern_event.c 8 Feb 2020 16:41:00 -0000 @@ -686,7 +686,7 @@ kqueue_register(struct kqueue *kq, struc } if (kev->flags & EV_ADD) - newkn = pool_get(&knote_pool, PR_WAITOK); + newkn = pool_get(&knote_pool, PR_WAITOK | PR_ZERO); again: if (fops->f_isfd) {