|
@@ -2433,3 +2433,45 @@ void hmp_info_dump(Monitor *mon, const QDict *qdict)
|
|
|
|
|
|
qapi_free_DumpQueryResult(result);
|
|
qapi_free_DumpQueryResult(result);
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+void hmp_hotpluggable_cpus(Monitor *mon, const QDict *qdict)
|
|
|
|
+{
|
|
|
|
+ Error *err = NULL;
|
|
|
|
+ HotpluggableCPUList *l = qmp_query_hotpluggable_cpus(&err);
|
|
|
|
+ HotpluggableCPUList *saved = l;
|
|
|
|
+ CpuInstanceProperties *c;
|
|
|
|
+
|
|
|
|
+ if (err != NULL) {
|
|
|
|
+ hmp_handle_error(mon, &err);
|
|
|
|
+ return;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ monitor_printf(mon, "Hotpluggable CPUs:\n");
|
|
|
|
+ while (l) {
|
|
|
|
+ monitor_printf(mon, " type: \"%s\"\n", l->value->type);
|
|
|
|
+ monitor_printf(mon, " vcpus_count: \"%" PRIu64 "\"\n",
|
|
|
|
+ l->value->vcpus_count);
|
|
|
|
+ if (l->value->has_qom_path) {
|
|
|
|
+ monitor_printf(mon, " qom_path: \"%s\"\n", l->value->qom_path);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ c = l->value->props;
|
|
|
|
+ monitor_printf(mon, " CPUInstance Properties:\n");
|
|
|
|
+ if (c->has_node) {
|
|
|
|
+ monitor_printf(mon, " node: \"%" PRIu64 "\"\n", c->node);
|
|
|
|
+ }
|
|
|
|
+ if (c->has_socket) {
|
|
|
|
+ monitor_printf(mon, " socket: \"%" PRIu64 "\"\n", c->socket);
|
|
|
|
+ }
|
|
|
|
+ if (c->has_core) {
|
|
|
|
+ monitor_printf(mon, " core: \"%" PRIu64 "\"\n", c->core);
|
|
|
|
+ }
|
|
|
|
+ if (c->has_thread) {
|
|
|
|
+ monitor_printf(mon, " thread: \"%" PRIu64 "\"\n", c->thread);
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ l = l->next;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ qapi_free_HotpluggableCPUList(saved);
|
|
|
|
+}
|