Fix: add missing UST perf counter support check
[lttng-tools.git] / src / bin / lttng-sessiond / trace-ust.c
index b9fdf9f0af213bbf9f402b297df9dbc9308ce9b1..4f06f1b06d149635080e99edc616978cca3ae7ba 100644 (file)
@@ -470,7 +470,12 @@ int trace_ust_context_type_event_to_ust(enum lttng_event_context_type type)
                utype = LTTNG_UST_CONTEXT_IP;
                break;
        case LTTNG_EVENT_CONTEXT_PERF_THREAD_COUNTER:
-               utype = LTTNG_UST_CONTEXT_PERF_THREAD_COUNTER;
+               if (!ustctl_has_perf_counters()) {
+                       utype = -1;
+                       WARN("Perf counters not implemented in UST");
+               } else {
+                       utype = LTTNG_UST_CONTEXT_PERF_THREAD_COUNTER;
+               }
                break;
        default:
                ERR("Invalid UST context");
@@ -759,11 +764,15 @@ void trace_ust_destroy_session(struct ltt_ust_session *session)
 
        rcu_read_lock();
        cds_lfht_for_each_entry(session->agents->ht, &iter.iter, agt, node.node) {
-               lttng_ht_del(session->agents, &iter);
+               int ret = lttng_ht_del(session->agents, &iter);
+
+               assert(!ret);
                agent_destroy(agt);
        }
        rcu_read_unlock();
 
+       ht_cleanup_push(session->agents);
+
        /* Cleanup UID buffer registry object(s). */
        cds_list_for_each_entry_safe(reg, sreg, &session->buffer_reg_uid_list,
                        lnode) {
This page took 0.023555 seconds and 4 git commands to generate.