Performance: cache the backend pages pointer in context
[lttng-ust.git] / liblttng-ust / lttng-ring-buffer-metadata-client.h
index f3c4a67c8843ea0e9514ff994e04ed16ef979c08..af5162f6e8cd23d944f92555c95146205016da22 100644 (file)
@@ -240,7 +240,18 @@ void lttng_channel_destroy(struct lttng_channel *chan)
 static
 int lttng_event_reserve(struct lttng_ust_lib_ring_buffer_ctx *ctx, uint32_t event_id)
 {
-       return lib_ring_buffer_reserve(&client_config, ctx);
+       int ret;
+
+       ret = lib_ring_buffer_reserve(&client_config, ctx);
+       if (ret)
+               return ret;
+       if (caa_likely(ctx->ctx_len
+                       >= sizeof(struct lttng_ust_lib_ring_buffer_ctx))) {
+               if (lib_ring_buffer_backend_get_pages(&client_config, ctx,
+                               &ctx->backend_pages))
+                       return -EPERM;
+       }
+       return 0;
 }
 
 static
This page took 0.022786 seconds and 4 git commands to generate.