]> CyberLeo.Net >> Repos - FreeBSD/FreeBSD.git/commit
umtx: Add bitset conditional wakeup functionality.
authorDmitry Chagin <dchagin@FreeBSD.org>
Thu, 29 Jul 2021 09:42:49 +0000 (12:42 +0300)
committerDmitry Chagin <dchagin@FreeBSD.org>
Fri, 17 Jun 2022 19:33:17 +0000 (22:33 +0300)
commit6d6fb6026d5f49c509531e926c328e83a8b8ae1f
tree485c0ec9566a151f5764afb57cd7c4892c26c78c
parent7642de029b565b5bd5ebc43424180b752f782363
umtx: Add bitset conditional wakeup functionality.

The bitset is a Linux emulation layer extension. This 32-bit mask, in which at
least one bit must be set, is used to select which threads should be woken up.

The bitset is stored in the umtx_q structure, which is used to enqueue the waiter
into the umtx waitqueue. Put the bitset into the hole, that appeared on LP64 due
to data alignment, to prevent the growth of the struct umtx_q.

Reviewed by: kib
Differential Revision: https://reviews.freebsd.org/D31234
MFC after: 2 weeks

(cherry picked from commit 7caa29115b4a2023128ed07942b71074507a44a1)
sys/kern/kern_umtx.c
sys/sys/umtxvar.h