aboutsummaryrefslogtreecommitdiff
path: root/trace
diff options
context:
space:
mode:
authorDaniel P. Berrange <berrange@redhat.com>2016-10-04 14:35:53 +0100
committerStefan Hajnoczi <stefanha@redhat.com>2016-10-12 09:54:52 +0200
commitb7d48952c375842bd669460fd8384d90cc12286c (patch)
treec3700df92a154775df306163d8307d6a8bfe4842 /trace
parentfe4db84d49545e669806d0cce12b3aa384e04ac3 (diff)
downloadqemu-b7d48952c375842bd669460fd8384d90cc12286c.zip
qemu-b7d48952c375842bd669460fd8384d90cc12286c.tar.gz
qemu-b7d48952c375842bd669460fd8384d90cc12286c.tar.bz2
trace: dynamically allocate trace_dstate in CPUState
The CPUState struct has a bitmap tracking which VCPU events are currently active. This is indexed based on the event ID values, and sized according the maximum TraceEventVCPUID enum value. When we start dynamically assigning IDs at runtime, we can't statically declare a bitmap without making an assumption about the max event count. This problem can be solved by dynamically allocating the per-CPU dstate bitmap. Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: LluĂ­s Vilanova <vilanova@ac.upc.edu> Signed-off-by: Daniel P. Berrange <berrange@redhat.com> Message-id: 1475588159-30598-15-git-send-email-berrange@redhat.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'trace')
-rw-r--r--trace/control.c5
-rw-r--r--trace/control.h7
2 files changed, 12 insertions, 0 deletions
diff --git a/trace/control.c b/trace/control.c
index a231327..5f10e2d 100644
--- a/trace/control.c
+++ b/trace/control.c
@@ -290,3 +290,8 @@ char *trace_opt_parse(const char *optarg)
return trace_file;
}
+
+uint32_t trace_get_vcpu_event_count(void)
+{
+ return TRACE_VCPU_EVENT_COUNT;
+}
diff --git a/trace/control.h b/trace/control.h
index 3f30a0c..69635bf 100644
--- a/trace/control.h
+++ b/trace/control.h
@@ -232,6 +232,13 @@ extern QemuOptsList qemu_trace_opts;
*/
char *trace_opt_parse(const char *optarg);
+/**
+ * trace_get_vcpu_event_count:
+ *
+ * Return the number of known vcpu-specific events
+ */
+uint32_t trace_get_vcpu_event_count(void);
+
#include "trace/control-internal.h"