X-Git-Url: https://repo.jachan.dev/qemu.git/blobdiff_plain/5c8be678a912e3ce2a5289bfec981f98d3dd495f..b89e94af1dfcf881960804344ac9d2a6759d3aea:/monitor.c diff --git a/monitor.c b/monitor.c index 5e78f9d6c6..d64f459a6e 100644 --- a/monitor.c +++ b/monitor.c @@ -27,6 +27,7 @@ #include "hw/pcmcia.h" #include "hw/pc.h" #include "hw/pci.h" +#include "hw/watchdog.h" #include "gdbstub.h" #include "net.h" #include "qemu-char.h" @@ -597,6 +598,13 @@ static void do_gdbserver(Monitor *mon, const char *device) } #endif +static void do_watchdog_action(Monitor *mon, const char *action) +{ + if (select_watchdog_action(action) == -1) { + monitor_printf(mon, "Unknown watchdog action '%s'\n", action); + } +} + static void monitor_printc(Monitor *mon, int c) { monitor_printf(mon, "'"); @@ -1409,6 +1417,25 @@ static void do_info_kvm(Monitor *mon) #endif } +static void do_info_numa(Monitor *mon) +{ + int i; + CPUState *env; + + monitor_printf(mon, "%d nodes\n", nb_numa_nodes); + for (i = 0; i < nb_numa_nodes; i++) { + monitor_printf(mon, "node %d cpus:", i); + for (env = first_cpu; env != NULL; env = env->next_cpu) { + if (env->numa_node == i) { + monitor_printf(mon, " %d", env->cpu_index); + } + } + monitor_printf(mon, "\n"); + monitor_printf(mon, "node %d size: %" PRId64 " MB\n", i, + node_mem[i] >> 20); + } +} + #ifdef CONFIG_PROFILER int64_t kqemu_time; @@ -1730,15 +1757,21 @@ static const mon_cmd_t mon_cmds[] = { "add drive to PCI storage controller" }, { "pci_add", "sss", pci_device_hot_add, "pci_addr=auto|[[:]:] nic|storage [[vlan=n][,macaddr=addr][,model=type]] [file=file][,if=type][,bus=nr]...", "hot-add PCI device" }, { "pci_del", "s", pci_device_hot_remove, "pci_addr=[[:]:]", "hot remove PCI device" }, +#endif { "host_net_add", "ss?", net_host_device_add, "tap|user|socket|vde|dump [options]", "add host VLAN client" }, { "host_net_remove", "is", net_host_device_remove, "vlan_id name", "remove host VLAN client" }, +#ifdef CONFIG_SLIRP + { "host_net_redir", "s", net_slirp_redir, + "[tcp|udp]:host-port:[guest-host]:guest-port", "redirect TCP or UDP connections from host to guest (requires -net user)" }, #endif { "balloon", "i", do_balloon, "target", "request VM to change it's memory allocation (in MB)" }, { "set_link", "ss", do_set_link, "name up|down", "change the link status of a network adapter" }, + { "watchdog_action", "s", do_watchdog_action, + "[reset|shutdown|poweroff|pause|debug|none]", "change watchdog action" }, { "acl", "sss?i?", do_acl, " [ []]\n", "acl show vnc.username\n" "acl policy vnc.username deny\n" @@ -1788,6 +1821,8 @@ static const mon_cmd_t info_cmds[] = { "", "show KQEMU information", }, { "kvm", "", do_info_kvm, "", "show KVM information", }, + { "numa", "", do_info_numa, + "", "show NUMA information", }, { "usb", "", usb_info, "", "show guest USB devices", }, { "usbhost", "", usb_host_info,