mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-12-11 16:00:50 -07:00
trace: remove global 'uint16 dstate[]' array
Instead of having a global dstate array, declare a single
'uint16 TRACE_${EVENT_NAME}_DSTATE' variable for each
trace event. Record a pointer to this variable in the
TraceEvent struct too.
By turning trace_event_get_state_dynamic_by_id into a
macro, this still hits the fast path, and cache affinity
is ensured by declaring all the uint16 vars adjacent to
each other.
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-7-git-send-email-berrange@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
599ab2f241
commit
9397740244
8 changed files with 37 additions and 39 deletions
|
|
@ -19,6 +19,12 @@
|
|||
* @vcpu_id: Unique per-vCPU event identifier.
|
||||
* @name: Event name.
|
||||
* @sstate: Static tracing state.
|
||||
* @dstate: Dynamic tracing state
|
||||
*
|
||||
* Interpretation of @dstate depends on whether the event has the 'vcpu'
|
||||
* property:
|
||||
* - false: Boolean value indicating whether the event is active.
|
||||
* - true : Integral counting the number of vCPUs that have this event enabled.
|
||||
*
|
||||
* Opaque generic description of a tracing event.
|
||||
*/
|
||||
|
|
@ -27,6 +33,7 @@ typedef struct TraceEvent {
|
|||
TraceEventVCPUID vcpu_id;
|
||||
const char * name;
|
||||
const bool sstate;
|
||||
uint16_t *dstate;
|
||||
} TraceEvent;
|
||||
|
||||
void trace_event_set_state_dynamic_init(TraceEvent *ev, bool state);
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue