Performance: cache the backend pages pointer in context
[lttng-modules.git] / lib / ringbuffer / config.h
index 67caba0646acffcfa1b99c354f8f1dc7dccc3980..60174db63a38687e256b3726e7a83dcd0af47209 100644 (file)
@@ -26,8 +26,8 @@
 
 #include <linux/types.h>
 #include <linux/percpu.h>
-#include "../align.h"
-#include "../../lttng-tracer-core.h"
+#include <lib/align.h>
+#include <lttng-tracer-core.h>
 
 struct lib_ring_buffer;
 struct channel;
@@ -106,7 +106,7 @@ struct lib_ring_buffer_client_cb {
  *
  * wakeup:
  *
- * RING_BUFFER_WAKEUP_BY_TIMER uses per-cpu deferrable timers to poll the
+ * RING_BUFFER_WAKEUP_BY_TIMER uses per-cpu timers to poll the
  * buffers and wake up readers if data is ready. Mainly useful for tracers which
  * don't want to call into the wakeup code on the tracing path. Use in
  * combination with "read_timer_interval" channel_create() argument.
@@ -200,6 +200,8 @@ struct lib_ring_buffer_ctx {
                                         */
        u64 tsc;                        /* time-stamp counter value */
        unsigned int rflags;            /* reservation flags */
+       /* Cache backend pages pointer chasing. */
+       struct lib_ring_buffer_backend_pages *backend_pages;
 };
 
 /**
@@ -223,6 +225,7 @@ void lib_ring_buffer_ctx_init(struct lib_ring_buffer_ctx *ctx,
        ctx->largest_align = largest_align;
        ctx->cpu = cpu;
        ctx->rflags = 0;
+       ctx->backend_pages = NULL;
 }
 
 /*
@@ -310,6 +313,6 @@ int lib_ring_buffer_check_config(const struct lib_ring_buffer_config *config,
        return 0;
 }
 
-#include "../../wrapper/ringbuffer/vatomic.h"
+#include <wrapper/ringbuffer/vatomic.h>
 
 #endif /* _LIB_RING_BUFFER_CONFIG_H */
This page took 0.024205 seconds and 4 git commands to generate.