eventfd lookalike in FreeBSD ?

Luigi Rizzo rizzo at iet.unipi.it
Tue Jul 28 12:19:03 UTC 2015


Hi,
for some work we are doing on bhyve, we need some lightweight mechanism that
a kernel thread can use to wake up another user thread possibly
waiting for some event.

If the recipient of the event were a kernel thread it would simply
do a tsleep(chan...) and the sender would do a wakeup() or wakeup_one().

Do we have an equally simple option for a recipient that is a
userspace thread using something that is already in the kernel ?
Do we have some blocking syscall that ends up doing a tsleep in
a predictable way ?

I suppose I could create a kqueue() descriptor and instruct the kernel
thread side to post an event instead of doing the wakeup, but
this seems a bit more expensive on both endpoints.

cheers
luigi


More information about the freebsd-current mailing list