From d87aa138039a4be6d705793fd3e397c69c52405a Mon Sep 17 00:00:00 2001 From: Stefan Hajnoczi Date: Mon, 31 Jul 2017 15:07:18 +0100 Subject: trace: add trace_event_get_state_backends() Code that checks dstate is unaware of SystemTap and LTTng UST dstate, so the following trace event will not fire when solely enabled by SystemTap or LTTng UST: if (trace_event_get_state(TRACE_MY_EVENT)) { str = g_strdup_printf("Expensive string to generate ...", ...); trace_my_event(str); g_free(str); } Add trace_event_get_state_backends() to fetch backend dstate. Those backends that use QEMU dstate fetch it as part of generate_h_backend_dstate(). Update existing trace_event_get_state() callers to use trace_event_get_state_backends() instead. Signed-off-by: Stefan Hajnoczi Message-id: 20170731140718.22010-3-stefanha@redhat.com Signed-off-by: Stefan Hajnoczi --- trace/control.h | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'trace/control.h') diff --git a/trace/control.h b/trace/control.h index b931824d60..1903e22975 100644 --- a/trace/control.h +++ b/trace/control.h @@ -96,7 +96,7 @@ static const char * trace_event_get_name(TraceEvent *ev); * trace_event_get_state: * @id: Event identifier name. * - * Get the tracing state of an event (both static and dynamic). + * Get the tracing state of an event, both static and the QEMU dynamic state. * * If the event has the disabled property, the check will have no performance * impact. @@ -104,6 +104,22 @@ static const char * trace_event_get_name(TraceEvent *ev); #define trace_event_get_state(id) \ ((id ##_ENABLED) && trace_event_get_state_dynamic_by_id(id)) +/** + * trace_event_get_state_backends: + * @id: Event identifier name. + * + * Get the tracing state of an event, both static and dynamic state from all + * compiled-in backends. + * + * If the event has the disabled property, the check will have no performance + * impact. + * + * Returns: true if at least one backend has the event enabled and the event + * does not have the disabled property. + */ +#define trace_event_get_state_backends(id) \ + ((id ##_ENABLED) && id ##_BACKEND_DSTATE()) + /** * trace_event_get_vcpu_state: * @vcpu: Target vCPU. -- cgit v1.2.1