The session daemon can receive the named metadata coming with a tracepoint. The named metadata come after the tracepoint description itself.
Signed-off-by: Geneviève Bastien <[email protected]> --- src/bin/lttng-sessiond/lttng-ust-ctl.h | 4 +++- src/bin/lttng-sessiond/ust-app.c | 13 +++++++++---- src/bin/lttng-sessiond/ust-registry.c | 8 +++++--- src/bin/lttng-sessiond/ust-registry.h | 6 +++++- 4 files changed, 22 insertions(+), 9 deletions(-) diff --git a/src/bin/lttng-sessiond/lttng-ust-ctl.h b/src/bin/lttng-sessiond/lttng-ust-ctl.h index b5acd0f..d229b68 100644 --- a/src/bin/lttng-sessiond/lttng-ust-ctl.h +++ b/src/bin/lttng-sessiond/lttng-ust-ctl.h @@ -400,7 +400,9 @@ int ustctl_recv_register_event(int sock, */ size_t *nr_fields, struct ustctl_field **fields, - char **model_emf_uri); + char **model_emf_uri, + size_t *nr_metadata, + struct ustctl_named_metadata **named_metadata); /* * Returns 0 on success, negative error value on error. diff --git a/src/bin/lttng-sessiond/ust-app.c b/src/bin/lttng-sessiond/ust-app.c index 34d4c9b..a27ebe0 100644 --- a/src/bin/lttng-sessiond/ust-app.c +++ b/src/bin/lttng-sessiond/ust-app.c @@ -4647,7 +4647,8 @@ error_rcu_unlock: */ static int add_event_ust_registry(int sock, int sobjd, int cobjd, char *name, char *sig, size_t nr_fields, struct ustctl_field *fields, int loglevel, - char *model_emf_uri) + char *model_emf_uri, size_t nr_metadata, + struct ustctl_named_metadata *named_metadata) { int ret, ret_code; uint32_t event_id = 0; @@ -4704,7 +4705,7 @@ static int add_event_ust_registry(int sock, int sobjd, int cobjd, char *name, ret_code = ust_registry_create_event(registry, chan_reg_key, sobjd, cobjd, name, sig, nr_fields, fields, loglevel, model_emf_uri, ua_sess->buffer_type, &event_id, - app); + app, nr_metadata, named_metadata); /* * The return value is returned to ustctl so in case of an error, the @@ -4764,11 +4765,14 @@ int ust_app_recv_notify(int sock) char name[LTTNG_UST_SYM_NAME_LEN], *sig, *model_emf_uri; size_t nr_fields; struct ustctl_field *fields; + size_t nr_metadata; + struct ustctl_named_metadata *named_metadata; DBG2("UST app ustctl register event received"); ret = ustctl_recv_register_event(sock, &sobjd, &cobjd, name, &loglevel, - &sig, &nr_fields, &fields, &model_emf_uri); + &sig, &nr_fields, &fields, &model_emf_uri, &nr_metadata, + &named_metadata); if (ret < 0) { if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) { ERR("UST app recv event failed with ret %d", ret); @@ -4785,7 +4789,8 @@ int ust_app_recv_notify(int sock) * to the this function. */ ret = add_event_ust_registry(sock, sobjd, cobjd, name, sig, nr_fields, - fields, loglevel, model_emf_uri); + fields, loglevel, model_emf_uri, nr_metadata, + named_metadata); if (ret < 0) { goto error; } diff --git a/src/bin/lttng-sessiond/ust-registry.c b/src/bin/lttng-sessiond/ust-registry.c index dc49416..00e1c26 100644 --- a/src/bin/lttng-sessiond/ust-registry.c +++ b/src/bin/lttng-sessiond/ust-registry.c @@ -133,7 +133,7 @@ int validate_event_fields(size_t nr_fields, struct ustctl_field *fields, static struct ust_registry_event *alloc_event(int session_objd, int channel_objd, char *name, char *sig, size_t nr_fields, struct ustctl_field *fields, int loglevel, char *model_emf_uri, - struct ust_app *app) + struct ust_app *app, size_t nr_metadata, struct ustctl_named_metadata *named_metadata) { struct ust_registry_event *event = NULL; @@ -163,6 +163,8 @@ static struct ust_registry_event *alloc_event(int session_objd, strncpy(event->name, name, sizeof(event->name)); event->name[sizeof(event->name) - 1] = '\0'; } + event->nr_metadata = nr_metadata; + event->named_metadata = named_metadata; cds_lfht_node_init(&event->node.node); error: @@ -249,7 +251,7 @@ int ust_registry_create_event(struct ust_registry_session *session, uint64_t chan_key, int session_objd, int channel_objd, char *name, char *sig, size_t nr_fields, struct ustctl_field *fields, int loglevel, char *model_emf_uri, int buffer_type, uint32_t *event_id_p, - struct ust_app *app) + struct ust_app *app, size_t nr_metadata, struct ustctl_named_metadata *named_metadata) { int ret; uint32_t event_id; @@ -286,7 +288,7 @@ int ust_registry_create_event(struct ust_registry_session *session, } event = alloc_event(session_objd, channel_objd, name, sig, nr_fields, - fields, loglevel, model_emf_uri, app); + fields, loglevel, model_emf_uri, app, nr_metadata, named_metadata); if (!event) { ret = -ENOMEM; goto error_free; diff --git a/src/bin/lttng-sessiond/ust-registry.h b/src/bin/lttng-sessiond/ust-registry.h index f195b74..183db0f 100644 --- a/src/bin/lttng-sessiond/ust-registry.h +++ b/src/bin/lttng-sessiond/ust-registry.h @@ -137,6 +137,9 @@ struct ust_registry_event { * initialize the node and the event_name/signature for the match function. */ struct lttng_ht_node_u64 node; + /* Named metadata needed by the event */ + struct ustctl_named_metadata *named_metadata; + size_t nr_metadata; }; /* @@ -226,7 +229,8 @@ int ust_registry_create_event(struct ust_registry_session *session, uint64_t chan_key, int session_objd, int channel_objd, char *name, char *sig, size_t nr_fields, struct ustctl_field *fields, int loglevel, char *model_emf_uri, int buffer_type, uint32_t *event_id_p, - struct ust_app *app); + struct ust_app *app, + size_t nr_metadata, struct ustctl_named_metadata *named_metadata); struct ust_registry_event *ust_registry_find_event( struct ust_registry_channel *chan, char *name, char *sig); void ust_registry_destroy_event(struct ust_registry_channel *chan, -- 1.8.5.3 _______________________________________________ lttng-dev mailing list [email protected] http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
