xref: /openbmc/qemu/accel/accel-qmp.c (revision f96b157ebb93f94cd56ebbc99bc20982b8fd86ef)
1*1861993fSPhilippe Mathieu-Daudé /*
2*1861993fSPhilippe Mathieu-Daudé  * QMP commands related to accelerators
3*1861993fSPhilippe Mathieu-Daudé  *
4*1861993fSPhilippe Mathieu-Daudé  * Copyright (c) Linaro
5*1861993fSPhilippe Mathieu-Daudé  *
6*1861993fSPhilippe Mathieu-Daudé  * SPDX-License-Identifier: GPL-2.0-or-later
7*1861993fSPhilippe Mathieu-Daudé  */
8*1861993fSPhilippe Mathieu-Daudé 
9*1861993fSPhilippe Mathieu-Daudé #include "qemu/osdep.h"
10*1861993fSPhilippe Mathieu-Daudé #include "qemu/accel.h"
11*1861993fSPhilippe Mathieu-Daudé #include "qapi/type-helpers.h"
12*1861993fSPhilippe Mathieu-Daudé #include "qapi/qapi-commands-accelerator.h"
13*1861993fSPhilippe Mathieu-Daudé #include "accel/accel-ops.h"
14*1861993fSPhilippe Mathieu-Daudé #include "accel/accel-cpu-ops.h"
15*1861993fSPhilippe Mathieu-Daudé #include "hw/core/cpu.h"
16*1861993fSPhilippe Mathieu-Daudé 
qmp_x_accel_stats(Error ** errp)17*1861993fSPhilippe Mathieu-Daudé HumanReadableText *qmp_x_accel_stats(Error **errp)
18*1861993fSPhilippe Mathieu-Daudé {
19*1861993fSPhilippe Mathieu-Daudé     AccelState *accel = current_accel();
20*1861993fSPhilippe Mathieu-Daudé     AccelClass *acc = ACCEL_GET_CLASS(accel);
21*1861993fSPhilippe Mathieu-Daudé     g_autoptr(GString) buf = g_string_new("");
22*1861993fSPhilippe Mathieu-Daudé 
23*1861993fSPhilippe Mathieu-Daudé     if (acc->get_stats) {
24*1861993fSPhilippe Mathieu-Daudé         acc->get_stats(accel, buf);
25*1861993fSPhilippe Mathieu-Daudé     }
26*1861993fSPhilippe Mathieu-Daudé     if (acc->ops->get_vcpu_stats) {
27*1861993fSPhilippe Mathieu-Daudé         CPUState *cpu;
28*1861993fSPhilippe Mathieu-Daudé 
29*1861993fSPhilippe Mathieu-Daudé         CPU_FOREACH(cpu) {
30*1861993fSPhilippe Mathieu-Daudé             acc->ops->get_vcpu_stats(cpu, buf);
31*1861993fSPhilippe Mathieu-Daudé         }
32*1861993fSPhilippe Mathieu-Daudé     }
33*1861993fSPhilippe Mathieu-Daudé 
34*1861993fSPhilippe Mathieu-Daudé     return human_readable_text_from_str(buf);
35*1861993fSPhilippe Mathieu-Daudé }
36