Implement base-address-state tracing
[lttng-ust.git] / include / lttng / ust-tracepoint-event.h
index bb3a05d5fa8b7103f893282bc7634f7b90dc0ef1..be580307a5b3eda641fbab9414cb614ef9e5b791 100644 (file)
@@ -479,6 +479,18 @@ size_t __event_get_align__##_provider##___##_name(_TP_ARGS_PROTO(_args))      \
 #undef TP_FIELDS
 #define TP_FIELDS(...) __VA_ARGS__
 
+/*
+ * For state dump, check that "session" argument (mandatory) matches the
+ * session this event belongs to. Ensures that we write state dump data only
+ * into the started session, not into all sessions.
+ */
+#undef _TP_SESSION_CHECK
+#ifdef TP_SESSION_CHECK
+#define _TP_SESSION_CHECK(session, csession)   (session == csession)
+#else /* TP_SESSION_CHECK */
+#define _TP_SESSION_CHECK(session, csession)   1
+#endif /* TP_SESSION_CHECK */
+
 /*
  * Using twice size for filter stack data to hold size and pointer for
  * each field (worse case). For integers, max size required is 64-bit.
@@ -506,6 +518,8 @@ void __event_probe__##_provider##___##_name(_TP_ARGS_DATA_PROTO(_args))           \
                                                                              \
        if (0)                                                                \
                (void) __dynamic_len_idx;       /* don't warn if unused */    \
+       if (!_TP_SESSION_CHECK(session, __chan->session))                     \
+               return;                                                       \
        if (caa_unlikely(!CMM_ACCESS_ONCE(__chan->session->active)))          \
                return;                                                       \
        if (caa_unlikely(!CMM_ACCESS_ONCE(__chan->enabled)))                  \
This page took 0.026222 seconds and 4 git commands to generate.