mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-05 08:43:55 -06:00
trace: remove code that depends on setting vcpu
Now we no longer have any events that are for vcpus we can start excising the code from the trace control. As the vcpu parameter is encoded as part of QMP we just stub out the has_vcpu/vcpu parameters rather than alter the API. 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-8-alex.bennee@linaro.org Message-Id: <20230524133952.3971948-7-alex.bennee@linaro.org> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
parent
5485e52a33
commit
89aafcf2a7
9 changed files with 20 additions and 285 deletions
74
trace/qmp.c
74
trace/qmp.c
|
@ -13,20 +13,7 @@
|
|||
#include "control-vcpu.h"
|
||||
|
||||
|
||||
static CPUState *get_cpu(bool has_vcpu, int vcpu, Error **errp)
|
||||
{
|
||||
if (has_vcpu) {
|
||||
CPUState *cpu = qemu_get_cpu(vcpu);
|
||||
if (cpu == NULL) {
|
||||
error_setg(errp, "invalid vCPU index %u", vcpu);
|
||||
}
|
||||
return cpu;
|
||||
} else {
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
static bool check_events(bool has_vcpu, bool ignore_unavailable, bool is_pattern,
|
||||
static bool check_events(bool ignore_unavailable, bool is_pattern,
|
||||
const char *name, Error **errp)
|
||||
{
|
||||
if (!is_pattern) {
|
||||
|
@ -38,12 +25,6 @@ static bool check_events(bool has_vcpu, bool ignore_unavailable, bool is_pattern
|
|||
return false;
|
||||
}
|
||||
|
||||
/* error for non-vcpu event */
|
||||
if (has_vcpu && !trace_event_is_vcpu(ev)) {
|
||||
error_setg(errp, "event \"%s\" is not vCPU-specific", name);
|
||||
return false;
|
||||
}
|
||||
|
||||
/* error for unavailable event */
|
||||
if (!ignore_unavailable && !trace_event_get_state_static(ev)) {
|
||||
error_setg(errp, "event \"%s\" is disabled", name);
|
||||
|
@ -70,22 +51,13 @@ TraceEventInfoList *qmp_trace_event_get_state(const char *name,
|
|||
bool has_vcpu, int64_t vcpu,
|
||||
Error **errp)
|
||||
{
|
||||
Error *err = NULL;
|
||||
TraceEventInfoList *events = NULL;
|
||||
TraceEventIter iter;
|
||||
TraceEvent *ev;
|
||||
bool is_pattern = trace_event_is_pattern(name);
|
||||
CPUState *cpu;
|
||||
|
||||
/* Check provided vcpu */
|
||||
cpu = get_cpu(has_vcpu, vcpu, &err);
|
||||
if (err) {
|
||||
error_propagate(errp, err);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
/* Check events */
|
||||
if (!check_events(has_vcpu, true, is_pattern, name, errp)) {
|
||||
if (!check_events(true, is_pattern, name, errp)) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
@ -93,33 +65,17 @@ TraceEventInfoList *qmp_trace_event_get_state(const char *name,
|
|||
trace_event_iter_init_pattern(&iter, name);
|
||||
while ((ev = trace_event_iter_next(&iter)) != NULL) {
|
||||
TraceEventInfo *value;
|
||||
bool is_vcpu = trace_event_is_vcpu(ev);
|
||||
if (has_vcpu && !is_vcpu) {
|
||||
continue;
|
||||
}
|
||||
|
||||
value = g_new(TraceEventInfo, 1);
|
||||
value->vcpu = is_vcpu;
|
||||
value->name = g_strdup(trace_event_get_name(ev));
|
||||
|
||||
if (!trace_event_get_state_static(ev)) {
|
||||
value->state = TRACE_EVENT_STATE_UNAVAILABLE;
|
||||
} else {
|
||||
if (has_vcpu) {
|
||||
if (is_vcpu) {
|
||||
if (trace_event_get_vcpu_state_dynamic(cpu, ev)) {
|
||||
value->state = TRACE_EVENT_STATE_ENABLED;
|
||||
} else {
|
||||
value->state = TRACE_EVENT_STATE_DISABLED;
|
||||
}
|
||||
}
|
||||
/* else: already skipped above */
|
||||
if (trace_event_get_state_dynamic(ev)) {
|
||||
value->state = TRACE_EVENT_STATE_ENABLED;
|
||||
} else {
|
||||
if (trace_event_get_state_dynamic(ev)) {
|
||||
value->state = TRACE_EVENT_STATE_ENABLED;
|
||||
} else {
|
||||
value->state = TRACE_EVENT_STATE_DISABLED;
|
||||
}
|
||||
value->state = TRACE_EVENT_STATE_DISABLED;
|
||||
}
|
||||
}
|
||||
QAPI_LIST_PREPEND(events, value);
|
||||
|
@ -133,21 +89,12 @@ void qmp_trace_event_set_state(const char *name, bool enable,
|
|||
bool has_vcpu, int64_t vcpu,
|
||||
Error **errp)
|
||||
{
|
||||
Error *err = NULL;
|
||||
TraceEventIter iter;
|
||||
TraceEvent *ev;
|
||||
bool is_pattern = trace_event_is_pattern(name);
|
||||
CPUState *cpu;
|
||||
|
||||
/* Check provided vcpu */
|
||||
cpu = get_cpu(has_vcpu, vcpu, &err);
|
||||
if (err) {
|
||||
error_propagate(errp, err);
|
||||
return;
|
||||
}
|
||||
|
||||
/* Check events */
|
||||
if (!check_events(has_vcpu, has_ignore_unavailable && ignore_unavailable,
|
||||
if (!check_events(has_ignore_unavailable && ignore_unavailable,
|
||||
is_pattern, name, errp)) {
|
||||
return;
|
||||
}
|
||||
|
@ -155,14 +102,9 @@ void qmp_trace_event_set_state(const char *name, bool enable,
|
|||
/* Apply changes (all errors checked above) */
|
||||
trace_event_iter_init_pattern(&iter, name);
|
||||
while ((ev = trace_event_iter_next(&iter)) != NULL) {
|
||||
if (!trace_event_get_state_static(ev) ||
|
||||
(has_vcpu && !trace_event_is_vcpu(ev))) {
|
||||
if (!trace_event_get_state_static(ev)) {
|
||||
continue;
|
||||
}
|
||||
if (has_vcpu) {
|
||||
trace_event_set_vcpu_state_dynamic(cpu, ev, enable);
|
||||
} else {
|
||||
trace_event_set_state_dynamic(ev, enable);
|
||||
}
|
||||
trace_event_set_state_dynamic(ev, enable);
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue