add libtracing Makefile.am
[ust.git] / libtracing / relay.h
index 6cfcb077578ac20c42fc07a2a3eeb524402e22f9..4b27b5bc8a7a476e5ded96c5ff7c84cbbe4287b0 100644 (file)
@@ -320,7 +320,7 @@ extern const struct file_operations ltt_relay_file_operations;
 struct ltt_channel_buf_struct {
        /* First 32 bytes cache-hot cacheline */
        local_t offset;                 /* Current offset in the buffer */
-       local_t *commit_count;          /* Commit count per sub-buffer */
+//ust//        local_t *commit_count;          /* Commit count per sub-buffer */
        atomic_long_t consumed;         /*
                                         * Current offset in the buffer
                                         * standard atomic access (shared)
@@ -345,10 +345,17 @@ struct ltt_channel_buf_struct {
 //ust//                                         * writers
 //ust//                                         */
 //ust//        atomic_t wakeup_readers;        /* Boolean : wakeup readers waiting ? */
-       /* whether or not wake_consumer must be called; must be accessed atomically */
-       int call_wake_consumer;
-       /* the arg to pass to wake_consumer; must be accessed atomically */
-       void *wake_consumer_arg;
+       /* one byte is written to this pipe when data is available, in order
+           to wake the consumer */
+       /* portability: Single byte writes must be as quick as possible. The kernel-side
+          buffer must be large enough so the writer doesn't block. From the pipe(7)
+           man page: Since linux 2.6.11, the pipe capacity is 65536 bytes. */
+       int data_ready_fd_write;
+       /* the reading end of the pipe */
+       int data_ready_fd_read;
+
+       /* commit count per subbuffer; must be at end of struct */
+       local_t commit_count[0] ____cacheline_aligned;
 } ____cacheline_aligned;
 
 int ltt_do_get_subbuf(struct rchan_buf *buf, struct ltt_channel_buf_struct *ltt_buf, long *pconsumed_old);
This page took 0.023788 seconds and 4 git commands to generate.