qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH] Fix monitor 'info registers' command on multi p


From: Markus Armbruster
Subject: Re: [Qemu-devel] [PATCH] Fix monitor 'info registers' command on multi processor guests
Date: Thu, 31 Jan 2013 10:51:10 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.1 (gnu/linux)

"Erlon Cruz" <address@hidden> writes:

> QEMU monitor command 'info registers' only displays information for the first
> CPU. This fix that by show registers information for each CPU in the system

This is incorrect.  It displays information for the *current* CPU.
Monitor command "cpu" selects the current CPU.

I doubt we want to change this command.  But I'm reviewing it regardless
of my doubts.

> Signed-off-by: address@hidden
> ---
>  monitor.c |   19 +++++++++++++++----
>  1 file changed, 15 insertions(+), 4 deletions(-)
>
> diff --git a/monitor.c b/monitor.c
> index c0e32d6..70e9227 100644
> --- a/monitor.c
> +++ b/monitor.c
> @@ -898,8 +898,14 @@ int monitor_get_cpu_index(void)
>  static void do_info_registers(Monitor *mon)
>  {
>      CPUArchState *env;
> -    env = mon_get_cpu();
> -    cpu_dump_state(env, (FILE *)mon, monitor_fprintf, CPU_DUMP_FPU);
> +
> +    for (env = first_cpu; env != NULL; env = env->next_cpu) {
> +        monitor_fprintf((FILE *)mon, "========================= "
> +                "Registers on CPU %d =========================\n",
> +                env->cpu_index);
> +        cpu_dump_state(env, (FILE *)mon, monitor_fprintf, CPU_DUMP_FPU);
> +        monitor_fprintf((FILE *)mon, "\n");
> +    }
>  }
>  

You lost the cpu_synchronize_state() in mon_get_cpu().  Why is that
okay?

>  static void do_info_jit(Monitor *mon)
> @@ -930,8 +936,13 @@ static void do_info_cpu_stats(Monitor *mon)
>  {
>      CPUArchState *env;
>  
> -    env = mon_get_cpu();
> -    cpu_dump_statistics(env, (FILE *)mon, &monitor_fprintf, 0);
> +    for (env = first_cpu; env != NULL; env = env->next_cpu) {
> +        monitor_fprintf((FILE *)mon, "========================= "
> +                "Statistics for CPU %d =========================\n",
> +                env->cpu_index);
> +        cpu_dump_statistics(env, (FILE *)mon, &monitor_fprintf, 0);
> +        monitor_fprintf((FILE *)mon, "\n");
> +    }
>  }
>  #endif

Same here.

Furthermore, you neglected to update the command's documentation in
hmp-commands.hx, and the reference to it in qmp-commands.hx.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]