From: Jonathan Rajotte Date: Mon, 16 Dec 2019 21:01:03 +0000 (-0500) Subject: Generalize set_ust_event_exclusion to support multiple types of ust object X-Git-Tag: v2.13.0-rc1~389 X-Git-Url: https://git.lttng.org./?a=commitdiff_plain;h=c0901ffacb9f4d0b79c124a6bd7c778ada506b36;p=lttng-tools.git Generalize set_ust_event_exclusion to support multiple types of ust object Signed-off-by: Jonathan Rajotte Signed-off-by: Jérémie Galarneau Change-Id: Ibe8f6b2c459afc698971b23b3f1a72d0a45e036f --- diff --git a/src/bin/lttng-sessiond/ust-app.c b/src/bin/lttng-sessiond/ust-app.c index 8372a5dc5..8807aac26 100644 --- a/src/bin/lttng-sessiond/ust-app.c +++ b/src/bin/lttng-sessiond/ust-app.c @@ -1387,7 +1387,7 @@ error: static struct lttng_ust_event_exclusion *create_ust_exclusion_from_exclusion( - struct lttng_event_exclusion *exclusion) + const struct lttng_event_exclusion *exclusion) { struct lttng_ust_event_exclusion *ust_exclusion = NULL; size_t exclusion_alloc_size = sizeof(struct lttng_ust_event_exclusion) + @@ -1409,33 +1409,30 @@ end: /* * Set event exclusions on the tracer. */ -static -int set_ust_event_exclusion(struct ust_app_event *ua_event, - struct ust_app *app) +static int set_ust_object_exclusions(struct ust_app *app, + const struct lttng_event_exclusion *exclusions, + struct lttng_ust_object_data *ust_object) { int ret; - struct lttng_ust_event_exclusion *ust_exclusion = NULL; + struct lttng_ust_event_exclusion *ust_exclusions = NULL; - health_code_update(); + assert(exclusions && exclusions->count > 0); - if (!ua_event->exclusion || !ua_event->exclusion->count) { - ret = 0; - goto error; - } + health_code_update(); - ust_exclusion = create_ust_exclusion_from_exclusion( - ua_event->exclusion); - if (!ust_exclusion) { + ust_exclusions = create_ust_exclusion_from_exclusion( + exclusions); + if (!ust_exclusions) { ret = -LTTNG_ERR_NOMEM; goto error; } pthread_mutex_lock(&app->sock_lock); - ret = ustctl_set_exclusion(app->sock, ust_exclusion, ua_event->obj); + ret = ustctl_set_exclusion(app->sock, ust_exclusions, ust_object); pthread_mutex_unlock(&app->sock_lock); if (ret < 0) { if (ret != -EPIPE && ret != -LTTNG_UST_ERR_EXITING) { - ERR("UST app event %s exclusions failed for app (pid: %d) " - "with ret %d", ua_event->attr.name, app->pid, ret); + ERR("Failed to set UST app exclusions for object %p of app (pid: %d) " + "with ret %d", ust_object, app->pid, ret); } else { /* * This is normal behavior, an application can die during the @@ -1443,16 +1440,16 @@ int set_ust_event_exclusion(struct ust_app_event *ua_event, * continue normally. */ ret = 0; - DBG3("UST app event exclusion failed. Application is dead."); + DBG3("Failed to set UST app object exclusions. Application is dead."); } goto error; } - DBG2("UST exclusion set successfully for event %s", ua_event->name); + DBG2("UST exclusions set successfully for object %p", ust_object); error: health_code_update(); - free(ust_exclusion); + free(ust_exclusions); return ret; } @@ -1714,7 +1711,7 @@ int create_ust_event(struct ust_app *app, struct ust_app_session *ua_sess, /* Set exclusions for the event */ if (ua_event->exclusion) { - ret = set_ust_event_exclusion(ua_event, app); + ret = set_ust_object_exclusions(app, ua_event->exclusion, ua_event->obj); if (ret < 0) { goto error; }