aboutsummaryrefslogtreecommitdiffstats
path: root/package/lttng-tools/lttng-tools-2.0-pre15-no-sync-file-range-in-uclibc.patch
blob: 861686b012e393bb9e245fb360a7ab76c743895e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
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;
 	}