The bump in the kernel version allows the use of EFD_SEMAPHORE for
eventfd.
Adjust the README.md to reflect this. No need to provide direct
instruction for older kernel. We leave the '--disable-epoll' switch
available and the code behind it simply because other platform might not
have epoll available.
Signed-off-by: Jonathan Rajotte <jonathan.rajotte-julien@efficios.com>
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: Id512f018c5394c9cc699e19c3d5a0d753e56414b
You need the following dependencies to build and run the {lt}
components:
You need the following dependencies to build and run the {lt}
components:
-* **Linux kernel{nbsp}≥{nbsp}2.6.27**
-+
-Use `{nbh}{nbh}disable{nbh}epoll` at <<configure,build configuration>>
-time to build {lt} for an older kernel. However, note that we can't
-provide any guarantee below 2.6.27.
+* **Linux kernel{nbsp}≥{nbsp}2.6.30**
* **http://www.liburcu.org/[Userspace{nbsp}RCU]{nbsp}≥{nbsp}0.11.0**.
+
* **http://www.liburcu.org/[Userspace{nbsp}RCU]{nbsp}≥{nbsp}0.11.0**.
+
so that you don't need `man` to view them, use the
`{nbh}{nbh}enable{nbh}embedded{nbh}help` option.
so that you don't need `man` to view them, use the
`{nbh}{nbh}enable{nbh}embedded{nbh}help` option.
-If your Linux kernel is older than 2.6.27, use the
-`{nbh}{nbh}disable{nbh}epoll` option.
-
This build configuration script finds LTTng{nbh}UST with
https://www.freedesktop.org/wiki/Software/pkg-config/[pkg{nbh}config]:
set the `PKG_CONFIG_PATH` environment variable accordingly if
This build configuration script finds LTTng{nbh}UST with
https://www.freedesktop.org/wiki/Software/pkg-config/[pkg{nbh}config]:
set the `PKG_CONFIG_PATH` environment variable accordingly if
- /* Simulate behaviour of EFD_SEMAPHORE for older kernels. */
- counter -= 1;
- if (counter != 0) {
- ret = lttng_write(handle->cmd_queue.event_fd, &counter,
- sizeof(counter));
- if (ret != sizeof(counter)) {
- PERROR("Failed to write back to event_fd for EFD_SEMAPHORE emulation");
- ret = -1;
- goto error_unlock;
- }
- }
-
*cmd = cds_list_first_entry(&handle->cmd_queue.list,
struct notification_thread_command, cmd_list_node);
cds_list_del(&((*cmd)->cmd_list_node));
*cmd = cds_list_first_entry(&handle->cmd_queue.list,
struct notification_thread_command, cmd_list_node);
cds_list_del(&((*cmd)->cmd_list_node));
sem_init(&handle->ready, 0, 0);
sem_init(&handle->ready, 0, 0);
- event_fd = eventfd(0, EFD_CLOEXEC);
+ event_fd = eventfd(0, EFD_CLOEXEC | EFD_SEMAPHORE);
if (event_fd < 0) {
PERROR("event_fd creation");
goto error;
if (event_fd < 0) {
PERROR("event_fd creation");
goto error;