To extract the lost packets and discarded events counters in per-pid channels when an application unregisters, we need a reference to the parent channel and session. These pointers are only there as reference and do not provide any kind of ownership.
Signed-off-by: Julien Desfossez <[email protected]> --- src/bin/lttng-sessiond/ust-app.c | 5 +++++ src/bin/lttng-sessiond/ust-app.h | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/src/bin/lttng-sessiond/ust-app.c b/src/bin/lttng-sessiond/ust-app.c index 6f032da..08b6a76 100644 --- a/src/bin/lttng-sessiond/ust-app.c +++ b/src/bin/lttng-sessiond/ust-app.c @@ -1702,6 +1702,11 @@ static void shadow_copy_session(struct ust_app_session *ua_sess, * channel and not metadata. */ ua_chan->attr.type = LTTNG_UST_CHAN_PER_CPU; + /* + * Back pointers to the ust session and channel. + */ + ua_chan->usess = usess; + ua_chan->uchan = uchan; lttng_ht_add_unique_str(ua_sess->channels, &ua_chan->node); } diff --git a/src/bin/lttng-sessiond/ust-app.h b/src/bin/lttng-sessiond/ust-app.h index 66cda8c..38eaf6d 100644 --- a/src/bin/lttng-sessiond/ust-app.h +++ b/src/bin/lttng-sessiond/ust-app.h @@ -168,6 +168,12 @@ struct ust_app_channel { struct lttng_ht_node_ulong ust_objd_node; /* For delayed reclaim */ struct rcu_head rcu_head; + /* + * Back pointers to the parent channel and session, no ownership, + * just references. + */ + struct ltt_ust_channel *uchan; + struct ltt_ust_session *usess; }; struct ust_app_session { -- 1.9.1 _______________________________________________ lttng-dev mailing list [email protected] http://lists.lttng.org/cgi-bin/mailman/listinfo/lttng-dev
