Commit d2d8d46f authored by Bharata B Rao's avatar Bharata B Rao Committed by David Gibson
Browse files

hmp: Add 'info hotpluggable-cpus' HMP command



This is the HMP equivalent for QMP query-hotpluggable-cpus.

Signed-off-by: default avatarBharata B Rao <bharata@linux.vnet.ibm.com>
Reviewed-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
[dwg: Fixed problem with printf formats on 32-bit host]
Signed-off-by: default avatarDavid Gibson <david@gibson.dropbear.id.au>
parent d4633541
Loading
Loading
Loading
Loading
+14 −0
Original line number Diff line number Diff line
@@ -798,6 +798,20 @@ STEXI
@item info dump
@findex dump
Display the latest dump status.
ETEXI

    {
        .name       = "hotpluggable-cpus",
        .args_type  = "",
        .params     = "",
        .help       = "Show information about hotpluggable CPUs",
        .mhandler.cmd = hmp_hotpluggable_cpus,
    },

STEXI
@item info hotpluggable-cpus
@findex hotpluggable-cpus
Show information about hotpluggable CPUs
ETEXI

STEXI
+42 −0
Original line number Diff line number Diff line
@@ -2433,3 +2433,45 @@ void hmp_info_dump(Monitor *mon, const QDict *qdict)

    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);
}
+1 −0
Original line number Diff line number Diff line
@@ -132,5 +132,6 @@ void hmp_rocker_ports(Monitor *mon, const QDict *qdict);
void hmp_rocker_of_dpa_flows(Monitor *mon, const QDict *qdict);
void hmp_rocker_of_dpa_groups(Monitor *mon, const QDict *qdict);
void hmp_info_dump(Monitor *mon, const QDict *qdict);
void hmp_hotpluggable_cpus(Monitor *mon, const QDict *qdict);

#endif