Bug #1104
closed
lttng-sessiond's new notification subsystem uses eventfd() which is only available since Linux 2.6.22
Added by Jérémie Galarneau over 7 years ago.
Updated almost 5 years ago.
Description
lttng-sessiond's new notification subsystem uses eventfd() which is only available since Linux 2.6.22. A pipe-based (or better idea?) compatibility layer should be put in place to accommodate older, supported, kernels.
Per the README.md file the needed version for the Linux kernel is >= 2.6.27 for epoll support, otherwise older kernel are not supported. Does using eventfd really a problem considering that we don't offer support for older kernel older 2.6.27?
Still, we have a problem related to the flag passed to eventfd.
handle->cmd_queue.event_fd = eventfd(0, EFD_CLOEXEC | EFD_SEMAPHORE);
From man eventfd:
EFD_CLOEXEC (since Linux 2.6.27)
Set the close-on-exec (FD_CLOEXEC) flag on the new file descrip‐
tor. See the description of the O_CLOEXEC flag in open(2) for
reasons why this may be useful.
EFD_NONBLOCK (since Linux 2.6.27)
Set the O_NONBLOCK file status flag on the new open file
description. Using this flag saves extra calls to fcntl(2) to
achieve the same result.
EFD_SEMAPHORE (since Linux 2.6.30)
Provide semaphore-like semantics for reads from the new file
descriptor. See below.
The use of EFD_SEMAPHORE seems to be more problematic here.
What do you think?
- Status changed from New to Resolved
Also available in: Atom
PDF