X-Git-Url: http://git.lttng.org/?a=blobdiff_plain;ds=sidebyside;f=libringbuffer%2Fshm.c;h=461befb99db5ed45cde5dcdcfecb860df06003b3;hb=35cbacdb34948e328f5d360f2fd76618dd678e2f;hp=10b3bcef110a979ce2169ccf10417e470e122ba9;hpb=8a208943e21700211beee3ea64180a5a534c7d2a;p=lttng-ust.git diff --git a/libringbuffer/shm.c b/libringbuffer/shm.c index 10b3bcef..461befb9 100644 --- a/libringbuffer/shm.c +++ b/libringbuffer/shm.c @@ -34,12 +34,14 @@ #include #include #include +#include #ifdef HAVE_LIBNUMA #include #include #endif #include #include +#include "mmap.h" /* * Ensure we have the required amount of space available by writing 0 @@ -154,7 +156,7 @@ struct shm_object *_shm_object_table_alloc_shm(struct shm_object_table *table, /* memory_map: mmap */ memory_map = mmap(NULL, memory_map_size, PROT_READ | PROT_WRITE, - MAP_SHARED, shmfd, 0); + MAP_SHARED | LTTNG_MAP_POPULATE, shmfd, 0); if (memory_map == MAP_FAILED) { PERROR("mmap"); goto error_mmap; @@ -327,11 +329,6 @@ struct shm_object *shm_object_table_append_shm(struct shm_object_table *table, obj->shm_fd = shm_fd; obj->shm_fd_ownership = 1; - ret = fcntl(obj->wait_fd[1], F_SETFD, FD_CLOEXEC); - if (ret < 0) { - PERROR("fcntl"); - goto error_fcntl; - } /* The write end of the pipe needs to be non-blocking */ ret = fcntl(obj->wait_fd[1], F_SETFL, O_NONBLOCK); if (ret < 0) { @@ -341,7 +338,7 @@ struct shm_object *shm_object_table_append_shm(struct shm_object_table *table, /* memory_map: mmap */ memory_map = mmap(NULL, memory_map_size, PROT_READ | PROT_WRITE, - MAP_SHARED, shm_fd, 0); + MAP_SHARED | LTTNG_MAP_POPULATE, shm_fd, 0); if (memory_map == MAP_FAILED) { PERROR("mmap"); goto error_mmap;