trace: remove vcpu_id from the TraceEvent structure
This does involve temporarily stubbing out some helper functions before we excise the rest of the code. Reviewed-by: Philippe Mathieu-Daudé <philmd@linaro.org> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Richard Henderson <richard.henderson@linaro.org> Signed-off-by: Alex Bennée <alex.bennee@linaro.org> Message-id: 20230526165401.574474-4-alex.bennee@linaro.org Message-Id: <20230524133952.3971948-4-alex.bennee@linaro.org> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
78f314cf83
commit
7103201370
@ -32,19 +32,13 @@ def generate(events, backend, group):
|
|||||||
out('uint16_t %s;' % e.api(e.QEMU_DSTATE))
|
out('uint16_t %s;' % e.api(e.QEMU_DSTATE))
|
||||||
|
|
||||||
for e in events:
|
for e in events:
|
||||||
if "vcpu" in e.properties:
|
|
||||||
vcpu_id = 0
|
|
||||||
else:
|
|
||||||
vcpu_id = "TRACE_VCPU_EVENT_NONE"
|
|
||||||
out('TraceEvent %(event)s = {',
|
out('TraceEvent %(event)s = {',
|
||||||
' .id = 0,',
|
' .id = 0,',
|
||||||
' .vcpu_id = %(vcpu_id)s,',
|
|
||||||
' .name = \"%(name)s\",',
|
' .name = \"%(name)s\",',
|
||||||
' .sstate = %(sstate)s,',
|
' .sstate = %(sstate)s,',
|
||||||
' .dstate = &%(dstate)s ',
|
' .dstate = &%(dstate)s ',
|
||||||
'};',
|
'};',
|
||||||
event = e.api(e.QEMU_EVENT),
|
event = e.api(e.QEMU_EVENT),
|
||||||
vcpu_id = vcpu_id,
|
|
||||||
name = e.name,
|
name = e.name,
|
||||||
sstate = "TRACE_%s_ENABLED" % e.name.upper(),
|
sstate = "TRACE_%s_ENABLED" % e.name.upper(),
|
||||||
dstate = e.api(e.QEMU_DSTATE))
|
dstate = e.api(e.QEMU_DSTATE))
|
||||||
|
@ -74,16 +74,7 @@ def generate(events, backend, group):
|
|||||||
|
|
||||||
out('}')
|
out('}')
|
||||||
|
|
||||||
# tracer wrapper with checks (per-vCPU tracing)
|
cond = "true"
|
||||||
if "vcpu" in e.properties:
|
|
||||||
trace_cpu = next(iter(e.args))[1]
|
|
||||||
cond = "trace_event_get_vcpu_state(%(cpu)s,"\
|
|
||||||
" TRACE_%(id)s)"\
|
|
||||||
% dict(
|
|
||||||
cpu=trace_cpu,
|
|
||||||
id=e.name.upper())
|
|
||||||
else:
|
|
||||||
cond = "true"
|
|
||||||
|
|
||||||
out('',
|
out('',
|
||||||
'static inline void %(api)s(%(args)s)',
|
'static inline void %(api)s(%(args)s)',
|
||||||
|
@ -27,12 +27,12 @@ static inline uint32_t trace_event_get_id(TraceEvent *ev)
|
|||||||
|
|
||||||
static inline uint32_t trace_event_get_vcpu_id(TraceEvent *ev)
|
static inline uint32_t trace_event_get_vcpu_id(TraceEvent *ev)
|
||||||
{
|
{
|
||||||
return ev->vcpu_id;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline bool trace_event_is_vcpu(TraceEvent *ev)
|
static inline bool trace_event_is_vcpu(TraceEvent *ev)
|
||||||
{
|
{
|
||||||
return ev->vcpu_id != TRACE_VCPU_EVENT_NONE;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
static inline const char * trace_event_get_name(TraceEvent *ev)
|
static inline const char * trace_event_get_name(TraceEvent *ev)
|
||||||
|
@ -68,16 +68,6 @@ void trace_event_register_group(TraceEvent **events)
|
|||||||
size_t i;
|
size_t i;
|
||||||
for (i = 0; events[i] != NULL; i++) {
|
for (i = 0; events[i] != NULL; i++) {
|
||||||
events[i]->id = next_id++;
|
events[i]->id = next_id++;
|
||||||
if (events[i]->vcpu_id == TRACE_VCPU_EVENT_NONE) {
|
|
||||||
continue;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (likely(next_vcpu_id < CPU_TRACE_DSTATE_MAX_EVENTS)) {
|
|
||||||
events[i]->vcpu_id = next_vcpu_id++;
|
|
||||||
} else {
|
|
||||||
warn_report("too many vcpu trace events; dropping '%s'",
|
|
||||||
events[i]->name);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
event_groups = g_renew(TraceEventGroup, event_groups, nevent_groups + 1);
|
event_groups = g_renew(TraceEventGroup, event_groups, nevent_groups + 1);
|
||||||
event_groups[nevent_groups].events = events;
|
event_groups[nevent_groups].events = events;
|
||||||
|
@ -19,7 +19,6 @@
|
|||||||
/**
|
/**
|
||||||
* TraceEvent:
|
* TraceEvent:
|
||||||
* @id: Unique event identifier.
|
* @id: Unique event identifier.
|
||||||
* @vcpu_id: Unique per-vCPU event identifier.
|
|
||||||
* @name: Event name.
|
* @name: Event name.
|
||||||
* @sstate: Static tracing state.
|
* @sstate: Static tracing state.
|
||||||
* @dstate: Dynamic tracing state
|
* @dstate: Dynamic tracing state
|
||||||
@ -33,7 +32,6 @@
|
|||||||
*/
|
*/
|
||||||
typedef struct TraceEvent {
|
typedef struct TraceEvent {
|
||||||
uint32_t id;
|
uint32_t id;
|
||||||
uint32_t vcpu_id;
|
|
||||||
const char * name;
|
const char * name;
|
||||||
const bool sstate;
|
const bool sstate;
|
||||||
uint16_t *dstate;
|
uint16_t *dstate;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user