|
@@ -1,87 +0,0 @@
|
|
-Make sync_file_range() usage optional
|
|
|
|
-
|
|
|
|
-Under uClibc, sync_file_range() is not available under all
|
|
|
|
-architectures, so we fall back to fdatasync() in this case.
|
|
|
|
-
|
|
|
|
-Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
|
|
|
|
-
|
|
|
|
-Index: lttng-tools-2.0-pre15/configure.ac
|
|
|
|
-===================================================================
|
|
|
|
---- lttng-tools-2.0-pre15.orig/configure.ac 2012-02-01 16:31:31.140978817 +0100
|
|
|
|
-+++ lttng-tools-2.0-pre15/configure.ac 2012-02-01 16:31:42.110783708 +0100
|
|
|
|
-@@ -96,7 +96,7 @@
|
|
|
|
-
|
|
|
|
- AM_CONDITIONAL([HAVE_LIBLTTNG_UST_CTL], [ test "x$ac_cv_lib_lttng_ust_ctl_ustctl_create_session" = "xyes" ])
|
|
|
|
-
|
|
|
|
--AC_CHECK_FUNCS([sched_getcpu sysconf])
|
|
|
|
-+AC_CHECK_FUNCS([sched_getcpu sysconf sync_file_range])
|
|
|
|
-
|
|
|
|
- # Option to only build the consumer daemon and its libraries
|
|
|
|
- AC_ARG_WITH([consumerd-only],
|
|
|
|
-Index: lttng-tools-2.0-pre15/liblttng-consumer/lttng-consumer.c
|
|
|
|
-===================================================================
|
|
|
|
---- lttng-tools-2.0-pre15.orig/liblttng-consumer/lttng-consumer.c 2012-02-01 16:36:00.876292596 +0100
|
|
|
|
-+++ lttng-tools-2.0-pre15/liblttng-consumer/lttng-consumer.c 2012-02-01 16:36:23.435901163 +0100
|
|
|
|
-@@ -527,11 +527,15 @@
|
|
|
|
- if (orig_offset < stream->chan->max_sb_size) {
|
|
|
|
- return;
|
|
|
|
- }
|
|
|
|
-+#ifdef HAVE_SYNC_FILE_RANGE
|
|
|
|
- sync_file_range(outfd, orig_offset - stream->chan->max_sb_size,
|
|
|
|
- stream->chan->max_sb_size,
|
|
|
|
- SYNC_FILE_RANGE_WAIT_BEFORE
|
|
|
|
- | SYNC_FILE_RANGE_WRITE
|
|
|
|
- | SYNC_FILE_RANGE_WAIT_AFTER);
|
|
|
|
-+#else
|
|
|
|
-+ fdatasync(outfd);
|
|
|
|
-+#endif
|
|
|
|
- /*
|
|
|
|
- * Give hints to the kernel about how we access the file:
|
|
|
|
- * POSIX_FADV_DONTNEED : we won't re-access data in a near future after
|
|
|
|
-Index: lttng-tools-2.0-pre15/liblttng-kconsumer/lttng-kconsumer.c
|
|
|
|
-===================================================================
|
|
|
|
---- lttng-tools-2.0-pre15.orig/liblttng-kconsumer/lttng-kconsumer.c 2012-02-01 16:36:36.215679416 +0100
|
|
|
|
-+++ lttng-tools-2.0-pre15/liblttng-kconsumer/lttng-kconsumer.c 2012-02-01 16:59:08.622203348 +0100
|
|
|
|
-@@ -71,8 +71,12 @@
|
|
|
|
- goto end;
|
|
|
|
- }
|
|
|
|
- /* This won't block, but will start writeout asynchronously */
|
|
|
|
-+#ifdef HAVE_SYNC_FILE_RANGE
|
|
|
|
- sync_file_range(outfd, stream->out_fd_offset, ret,
|
|
|
|
- SYNC_FILE_RANGE_WRITE);
|
|
|
|
-+#else
|
|
|
|
-+ fdatasync(outfd);
|
|
|
|
-+#endif
|
|
|
|
- stream->out_fd_offset += ret;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-@@ -121,8 +125,12 @@
|
|
|
|
- }
|
|
|
|
- len -= ret;
|
|
|
|
- /* This won't block, but will start writeout asynchronously */
|
|
|
|
-+#ifdef HAVE_SYNC_FILE_RANGE
|
|
|
|
- sync_file_range(outfd, stream->out_fd_offset, ret,
|
|
|
|
- SYNC_FILE_RANGE_WRITE);
|
|
|
|
-+#else
|
|
|
|
-+ fdatasync(outfd);
|
|
|
|
-+#endif
|
|
|
|
- stream->out_fd_offset += ret;
|
|
|
|
- }
|
|
|
|
- lttng_consumer_sync_trace_file(stream, orig_offset);
|
|
|
|
-Index: lttng-tools-2.0-pre15/liblttng-ustconsumer/lttng-ustconsumer.c
|
|
|
|
-===================================================================
|
|
|
|
---- lttng-tools-2.0-pre15.orig/liblttng-ustconsumer/lttng-ustconsumer.c 2012-02-01 16:37:11.495067263 +0100
|
|
|
|
-+++ lttng-tools-2.0-pre15/liblttng-ustconsumer/lttng-ustconsumer.c 2012-02-01 16:37:31.224724916 +0100
|
|
|
|
-@@ -70,8 +70,12 @@
|
|
|
|
- goto end;
|
|
|
|
- }
|
|
|
|
- /* This won't block, but will start writeout asynchronously */
|
|
|
|
-+#ifdef HAVE_SYNC_FILE_RANGE
|
|
|
|
- sync_file_range(outfd, stream->out_fd_offset, ret,
|
|
|
|
- SYNC_FILE_RANGE_WRITE);
|
|
|
|
-+#else
|
|
|
|
-+ fdatasync(outfd);
|
|
|
|
-+#endif
|
|
|
|
- stream->out_fd_offset += ret;
|
|
|
|
- }
|
|
|
|
-
|
|
|