All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH lttng-tools 2/2] Cleanup: remove "disabled" flag for new release cycle
       [not found] <1415834313-10400-1-git-send-email-mathieu.desnoyers@efficios.com>
@ 2014-11-12 23:18 ` Mathieu Desnoyers
       [not found] ` <1415834313-10400-2-git-send-email-mathieu.desnoyers@efficios.com>
  2014-11-17 17:05 ` [PATCH lttng-tools 1/2] Fix: filter attach vs event enable race Jérémie Galarneau
  2 siblings, 0 replies; 3+ messages in thread
From: Mathieu Desnoyers @ 2014-11-12 23:18 UTC (permalink / raw)
  To: jgalar; +Cc: lttng-dev

Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
---
 src/bin/lttng-sessiond/trace-ust.c |  5 -----
 src/bin/lttng-sessiond/ust-app.c   | 21 ---------------------
 2 files changed, 26 deletions(-)

diff --git a/src/bin/lttng-sessiond/trace-ust.c b/src/bin/lttng-sessiond/trace-ust.c
index ac980fd..1f6fd52 100644
--- a/src/bin/lttng-sessiond/trace-ust.c
+++ b/src/bin/lttng-sessiond/trace-ust.c
@@ -419,11 +419,6 @@ struct ltt_ust_event *trace_ust_create_event(struct lttng_event *ev,
 		ERR("Unknown ust loglevel type (%d)", ev->loglevel_type);
 		goto error_free_event;
 	}
-	/*
-	 * Fix for enabler race. Enable is now done explicitly by
-	 * sessiond after setting filter.
-	 */
-	lue->attr.disabled = 1;
 
 	/* Same layout. */
 	lue->filter_expression = filter_expression;
diff --git a/src/bin/lttng-sessiond/ust-app.c b/src/bin/lttng-sessiond/ust-app.c
index 7e4bf94..c2d2074 100644
--- a/src/bin/lttng-sessiond/ust-app.c
+++ b/src/bin/lttng-sessiond/ust-app.c
@@ -1471,27 +1471,6 @@ int create_ust_event(struct ust_app *app, struct ust_app_session *ua_sess,
 			}
 			goto error;
 		}
-	} else {
-		ret = disable_ust_event(app, ua_sess, ua_event);
-		if (ret < 0) {
-			/*
-			 * If we hit an EPERM, something is wrong with our disable call. If
-			 * we get an EEXIST, there is a problem on the tracer side since we
-			 * just created it.
-			 */
-			switch (ret) {
-			case -LTTNG_UST_ERR_PERM:
-				/* Code flow problem */
-				assert(0);
-			case -LTTNG_UST_ERR_EXIST:
-				/* It's OK for our use case. */
-				ret = 0;
-				break;
-			default:
-				break;
-			}
-			goto error;
-		}
 	}
 
 error:
-- 
2.1.1

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH lttng-tools 2/2] Cleanup: remove "disabled" flag for new release cycle
       [not found] ` <1415834313-10400-2-git-send-email-mathieu.desnoyers@efficios.com>
@ 2014-11-17 17:04   ` Jérémie Galarneau
  0 siblings, 0 replies; 3+ messages in thread
From: Jérémie Galarneau @ 2014-11-17 17:04 UTC (permalink / raw)
  To: Mathieu Desnoyers; +Cc: lttng-dev, Jeremie Galarneau

Merged, thanks!

Jérémie

On Wed, Nov 12, 2014 at 6:18 PM, Mathieu Desnoyers
<mathieu.desnoyers@efficios.com> wrote:
> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
> ---
>  src/bin/lttng-sessiond/trace-ust.c |  5 -----
>  src/bin/lttng-sessiond/ust-app.c   | 21 ---------------------
>  2 files changed, 26 deletions(-)
>
> diff --git a/src/bin/lttng-sessiond/trace-ust.c b/src/bin/lttng-sessiond/trace-ust.c
> index ac980fd..1f6fd52 100644
> --- a/src/bin/lttng-sessiond/trace-ust.c
> +++ b/src/bin/lttng-sessiond/trace-ust.c
> @@ -419,11 +419,6 @@ struct ltt_ust_event *trace_ust_create_event(struct lttng_event *ev,
>                 ERR("Unknown ust loglevel type (%d)", ev->loglevel_type);
>                 goto error_free_event;
>         }
> -       /*
> -        * Fix for enabler race. Enable is now done explicitly by
> -        * sessiond after setting filter.
> -        */
> -       lue->attr.disabled = 1;
>
>         /* Same layout. */
>         lue->filter_expression = filter_expression;
> diff --git a/src/bin/lttng-sessiond/ust-app.c b/src/bin/lttng-sessiond/ust-app.c
> index 7e4bf94..c2d2074 100644
> --- a/src/bin/lttng-sessiond/ust-app.c
> +++ b/src/bin/lttng-sessiond/ust-app.c
> @@ -1471,27 +1471,6 @@ int create_ust_event(struct ust_app *app, struct ust_app_session *ua_sess,
>                         }
>                         goto error;
>                 }
> -       } else {
> -               ret = disable_ust_event(app, ua_sess, ua_event);
> -               if (ret < 0) {
> -                       /*
> -                        * If we hit an EPERM, something is wrong with our disable call. If
> -                        * we get an EEXIST, there is a problem on the tracer side since we
> -                        * just created it.
> -                        */
> -                       switch (ret) {
> -                       case -LTTNG_UST_ERR_PERM:
> -                               /* Code flow problem */
> -                               assert(0);
> -                       case -LTTNG_UST_ERR_EXIST:
> -                               /* It's OK for our use case. */
> -                               ret = 0;
> -                               break;
> -                       default:
> -                               break;
> -                       }
> -                       goto error;
> -               }
>         }
>
>  error:
> --
> 2.1.1
>



-- 
Jérémie Galarneau
EfficiOS Inc.
http://www.efficios.com

_______________________________________________
lttng-dev mailing list
lttng-dev@lists.lttng.org
http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH lttng-tools 1/2] Fix: filter attach vs event enable race
       [not found] <1415834313-10400-1-git-send-email-mathieu.desnoyers@efficios.com>
  2014-11-12 23:18 ` [PATCH lttng-tools 2/2] Cleanup: remove "disabled" flag for new release cycle Mathieu Desnoyers
       [not found] ` <1415834313-10400-2-git-send-email-mathieu.desnoyers@efficios.com>
@ 2014-11-17 17:05 ` Jérémie Galarneau
  2 siblings, 0 replies; 3+ messages in thread
From: Jérémie Galarneau @ 2014-11-17 17:05 UTC (permalink / raw)
  To: Mathieu Desnoyers; +Cc: lttng-dev, Jeremie Galarneau

Merged all the way back to 2.4, thanks!

Jérémie

On Wed, Nov 12, 2014 at 6:18 PM, Mathieu Desnoyers
<mathieu.desnoyers@efficios.com> wrote:
> In order to correctly handle the use-case where events are enabled
> _after_ trace is started, and _after_ applications are already being
> traced, the event should be created in a "disabled" state, so that it
> does not trace events until its filter is attached.
>
> This fix needs to be done both in lttng-tools and lttng-ust. In order to
> keep ABI compatibility between tools and ust within a stable release
> cycle, we introduce a new "disabled" within struct lttng_ust_event
> padding (previously zeroed). Newer LTTng-UST checks this flag, and
> fallback on the old racy behavior (enabling the event on creation) if it
> is unset.
>
> Therefore, old session daemon works with newer lttng-ust of the same
> stable release, and vice-versa. However, building lttng-tools requires
> an upgraded lttng-ust, which contains the communication protocol with
> the new "disabled" field.
>
> This patch should be backported to stable-2.4, stable-2.5, stable-2.6
> branches.
>
> Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
> ---
>  src/bin/lttng-sessiond/trace-ust.c |  5 +++++
>  src/bin/lttng-sessiond/ust-app.c   | 27 ++++++++++++++++++++++++++-
>  2 files changed, 31 insertions(+), 1 deletion(-)
>
> diff --git a/src/bin/lttng-sessiond/trace-ust.c b/src/bin/lttng-sessiond/trace-ust.c
> index 1f6fd52..ac980fd 100644
> --- a/src/bin/lttng-sessiond/trace-ust.c
> +++ b/src/bin/lttng-sessiond/trace-ust.c
> @@ -419,6 +419,11 @@ struct ltt_ust_event *trace_ust_create_event(struct lttng_event *ev,
>                 ERR("Unknown ust loglevel type (%d)", ev->loglevel_type);
>                 goto error_free_event;
>         }
> +       /*
> +        * Fix for enabler race. Enable is now done explicitly by
> +        * sessiond after setting filter.
> +        */
> +       lue->attr.disabled = 1;
>
>         /* Same layout. */
>         lue->filter_expression = filter_expression;
> diff --git a/src/bin/lttng-sessiond/ust-app.c b/src/bin/lttng-sessiond/ust-app.c
> index 5ebe991..7e4bf94 100644
> --- a/src/bin/lttng-sessiond/ust-app.c
> +++ b/src/bin/lttng-sessiond/ust-app.c
> @@ -1446,7 +1446,32 @@ int create_ust_event(struct ust_app *app, struct ust_app_session *ua_sess,
>         }
>
>         /* If event not enabled, disable it on the tracer */
> -       if (ua_event->enabled == 0) {
> +       if (ua_event->enabled) {
> +               /*
> +                * We now need to explicitly enable the event, since it
> +                * is now disabled at creation.
> +                */
> +               ret = enable_ust_event(app, ua_sess, ua_event);
> +               if (ret < 0) {
> +                       /*
> +                        * If we hit an EPERM, something is wrong with our enable call. If
> +                        * we get an EEXIST, there is a problem on the tracer side since we
> +                        * just created it.
> +                        */
> +                       switch (ret) {
> +                       case -LTTNG_UST_ERR_PERM:
> +                               /* Code flow problem */
> +                               assert(0);
> +                       case -LTTNG_UST_ERR_EXIST:
> +                               /* It's OK for our use case. */
> +                               ret = 0;
> +                               break;
> +                       default:
> +                               break;
> +                       }
> +                       goto error;
> +               }
> +       } else {
>                 ret = disable_ust_event(app, ua_sess, ua_event);
>                 if (ret < 0) {
>                         /*
> --
> 2.1.1
>



-- 
Jérémie Galarneau
EfficiOS Inc.
http://www.efficios.com

_______________________________________________
lttng-dev mailing list
lttng-dev@lists.lttng.org
http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-11-17 17:06 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <1415834313-10400-1-git-send-email-mathieu.desnoyers@efficios.com>
2014-11-12 23:18 ` [PATCH lttng-tools 2/2] Cleanup: remove "disabled" flag for new release cycle Mathieu Desnoyers
     [not found] ` <1415834313-10400-2-git-send-email-mathieu.desnoyers@efficios.com>
2014-11-17 17:04   ` Jérémie Galarneau
2014-11-17 17:05 ` [PATCH lttng-tools 1/2] Fix: filter attach vs event enable race Jérémie Galarneau

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.