HMP pull 2022-09-15

A set of 3 small additions/fixes.
 
 Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
 -----BEGIN PGP SIGNATURE-----
 
 iQIzBAABCAAdFiEERfXHG0oMt/uXep+pBRYzHrxb/ecFAmMjNG4ACgkQBRYzHrxb
 /edRhhAAibHXFdK1EHtcABInxMVg50wZ7oD2QiYqKb1m0t9rQDSmZ/cX22qdYF7D
 hBvjsMiniy6isGYyiPhpi+7ZMnid12E6EpZ49tFKbDz+DPfpT3mk/MOKvNQu150I
 K8NuqD40HImpUzo7/OVVIzo26TsKMFUo7WzuzqP4PEguSCqVAlzuoVxId8oZ3DbT
 c/VQTZjwLbi+i7DuuFc1pqfzC3euNEApM7DRAYNios+oGxd2kd+DC7JLqMKK4Uk1
 5t5YmCz3Q+aFZ1kOvpxUW+3xT0LI4wzR0XA0ImA3jADaqt5G3dNOzosY2E7eaQen
 AXpqu6dH5wbSl2y5LWSscgN8ObAs5N6n0+ncXtIYwMENBBkZpWtaDbTYp6ezcrww
 2st2qQ0MlUj8oiH3jMr5TtkZxcx9wXdEfrCDZ0MQt3275Bp6JuSW6DjqXjjpKimY
 2HsAPDKYFNVJl/9SX5PxW6cGPZyb/YMa+14YdIdMbWc8+q+4yMSQnTJbGvxLFakt
 S/agxGu3hpEGrYUjCdl6JzIyOxdUVFp+Lp4NwhU+DI/1UaL1/QbiK+NxDXvkk+Wp
 wcI7VbIXb6YMWf9Gmv4NQ1b4uTf8qoA7J0SNONrw9ywU4lhsm9UKoIoakKaSK9F8
 kI+vBt/mmZTCqNw8h4w/KNvrRFF5nP/vw117xdOGGbtCS7G8438=
 =Isyw
 -----END PGP SIGNATURE-----

Merge tag 'pull-hmp-20220915a' of https://gitlab.com/dagrh/qemu into staging

HMP pull 2022-09-15

A set of 3 small additions/fixes.

Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

# -----BEGIN PGP SIGNATURE-----
#
# iQIzBAABCAAdFiEERfXHG0oMt/uXep+pBRYzHrxb/ecFAmMjNG4ACgkQBRYzHrxb
# /edRhhAAibHXFdK1EHtcABInxMVg50wZ7oD2QiYqKb1m0t9rQDSmZ/cX22qdYF7D
# hBvjsMiniy6isGYyiPhpi+7ZMnid12E6EpZ49tFKbDz+DPfpT3mk/MOKvNQu150I
# K8NuqD40HImpUzo7/OVVIzo26TsKMFUo7WzuzqP4PEguSCqVAlzuoVxId8oZ3DbT
# c/VQTZjwLbi+i7DuuFc1pqfzC3euNEApM7DRAYNios+oGxd2kd+DC7JLqMKK4Uk1
# 5t5YmCz3Q+aFZ1kOvpxUW+3xT0LI4wzR0XA0ImA3jADaqt5G3dNOzosY2E7eaQen
# AXpqu6dH5wbSl2y5LWSscgN8ObAs5N6n0+ncXtIYwMENBBkZpWtaDbTYp6ezcrww
# 2st2qQ0MlUj8oiH3jMr5TtkZxcx9wXdEfrCDZ0MQt3275Bp6JuSW6DjqXjjpKimY
# 2HsAPDKYFNVJl/9SX5PxW6cGPZyb/YMa+14YdIdMbWc8+q+4yMSQnTJbGvxLFakt
# S/agxGu3hpEGrYUjCdl6JzIyOxdUVFp+Lp4NwhU+DI/1UaL1/QbiK+NxDXvkk+Wp
# wcI7VbIXb6YMWf9Gmv4NQ1b4uTf8qoA7J0SNONrw9ywU4lhsm9UKoIoakKaSK9F8
# kI+vBt/mmZTCqNw8h4w/KNvrRFF5nP/vw117xdOGGbtCS7G8438=
# =Isyw
# -----END PGP SIGNATURE-----
# gpg: Signature made Thu 15 Sep 2022 10:19:26 EDT
# gpg:                using RSA key 45F5C71B4A0CB7FB977A9FA90516331EBC5BFDE7
# gpg: Good signature from "Dr. David Alan Gilbert (RH2) <dgilbert@redhat.com>" [full]
# Primary key fingerprint: 45F5 C71B 4A0C B7FB 977A  9FA9 0516 331E BC5B FDE7

* tag 'pull-hmp-20220915a' of https://gitlab.com/dagrh/qemu:
  hmp: Fix ordering of text
  monitor/hmp: print trace as option in help for log command
  monitor: Support specified vCPU registers

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Stefan Hajnoczi 2022-09-17 10:31:11 -04:00
commit d29201ff34
4 changed files with 43 additions and 30 deletions

View File

@ -100,9 +100,11 @@ ERST
{ {
.name = "registers", .name = "registers",
.args_type = "cpustate_all:-a", .args_type = "cpustate_all:-a,vcpu:i?",
.params = "[-a]", .params = "[-a|vcpu]",
.help = "show the cpu registers (-a: all - show register info for all cpus)", .help = "show the cpu registers (-a: show register info for all cpus;"
" vcpu: specific vCPU to query; show the current CPU's registers if"
" no argument is specified)",
.cmd = hmp_info_registers, .cmd = hmp_info_registers,
}, },

View File

@ -1742,23 +1742,6 @@ SRST
*icount* for the reference may be observed with ``info replay`` command. *icount* for the reference may be observed with ``info replay`` command.
ERST ERST
{
.name = "info",
.args_type = "item:s?",
.params = "[subcommand]",
.help = "show various information about the system state",
.cmd = hmp_info_help,
.sub_table = hmp_info_cmds,
.flags = "p",
},
SRST
``calc_dirty_rate`` *second*
Start a round of dirty rate measurement with the period specified in *second*.
The result of the dirty rate measurement may be observed with ``info
dirty_rate`` command.
ERST
{ {
.name = "calc_dirty_rate", .name = "calc_dirty_rate",
.args_type = "dirty_ring:-r,dirty_bitmap:-b,second:l,sample_pages_per_GB:l?", .args_type = "dirty_ring:-r,dirty_bitmap:-b,second:l,sample_pages_per_GB:l?",
@ -1770,10 +1753,10 @@ ERST
}, },
SRST SRST
``set_vcpu_dirty_limit`` ``calc_dirty_rate`` *second*
Set dirty page rate limit on virtual CPU, the information about all the Start a round of dirty rate measurement with the period specified in *second*.
virtual CPU dirty limit status can be observed with ``info vcpu_dirty_limit`` The result of the dirty rate measurement may be observed with ``info
command. dirty_rate`` command.
ERST ERST
{ {
@ -1786,8 +1769,8 @@ ERST
}, },
SRST SRST
``cancel_vcpu_dirty_limit`` ``set_vcpu_dirty_limit``
Cancel dirty page rate limit on virtual CPU, the information about all the Set dirty page rate limit on virtual CPU, the information about all the
virtual CPU dirty limit status can be observed with ``info vcpu_dirty_limit`` virtual CPU dirty limit status can be observed with ``info vcpu_dirty_limit``
command. command.
ERST ERST
@ -1800,3 +1783,20 @@ ERST
"\n\t\t\t\t\t limit on a specified virtual cpu", "\n\t\t\t\t\t limit on a specified virtual cpu",
.cmd = hmp_cancel_vcpu_dirty_limit, .cmd = hmp_cancel_vcpu_dirty_limit,
}, },
SRST
``cancel_vcpu_dirty_limit``
Cancel dirty page rate limit on virtual CPU, the information about all the
virtual CPU dirty limit status can be observed with ``info vcpu_dirty_limit``
command.
ERST
{
.name = "info",
.args_type = "item:s?",
.params = "[subcommand]",
.help = "show various information about the system state",
.cmd = hmp_info_help,
.sub_table = hmp_info_cmds,
.flags = "p",
},

View File

@ -285,10 +285,15 @@ void help_cmd(Monitor *mon, const char *name)
if (!strcmp(name, "log")) { if (!strcmp(name, "log")) {
const QEMULogItem *item; const QEMULogItem *item;
monitor_printf(mon, "Log items (comma separated):\n"); monitor_printf(mon, "Log items (comma separated):\n");
monitor_printf(mon, "%-10s %s\n", "none", "remove all logs"); monitor_printf(mon, "%-15s %s\n", "none", "remove all logs");
for (item = qemu_log_items; item->mask != 0; item++) { for (item = qemu_log_items; item->mask != 0; item++) {
monitor_printf(mon, "%-10s %s\n", item->name, item->help); monitor_printf(mon, "%-15s %s\n", item->name, item->help);
} }
#ifdef CONFIG_TRACE_LOG
monitor_printf(mon, "trace:PATTERN enable trace events\n");
monitor_printf(mon, "\nUse \"log trace:help\" to get a list of "
"trace events.\n\n");
#endif
return; return;
} }

View File

@ -307,6 +307,7 @@ int monitor_get_cpu_index(Monitor *mon)
static void hmp_info_registers(Monitor *mon, const QDict *qdict) static void hmp_info_registers(Monitor *mon, const QDict *qdict)
{ {
bool all_cpus = qdict_get_try_bool(qdict, "cpustate_all", false); bool all_cpus = qdict_get_try_bool(qdict, "cpustate_all", false);
int vcpu = qdict_get_try_int(qdict, "vcpu", -1);
CPUState *cs; CPUState *cs;
if (all_cpus) { if (all_cpus) {
@ -315,13 +316,18 @@ static void hmp_info_registers(Monitor *mon, const QDict *qdict)
cpu_dump_state(cs, NULL, CPU_DUMP_FPU); cpu_dump_state(cs, NULL, CPU_DUMP_FPU);
} }
} else { } else {
cs = mon_get_cpu(mon); cs = vcpu >= 0 ? qemu_get_cpu(vcpu) : mon_get_cpu(mon);
if (!cs) { if (!cs) {
monitor_printf(mon, "No CPU available\n"); if (vcpu >= 0) {
monitor_printf(mon, "CPU#%d not available\n", vcpu);
} else {
monitor_printf(mon, "No CPU available\n");
}
return; return;
} }
monitor_printf(mon, "\nCPU#%d\n", cs->cpu_index);
cpu_dump_state(cs, NULL, CPU_DUMP_FPU); cpu_dump_state(cs, NULL, CPU_DUMP_FPU);
} }
} }