projects
/
lttng-modules.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: Define lttng-tracer metadata only once
[lttng-modules.git]
/
lttng-ring-buffer-client.h
diff --git
a/lttng-ring-buffer-client.h
b/lttng-ring-buffer-client.h
index 34493333bcc8a0055db535cf262a319e09b92021..d57dda192019a6f8bf78c825ff12bf7fddd01197 100644
(file)
--- a/
lttng-ring-buffer-client.h
+++ b/
lttng-ring-buffer-client.h
@@
-57,6
+57,7
@@
struct packet_header {
*/
uint8_t uuid[16];
uint32_t stream_id;
*/
uint8_t uuid[16];
uint32_t stream_id;
+ uint64_t stream_instance_id;
struct {
/* Stream packet context */
struct {
/* Stream packet context */
@@
-123,13
+124,14
@@
void ctx_record(struct lib_ring_buffer_ctx *bufctx,
* contains.
*/
static __inline__
* contains.
*/
static __inline__
-
unsigned char
record_header_size(const struct lib_ring_buffer_config *config,
+
size_t
record_header_size(const struct lib_ring_buffer_config *config,
struct channel *chan, size_t offset,
size_t *pre_header_padding,
struct lib_ring_buffer_ctx *ctx)
{
struct lttng_channel *lttng_chan = channel_get_private(chan);
struct channel *chan, size_t offset,
size_t *pre_header_padding,
struct lib_ring_buffer_ctx *ctx)
{
struct lttng_channel *lttng_chan = channel_get_private(chan);
- struct lttng_event *event = ctx->priv;
+ struct lttng_probe_ctx *lttng_probe_ctx = ctx->priv;
+ struct lttng_event *event = lttng_probe_ctx->event;
size_t orig_offset = offset;
size_t padding;
size_t orig_offset = offset;
size_t padding;
@@
-197,7
+199,8
@@
void lttng_write_event_header(const struct lib_ring_buffer_config *config,
uint32_t event_id)
{
struct lttng_channel *lttng_chan = channel_get_private(ctx->chan);
uint32_t event_id)
{
struct lttng_channel *lttng_chan = channel_get_private(ctx->chan);
- struct lttng_event *event = ctx->priv;
+ struct lttng_probe_ctx *lttng_probe_ctx = ctx->priv;
+ struct lttng_event *event = lttng_probe_ctx->event;
if (unlikely(ctx->rflags))
goto slow_path;
if (unlikely(ctx->rflags))
goto slow_path;
@@
-248,7
+251,8
@@
void lttng_write_event_header_slow(const struct lib_ring_buffer_config *config,
uint32_t event_id)
{
struct lttng_channel *lttng_chan = channel_get_private(ctx->chan);
uint32_t event_id)
{
struct lttng_channel *lttng_chan = channel_get_private(ctx->chan);
- struct lttng_event *event = ctx->priv;
+ struct lttng_probe_ctx *lttng_probe_ctx = ctx->priv;
+ struct lttng_event *event = lttng_probe_ctx->event;
switch (lttng_chan->header_type) {
case 1: /* compact */
switch (lttng_chan->header_type) {
case 1: /* compact */
@@
-352,6
+356,7
@@
static void client_buffer_begin(struct lib_ring_buffer *buf, u64 tsc,
header->magic = CTF_MAGIC_NUMBER;
memcpy(header->uuid, session->uuid.b, sizeof(session->uuid));
header->stream_id = lttng_chan->id;
header->magic = CTF_MAGIC_NUMBER;
memcpy(header->uuid, session->uuid.b, sizeof(session->uuid));
header->stream_id = lttng_chan->id;
+ header->stream_instance_id = buf->backend.cpu;
header->ctx.timestamp_begin = tsc;
header->ctx.timestamp_end = 0;
header->ctx.content_size = ~0ULL; /* for debugging */
header->ctx.timestamp_begin = tsc;
header->ctx.timestamp_end = 0;
header->ctx.content_size = ~0ULL; /* for debugging */
@@
-485,6
+490,17
@@
static int client_sequence_number(const struct lib_ring_buffer_config *config,
return 0;
}
return 0;
}
+static
+int client_instance_id(const struct lib_ring_buffer_config *config,
+ struct lib_ring_buffer *buf,
+ uint64_t *id)
+{
+ struct packet_header *header = client_packet_header(config, buf);
+ *id = header->stream_instance_id;
+
+ return 0;
+}
+
static const struct lib_ring_buffer_config client_config = {
.cb.ring_buffer_clock_read = client_ring_buffer_clock_read,
.cb.record_header_size = client_record_header_size,
static const struct lib_ring_buffer_config client_config = {
.cb.ring_buffer_clock_read = client_ring_buffer_clock_read,
.cb.record_header_size = client_record_header_size,
@@
-716,6
+732,7
@@
static struct lttng_transport lttng_relay_transport = {
.stream_id = client_stream_id,
.current_timestamp = client_current_timestamp,
.sequence_number = client_sequence_number,
.stream_id = client_stream_id,
.current_timestamp = client_current_timestamp,
.sequence_number = client_sequence_number,
+ .instance_id = client_instance_id,
},
};
},
};
This page took
0.02616 seconds
and
4
git commands to generate.