trace: Fix early setting of events with the "vcpu" property
Events with the "vcpu" property need to be set globally (i.e., as if they didn't have that property) while we have not yet created any vCPU. Signed-off-by: Lluís Vilanova <vilanova@ac.upc.edu> Message-id: 149838891852.10366.11525912227070211356.stgit@frigg.lan Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
6b06e3e49e
commit
f5956d71fb
@ -1,7 +1,7 @@
|
||||
/*
|
||||
* Interface for configuring and controlling the state of tracing events.
|
||||
*
|
||||
* Copyright (C) 2014-2016 Lluís Vilanova <vilanova@ac.upc.edu>
|
||||
* Copyright (C) 2014-2017 Lluís Vilanova <vilanova@ac.upc.edu>
|
||||
*
|
||||
* This work is licensed under the terms of the GNU GPL, version 2 or later.
|
||||
* See the COPYING file in the top-level directory.
|
||||
@ -38,12 +38,16 @@ void trace_event_set_state_dynamic(TraceEvent *ev, bool state)
|
||||
{
|
||||
CPUState *vcpu;
|
||||
assert(trace_event_get_state_static(ev));
|
||||
if (trace_event_is_vcpu(ev)) {
|
||||
if (trace_event_is_vcpu(ev) && likely(first_cpu != NULL)) {
|
||||
CPU_FOREACH(vcpu) {
|
||||
trace_event_set_vcpu_state_dynamic(vcpu, ev, state);
|
||||
}
|
||||
} else {
|
||||
/* Without the "vcpu" property, dstate can only be 1 or 0 */
|
||||
/*
|
||||
* Without the "vcpu" property, dstate can only be 1 or 0. With it, we
|
||||
* haven't instantiated any vCPU yet, so we will set a global state
|
||||
* instead, and trace_init_vcpu will reconcile it afterwards.
|
||||
*/
|
||||
bool state_pre = *ev->dstate;
|
||||
if (state_pre != state) {
|
||||
if (state) {
|
||||
|
Loading…
Reference in New Issue
Block a user