[v6,01/12] monitor: Add Monitor parameter to monitor_set_cpu()
diff mbox series

Message ID 20200528153742.274164-2-kwolf@redhat.com
State New
Headers show
Series
  • monitor: Optionally run handlers in coroutines
Related show

Commit Message

Kevin Wolf May 28, 2020, 3:37 p.m. UTC
Most callers actually don't have to rely on cur_mon, but already know
for which monitor they call monitor_set_cpu().

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 include/monitor/monitor.h |  2 +-
 monitor/hmp-cmds.c        |  2 +-
 monitor/misc.c            | 10 +++++-----
 3 files changed, 7 insertions(+), 7 deletions(-)

Comments

Eric Blake May 28, 2020, 6:24 p.m. UTC | #1
On 5/28/20 10:37 AM, Kevin Wolf wrote:
> Most callers actually don't have to rely on cur_mon, but already know
> for which monitor they call monitor_set_cpu().
> 
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
>   include/monitor/monitor.h |  2 +-
>   monitor/hmp-cmds.c        |  2 +-
>   monitor/misc.c            | 10 +++++-----
>   3 files changed, 7 insertions(+), 7 deletions(-)

Reviewed-by: Eric Blake <eblake@redhat.com>
Markus Armbruster Aug. 4, 2020, 11:19 a.m. UTC | #2
Kevin Wolf <kwolf@redhat.com> writes:

> Most callers actually don't have to rely on cur_mon, but already know
> for which monitor they call monitor_set_cpu().
>
> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
> ---
>  include/monitor/monitor.h |  2 +-
>  monitor/hmp-cmds.c        |  2 +-
>  monitor/misc.c            | 10 +++++-----
>  3 files changed, 7 insertions(+), 7 deletions(-)
>
> diff --git a/include/monitor/monitor.h b/include/monitor/monitor.h
> index 1018d754a6..0dcaefd4f9 100644
> --- a/include/monitor/monitor.h
> +++ b/include/monitor/monitor.h
> @@ -33,7 +33,7 @@ int monitor_vprintf(Monitor *mon, const char *fmt, va_list ap)
>      GCC_FMT_ATTR(2, 0);
>  int monitor_printf(Monitor *mon, const char *fmt, ...) GCC_FMT_ATTR(2, 3);
>  void monitor_flush(Monitor *mon);
> -int monitor_set_cpu(int cpu_index);
> +int monitor_set_cpu(Monitor *mon, int cpu_index);
>  int monitor_get_cpu_index(void);

monitor_set_cpu() now takes a Monitor * argument, while
monitor_get_cpu_index() continues to assume cur_mon.  Not wrong, but the
asymmetry bothers me.

Both callers of the latter look like they could easily pass a Monitor *
argument.  What do you think?

>  
>  void monitor_read_command(MonitorHMP *mon, int show_prompt);
> diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c
> index 9c61e769ca..5e22ee2556 100644
> --- a/monitor/hmp-cmds.c
> +++ b/monitor/hmp-cmds.c
> @@ -969,7 +969,7 @@ void hmp_cpu(Monitor *mon, const QDict *qdict)
>      /* XXX: drop the monitor_set_cpu() usage when all HMP commands that
>              use it are converted to the QAPI */
>      cpu_index = qdict_get_int(qdict, "index");
> -    if (monitor_set_cpu(cpu_index) < 0) {
> +    if (monitor_set_cpu(mon, cpu_index) < 0) {
>          monitor_printf(mon, "invalid CPU index\n");
>      }
>  }
> diff --git a/monitor/misc.c b/monitor/misc.c
> index f5207cd242..bdf49e49e5 100644
> --- a/monitor/misc.c
> +++ b/monitor/misc.c
> @@ -130,7 +130,7 @@ char *qmp_human_monitor_command(const char *command_line, bool has_cpu_index,
>      cur_mon = &hmp.common;
>  
>      if (has_cpu_index) {
> -        int ret = monitor_set_cpu(cpu_index);
> +        int ret = monitor_set_cpu(&hmp.common, cpu_index);
>          if (ret < 0) {
>              cur_mon = old_mon;
>              error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "cpu-index",
> @@ -256,7 +256,7 @@ static void monitor_init_qmp_commands(void)
>  }
>  
>  /* Set the current CPU defined by the user. Callers must hold BQL. */
> -int monitor_set_cpu(int cpu_index)
> +int monitor_set_cpu(Monitor *mon, int cpu_index)
>  {
>      CPUState *cpu;
>  
> @@ -264,8 +264,8 @@ int monitor_set_cpu(int cpu_index)
>      if (cpu == NULL) {
>          return -1;
>      }
> -    g_free(cur_mon->mon_cpu_path);
> -    cur_mon->mon_cpu_path = object_get_canonical_path(OBJECT(cpu));
> +    g_free(mon->mon_cpu_path);
> +    mon->mon_cpu_path = object_get_canonical_path(OBJECT(cpu));
>      return 0;
>  }
>  
> @@ -286,7 +286,7 @@ static CPUState *mon_get_cpu_sync(bool synchronize)
>          if (!first_cpu) {
>              return NULL;
>          }
> -        monitor_set_cpu(first_cpu->cpu_index);
> +        monitor_set_cpu(cur_mon, first_cpu->cpu_index);
>          cpu = first_cpu;
>      }
>      assert(cpu != NULL);

Patch looks good otherwise.

Patch
diff mbox series

diff --git a/include/monitor/monitor.h b/include/monitor/monitor.h
index 1018d754a6..0dcaefd4f9 100644
--- a/include/monitor/monitor.h
+++ b/include/monitor/monitor.h
@@ -33,7 +33,7 @@  int monitor_vprintf(Monitor *mon, const char *fmt, va_list ap)
     GCC_FMT_ATTR(2, 0);
 int monitor_printf(Monitor *mon, const char *fmt, ...) GCC_FMT_ATTR(2, 3);
 void monitor_flush(Monitor *mon);
-int monitor_set_cpu(int cpu_index);
+int monitor_set_cpu(Monitor *mon, int cpu_index);
 int monitor_get_cpu_index(void);
 
 void monitor_read_command(MonitorHMP *mon, int show_prompt);
diff --git a/monitor/hmp-cmds.c b/monitor/hmp-cmds.c
index 9c61e769ca..5e22ee2556 100644
--- a/monitor/hmp-cmds.c
+++ b/monitor/hmp-cmds.c
@@ -969,7 +969,7 @@  void hmp_cpu(Monitor *mon, const QDict *qdict)
     /* XXX: drop the monitor_set_cpu() usage when all HMP commands that
             use it are converted to the QAPI */
     cpu_index = qdict_get_int(qdict, "index");
-    if (monitor_set_cpu(cpu_index) < 0) {
+    if (monitor_set_cpu(mon, cpu_index) < 0) {
         monitor_printf(mon, "invalid CPU index\n");
     }
 }
diff --git a/monitor/misc.c b/monitor/misc.c
index f5207cd242..bdf49e49e5 100644
--- a/monitor/misc.c
+++ b/monitor/misc.c
@@ -130,7 +130,7 @@  char *qmp_human_monitor_command(const char *command_line, bool has_cpu_index,
     cur_mon = &hmp.common;
 
     if (has_cpu_index) {
-        int ret = monitor_set_cpu(cpu_index);
+        int ret = monitor_set_cpu(&hmp.common, cpu_index);
         if (ret < 0) {
             cur_mon = old_mon;
             error_setg(errp, QERR_INVALID_PARAMETER_VALUE, "cpu-index",
@@ -256,7 +256,7 @@  static void monitor_init_qmp_commands(void)
 }
 
 /* Set the current CPU defined by the user. Callers must hold BQL. */
-int monitor_set_cpu(int cpu_index)
+int monitor_set_cpu(Monitor *mon, int cpu_index)
 {
     CPUState *cpu;
 
@@ -264,8 +264,8 @@  int monitor_set_cpu(int cpu_index)
     if (cpu == NULL) {
         return -1;
     }
-    g_free(cur_mon->mon_cpu_path);
-    cur_mon->mon_cpu_path = object_get_canonical_path(OBJECT(cpu));
+    g_free(mon->mon_cpu_path);
+    mon->mon_cpu_path = object_get_canonical_path(OBJECT(cpu));
     return 0;
 }
 
@@ -286,7 +286,7 @@  static CPUState *mon_get_cpu_sync(bool synchronize)
         if (!first_cpu) {
             return NULL;
         }
-        monitor_set_cpu(first_cpu->cpu_index);
+        monitor_set_cpu(cur_mon, first_cpu->cpu_index);
         cpu = first_cpu;
     }
     assert(cpu != NULL);