mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 07:43:54 -06:00
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>
This commit is contained in:
parent
fe4db84d49
commit
b7d48952c3
4 changed files with 23 additions and 5 deletions
|
@ -27,7 +27,6 @@
|
|||
#include "qemu/bitmap.h"
|
||||
#include "qemu/queue.h"
|
||||
#include "qemu/thread.h"
|
||||
#include "trace/generated-events.h"
|
||||
|
||||
typedef int (*WriteCoreDumpFunction)(const void *buf, size_t size,
|
||||
void *opaque);
|
||||
|
@ -345,8 +344,12 @@ struct CPUState {
|
|||
struct KVMState *kvm_state;
|
||||
struct kvm_run *kvm_run;
|
||||
|
||||
/* Used for events with 'vcpu' and *without* the 'disabled' properties */
|
||||
DECLARE_BITMAP(trace_dstate, TRACE_VCPU_EVENT_COUNT);
|
||||
/*
|
||||
* Used for events with 'vcpu' and *without* the 'disabled' properties.
|
||||
* Dynamically allocated based on bitmap requried to hold up to
|
||||
* trace_get_vcpu_event_count() entries.
|
||||
*/
|
||||
unsigned long *trace_dstate;
|
||||
|
||||
/* TODO Move common fields from CPUArchState here. */
|
||||
int cpu_index; /* used by alpha TCG */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue