[PATCH-for-7.0 v3] softmmu: List CPU types again

Philippe Mathieu-Daudé posted 1 patch 2 years, 1 month ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20220314140108.26222-1-philippe.mathieu.daude@gmail.com
Maintainers: Eduardo Habkost <eduardo@habkost.net>, Marcel Apfelbaum <marcel.apfelbaum@gmail.com>, "Philippe Mathieu-Daudé" <f4bug@amsat.org>, Yanan Wang <wangyanan55@huawei.com>, Richard Henderson <richard.henderson@linaro.org>, Paolo Bonzini <pbonzini@redhat.com>
cpu.c                     | 9 +++++++++
include/exec/cpu-common.h | 2 ++
include/sysemu/cpus.h     | 2 --
softmmu/cpus.c            | 8 --------
4 files changed, 11 insertions(+), 10 deletions(-)
[PATCH-for-7.0 v3] softmmu: List CPU types again
Posted by Philippe Mathieu-Daudé 2 years, 1 month ago
From: Philippe Mathieu-Daudé <f4bug@amsat.org>

Commit e0220bb5b2 made cpus.c target-agnostic but didn't notice
the cpu_list() function is only defined in target-specific code
in "cpu.h". Move list_cpus() declaration to "exec/cpu-common.h"
because this function is not softmmu-specific and can also be
used by user-mode, along with moving its implementation to cpu.c,
which is compiled per target.

Fixes: e0220bb5b2 ("softmmu: Build target-agnostic objects once")
Reported-by: Max Filippov <jcmvbkbc@gmail.com>
Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Tested-by: Max Filippov <jcmvbkbc@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
Since v2:
- include exec/cpu-all.h -> exec/cpu-common.h (thuth)
---
 cpu.c                     | 9 +++++++++
 include/exec/cpu-common.h | 2 ++
 include/sysemu/cpus.h     | 2 --
 softmmu/cpus.c            | 8 --------
 4 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/cpu.c b/cpu.c
index d564886149..be1f8b074c 100644
--- a/cpu.c
+++ b/cpu.c
@@ -35,6 +35,7 @@
 #include "sysemu/tcg.h"
 #include "sysemu/kvm.h"
 #include "sysemu/replay.h"
+#include "exec/cpu-common.h"
 #include "exec/exec-all.h"
 #include "exec/translate-all.h"
 #include "exec/log.h"
@@ -266,6 +267,14 @@ const char *parse_cpu_option(const char *cpu_option)
     return cpu_type;
 }
 
+void list_cpus(const char *optarg)
+{
+    /* XXX: implement xxx_cpu_list for targets that still miss it */
+#if defined(cpu_list)
+    cpu_list();
+#endif
+}
+
 #if defined(CONFIG_USER_ONLY)
 void tb_invalidate_phys_addr(target_ulong addr)
 {
diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h
index 7f7b5943c7..50a7d2912e 100644
--- a/include/exec/cpu-common.h
+++ b/include/exec/cpu-common.h
@@ -158,4 +158,6 @@ int cpu_memory_rw_debug(CPUState *cpu, vaddr addr,
 /* vl.c */
 extern int singlestep;
 
+void list_cpus(const char *optarg);
+
 #endif /* CPU_COMMON_H */
diff --git a/include/sysemu/cpus.h b/include/sysemu/cpus.h
index 868f1192de..b5c87d48b3 100644
--- a/include/sysemu/cpus.h
+++ b/include/sysemu/cpus.h
@@ -55,6 +55,4 @@ extern int smp_cores;
 extern int smp_threads;
 #endif
 
-void list_cpus(const char *optarg);
-
 #endif
diff --git a/softmmu/cpus.c b/softmmu/cpus.c
index e1d84c8ccb..7b75bb66d5 100644
--- a/softmmu/cpus.c
+++ b/softmmu/cpus.c
@@ -728,14 +728,6 @@ int vm_stop_force_state(RunState state)
     }
 }
 
-void list_cpus(const char *optarg)
-{
-    /* XXX: implement xxx_cpu_list for targets that still miss it */
-#if defined(cpu_list)
-    cpu_list();
-#endif
-}
-
 void qmp_memsave(int64_t addr, int64_t size, const char *filename,
                  bool has_cpu, int64_t cpu_index, Error **errp)
 {
-- 
2.34.1


Re: [PATCH-for-7.0 v3] softmmu: List CPU types again
Posted by Philippe Mathieu-Daudé 2 years, 1 month ago
Hi Paolo,

Could you take this patch?

On 14/3/22 15:01, Philippe Mathieu-Daudé wrote:
> From: Philippe Mathieu-Daudé <f4bug@amsat.org>
> 
> Commit e0220bb5b2 made cpus.c target-agnostic but didn't notice
> the cpu_list() function is only defined in target-specific code
> in "cpu.h". Move list_cpus() declaration to "exec/cpu-common.h"
> because this function is not softmmu-specific and can also be
> used by user-mode, along with moving its implementation to cpu.c,
> which is compiled per target.
> 
> Fixes: e0220bb5b2 ("softmmu: Build target-agnostic objects once")
> Reported-by: Max Filippov <jcmvbkbc@gmail.com>
> Suggested-by: Paolo Bonzini <pbonzini@redhat.com>
> Reviewed-by: Thomas Huth <thuth@redhat.com>
> Tested-by: Max Filippov <jcmvbkbc@gmail.com>
> Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
> ---
> Since v2:
> - include exec/cpu-all.h -> exec/cpu-common.h (thuth)
> ---
>   cpu.c                     | 9 +++++++++
>   include/exec/cpu-common.h | 2 ++
>   include/sysemu/cpus.h     | 2 --
>   softmmu/cpus.c            | 8 --------
>   4 files changed, 11 insertions(+), 10 deletions(-)
> 
> diff --git a/cpu.c b/cpu.c
> index d564886149..be1f8b074c 100644
> --- a/cpu.c
> +++ b/cpu.c
> @@ -35,6 +35,7 @@
>   #include "sysemu/tcg.h"
>   #include "sysemu/kvm.h"
>   #include "sysemu/replay.h"
> +#include "exec/cpu-common.h"
>   #include "exec/exec-all.h"
>   #include "exec/translate-all.h"
>   #include "exec/log.h"
> @@ -266,6 +267,14 @@ const char *parse_cpu_option(const char *cpu_option)
>       return cpu_type;
>   }
>   
> +void list_cpus(const char *optarg)
> +{
> +    /* XXX: implement xxx_cpu_list for targets that still miss it */
> +#if defined(cpu_list)
> +    cpu_list();
> +#endif
> +}
> +
>   #if defined(CONFIG_USER_ONLY)
>   void tb_invalidate_phys_addr(target_ulong addr)
>   {
> diff --git a/include/exec/cpu-common.h b/include/exec/cpu-common.h
> index 7f7b5943c7..50a7d2912e 100644
> --- a/include/exec/cpu-common.h
> +++ b/include/exec/cpu-common.h
> @@ -158,4 +158,6 @@ int cpu_memory_rw_debug(CPUState *cpu, vaddr addr,
>   /* vl.c */
>   extern int singlestep;
>   
> +void list_cpus(const char *optarg);
> +
>   #endif /* CPU_COMMON_H */
> diff --git a/include/sysemu/cpus.h b/include/sysemu/cpus.h
> index 868f1192de..b5c87d48b3 100644
> --- a/include/sysemu/cpus.h
> +++ b/include/sysemu/cpus.h
> @@ -55,6 +55,4 @@ extern int smp_cores;
>   extern int smp_threads;
>   #endif
>   
> -void list_cpus(const char *optarg);
> -
>   #endif
> diff --git a/softmmu/cpus.c b/softmmu/cpus.c
> index e1d84c8ccb..7b75bb66d5 100644
> --- a/softmmu/cpus.c
> +++ b/softmmu/cpus.c
> @@ -728,14 +728,6 @@ int vm_stop_force_state(RunState state)
>       }
>   }
>   
> -void list_cpus(const char *optarg)
> -{
> -    /* XXX: implement xxx_cpu_list for targets that still miss it */
> -#if defined(cpu_list)
> -    cpu_list();
> -#endif
> -}
> -
>   void qmp_memsave(int64_t addr, int64_t size, const char *filename,
>                    bool has_cpu, int64_t cpu_index, Error **errp)
>   {


Re: [PATCH-for-7.0 v3] softmmu: List CPU types again
Posted by Thomas Huth 2 years, 1 month ago
On 15/03/2022 12.11, Philippe Mathieu-Daudé wrote:
> Hi Paolo,
> 
> Could you take this patch?

I'm planning a PR for today ... I can add it there ("-cpu help" also does 
not work on s390x, so I dare to say that it is related) if Paolo does not 
plan a PR for rc0.

  Thomas


Re: [PATCH-for-7.0 v3] softmmu: List CPU types again
Posted by Philippe Mathieu-Daudé 2 years, 1 month ago
On 15/3/22 12:13, Thomas Huth wrote:
> On 15/03/2022 12.11, Philippe Mathieu-Daudé wrote:
>> Hi Paolo,
>>
>> Could you take this patch?
> 
> I'm planning a PR for today ... I can add it there ("-cpu help" also 
> does not work on s390x, so I dare to say that it is related) if Paolo 
> does not plan a PR for rc0.

I was hesitating between asking Paolo or you :) I just missed
Paolo's pullreq, so if you can take it that would be great.

Thanks,

Phil.