projects
/
lttng-ust.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Rename struct lttng_ust_channel_ops to struct lttng_ust_channel_buffer_ops
[lttng-ust.git]
/
liblttng-ust
/
lttng-ring-buffer-client.h
diff --git
a/liblttng-ust/lttng-ring-buffer-client.h
b/liblttng-ust/lttng-ring-buffer-client.h
index 4fbfc709a19d9e8f834384aef54c0cbe3bbad2bb..84457f0a04d97ee5c1e48873b3a1a07b45cc358c 100644
(file)
--- a/
liblttng-ust/lttng-ring-buffer-client.h
+++ b/
liblttng-ust/lttng-ring-buffer-client.h
@@
-10,6
+10,7
@@
#include <stdint.h>
#include <ust-events-internal.h>
#include <stdint.h>
#include <ust-events-internal.h>
+#include <lttng/urcu/pointer.h>
#include "ust-bitfield.h"
#include "ust-compat.h"
#include "clock.h"
#include "ust-bitfield.h"
#include "ust-compat.h"
#include "clock.h"
@@
-62,6
+63,8
@@
struct packet_header {
struct lttng_client_ctx {
size_t packet_context_len;
size_t event_context_len;
struct lttng_client_ctx {
size_t packet_context_len;
size_t event_context_len;
+ struct lttng_ust_ctx *chan_ctx;
+ struct lttng_ust_ctx *event_ctx;
};
static inline uint64_t lib_ring_buffer_clock_read(struct lttng_ust_lib_ring_buffer_channel *chan)
};
static inline uint64_t lib_ring_buffer_clock_read(struct lttng_ust_lib_ring_buffer_channel *chan)
@@
-173,7
+176,6
@@
size_t record_header_size(const struct lttng_ust_lib_ring_buffer_config *config,
struct lttng_client_ctx *client_ctx)
{
struct lttng_ust_channel_buffer *lttng_chan = channel_get_private(chan);
struct lttng_client_ctx *client_ctx)
{
struct lttng_ust_channel_buffer *lttng_chan = channel_get_private(chan);
- struct lttng_ust_stack_ctx *lttng_ctx = ctx->priv;
size_t orig_offset = offset;
size_t padding;
size_t orig_offset = offset;
size_t padding;
@@
-212,9
+214,9
@@
size_t record_header_size(const struct lttng_ust_lib_ring_buffer_config *config,
padding = 0;
WARN_ON_ONCE(1);
}
padding = 0;
WARN_ON_ONCE(1);
}
- offset += ctx_get_aligned_size(offset,
lttng
_ctx->chan_ctx,
+ offset += ctx_get_aligned_size(offset,
client
_ctx->chan_ctx,
client_ctx->packet_context_len);
client_ctx->packet_context_len);
- offset += ctx_get_aligned_size(offset,
lttng
_ctx->event_ctx,
+ offset += ctx_get_aligned_size(offset,
client
_ctx->event_ctx,
client_ctx->event_context_len);
*pre_header_padding = padding;
return offset - orig_offset;
client_ctx->event_context_len);
*pre_header_padding = padding;
return offset - orig_offset;
@@
-226,6
+228,7
@@
size_t record_header_size(const struct lttng_ust_lib_ring_buffer_config *config,
static
void lttng_write_event_header_slow(const struct lttng_ust_lib_ring_buffer_config *config,
struct lttng_ust_lib_ring_buffer_ctx *ctx,
static
void lttng_write_event_header_slow(const struct lttng_ust_lib_ring_buffer_config *config,
struct lttng_ust_lib_ring_buffer_ctx *ctx,
+ struct lttng_client_ctx *client_ctx,
uint32_t event_id);
/*
uint32_t event_id);
/*
@@
-240,10
+243,10
@@
void lttng_write_event_header_slow(const struct lttng_ust_lib_ring_buffer_config
static __inline__
void lttng_write_event_header(const struct lttng_ust_lib_ring_buffer_config *config,
struct lttng_ust_lib_ring_buffer_ctx *ctx,
static __inline__
void lttng_write_event_header(const struct lttng_ust_lib_ring_buffer_config *config,
struct lttng_ust_lib_ring_buffer_ctx *ctx,
+ struct lttng_client_ctx *client_ctx,
uint32_t event_id)
{
struct lttng_ust_channel_buffer *lttng_chan = channel_get_private(ctx->chan);
uint32_t event_id)
{
struct lttng_ust_channel_buffer *lttng_chan = channel_get_private(ctx->chan);
- struct lttng_ust_stack_ctx *lttng_ctx = ctx->priv;
if (caa_unlikely(ctx->rflags))
goto slow_path;
if (caa_unlikely(ctx->rflags))
goto slow_path;
@@
-278,23
+281,23
@@
void lttng_write_event_header(const struct lttng_ust_lib_ring_buffer_config *con
WARN_ON_ONCE(1);
}
WARN_ON_ONCE(1);
}
- ctx_record(ctx, lttng_chan,
lttng
_ctx->chan_ctx, APP_CTX_ENABLED);
- ctx_record(ctx, lttng_chan,
lttng
_ctx->event_ctx, APP_CTX_ENABLED);
+ ctx_record(ctx, lttng_chan,
client
_ctx->chan_ctx, APP_CTX_ENABLED);
+ ctx_record(ctx, lttng_chan,
client
_ctx->event_ctx, APP_CTX_ENABLED);
lib_ring_buffer_align_ctx(ctx, ctx->largest_align);
return;
slow_path:
lib_ring_buffer_align_ctx(ctx, ctx->largest_align);
return;
slow_path:
- lttng_write_event_header_slow(config, ctx, event_id);
+ lttng_write_event_header_slow(config, ctx,
client_ctx,
event_id);
}
static
void lttng_write_event_header_slow(const struct lttng_ust_lib_ring_buffer_config *config,
struct lttng_ust_lib_ring_buffer_ctx *ctx,
}
static
void lttng_write_event_header_slow(const struct lttng_ust_lib_ring_buffer_config *config,
struct lttng_ust_lib_ring_buffer_ctx *ctx,
+ struct lttng_client_ctx *client_ctx,
uint32_t event_id)
{
struct lttng_ust_channel_buffer *lttng_chan = channel_get_private(ctx->chan);
uint32_t event_id)
{
struct lttng_ust_channel_buffer *lttng_chan = channel_get_private(ctx->chan);
- struct lttng_ust_stack_ctx *lttng_ctx = ctx->priv;
switch (lttng_chan->priv->header_type) {
case 1: /* compact */
switch (lttng_chan->priv->header_type) {
case 1: /* compact */
@@
-351,8
+354,8
@@
void lttng_write_event_header_slow(const struct lttng_ust_lib_ring_buffer_config
default:
WARN_ON_ONCE(1);
}
default:
WARN_ON_ONCE(1);
}
- ctx_record(ctx, lttng_chan,
lttng
_ctx->chan_ctx, APP_CTX_ENABLED);
- ctx_record(ctx, lttng_chan,
lttng
_ctx->event_ctx, APP_CTX_ENABLED);
+ ctx_record(ctx, lttng_chan,
client
_ctx->chan_ctx, APP_CTX_ENABLED);
+ ctx_record(ctx, lttng_chan,
client
_ctx->event_ctx, APP_CTX_ENABLED);
lib_ring_buffer_align_ctx(ctx, ctx->largest_align);
}
lib_ring_buffer_align_ctx(ctx, ctx->largest_align);
}
@@
-694,13
+697,16
@@
int lttng_event_reserve(struct lttng_ust_lib_ring_buffer_ctx *ctx,
{
struct lttng_ust_channel_buffer *lttng_chan = channel_get_private(ctx->chan);
struct lttng_ust_stack_ctx *lttng_ctx = ctx->priv;
{
struct lttng_ust_channel_buffer *lttng_chan = channel_get_private(ctx->chan);
struct lttng_ust_stack_ctx *lttng_ctx = ctx->priv;
+ struct lttng_ust_event_recorder *event_recorder = lttng_ctx->event_recorder;
struct lttng_client_ctx client_ctx;
int ret, cpu;
struct lttng_client_ctx client_ctx;
int ret, cpu;
+ client_ctx.chan_ctx = lttng_ust_rcu_dereference(lttng_chan->priv->ctx);
+ client_ctx.event_ctx = lttng_ust_rcu_dereference(event_recorder->priv->ctx);
/* Compute internal size of context structures. */
/* Compute internal size of context structures. */
- ctx_get_struct_size(
lttng_ctx->
chan_ctx, &client_ctx.packet_context_len,
+ ctx_get_struct_size(
client_ctx.
chan_ctx, &client_ctx.packet_context_len,
APP_CTX_ENABLED);
APP_CTX_ENABLED);
- ctx_get_struct_size(
lttng_ctx->
event_ctx, &client_ctx.event_context_len,
+ ctx_get_struct_size(
client_ctx.
event_ctx, &client_ctx.event_context_len,
APP_CTX_ENABLED);
cpu = lib_ring_buffer_get_cpu(&client_config);
APP_CTX_ENABLED);
cpu = lib_ring_buffer_get_cpu(&client_config);
@@
-729,7
+735,7
@@
int lttng_event_reserve(struct lttng_ust_lib_ring_buffer_ctx *ctx,
ret = -EPERM;
goto put;
}
ret = -EPERM;
goto put;
}
- lttng_write_event_header(&client_config, ctx, event_id);
+ lttng_write_event_header(&client_config, ctx,
&client_ctx,
event_id);
return 0;
put:
lib_ring_buffer_put_cpu(&client_config);
return 0;
put:
lib_ring_buffer_put_cpu(&client_config);
@@
-757,6
+763,13
@@
void lttng_event_strcpy(struct lttng_ust_lib_ring_buffer_ctx *ctx, const char *s
lib_ring_buffer_strcpy(&client_config, ctx, src, len, '#');
}
lib_ring_buffer_strcpy(&client_config, ctx, src, len, '#');
}
+static
+void lttng_event_strcpy_pad(struct lttng_ust_lib_ring_buffer_ctx *ctx,
+ const char *src, size_t len)
+{
+ lib_ring_buffer_strcpy(&client_config, ctx, src, len, '\0');
+}
+
#if 0
static
wait_queue_head_t *lttng_get_reader_wait_queue(struct lttng_ust_lib_ring_buffer_channel *chan)
#if 0
static
wait_queue_head_t *lttng_get_reader_wait_queue(struct lttng_ust_lib_ring_buffer_channel *chan)
@@
-806,8
+819,8
@@
int lttng_flush_buffer(struct lttng_ust_lib_ring_buffer_channel *chan,
static struct lttng_transport lttng_relay_transport = {
.name = "relay-" RING_BUFFER_MODE_TEMPLATE_STRING "-mmap",
.ops = {
static struct lttng_transport lttng_relay_transport = {
.name = "relay-" RING_BUFFER_MODE_TEMPLATE_STRING "-mmap",
.ops = {
- .struct_size = sizeof(struct lttng_ust_channel_ops),
- .priv = __LTTNG_COMPOUND_LITERAL(struct lttng_ust_channel_ops_private, {
+ .struct_size = sizeof(struct lttng_ust_channel_
buffer_
ops),
+ .priv = __LTTNG_COMPOUND_LITERAL(struct lttng_ust_channel_
buffer_
ops_private, {
.pub = <tng_relay_transport.ops,
.channel_create = _channel_create,
.channel_destroy = lttng_channel_destroy,
.pub = <tng_relay_transport.ops,
.channel_create = _channel_create,
.channel_destroy = lttng_channel_destroy,
@@
-820,6
+833,7
@@
static struct lttng_transport lttng_relay_transport = {
.event_commit = lttng_event_commit,
.event_write = lttng_event_write,
.event_strcpy = lttng_event_strcpy,
.event_commit = lttng_event_commit,
.event_write = lttng_event_write,
.event_strcpy = lttng_event_strcpy,
+ .event_strcpy_pad = lttng_event_strcpy_pad,
},
.client_config = &client_config,
};
},
.client_config = &client_config,
};
This page took
0.025378 seconds
and
4
git commands to generate.