[PATCH] hw/ppc/mac.h: Remove MAX_CPUS macro

Peter Maydell posted 1 patch 2 years, 6 months ago
Test checkpatch passed
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20211105184216.120972-1-peter.maydell@linaro.org
Maintainers: Mark Cave-Ayland <mark.cave-ayland@ilande.co.uk>
hw/ppc/mac.h          | 3 ---
hw/ppc/mac_newworld.c | 3 ++-
hw/ppc/mac_oldworld.c | 3 ++-
3 files changed, 4 insertions(+), 5 deletions(-)
[PATCH] hw/ppc/mac.h: Remove MAX_CPUS macro
Posted by Peter Maydell 2 years, 6 months ago
The mac.h header defines a MAX_CPUS macro. This is confusingly named,
because it suggests it's a generic setting, but in fact it's used
by only the g3beige and mac99 machines. It's also using a single
macro for two values which aren't inherently the same -- if one
of these two machines was updated to support SMP configurations
then it would want a different max_cpus value to the other.

Since the macro is used in only two places, just expand it out
and get rid of it. If hypothetical future work to support SMP
in these boards needs a compile-time-known limit on the number
of CPUs, we can give it a suitable name at that point.

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
---
Minor bit of cleanup prompted by discussion on
https://gitlab.com/qemu-project/qemu/-/issues/672
---
 hw/ppc/mac.h          | 3 ---
 hw/ppc/mac_newworld.c | 3 ++-
 hw/ppc/mac_oldworld.c | 3 ++-
 3 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/hw/ppc/mac.h b/hw/ppc/mac.h
index 22c8408078d..a1fa8f8e41a 100644
--- a/hw/ppc/mac.h
+++ b/hw/ppc/mac.h
@@ -36,9 +36,6 @@
 #include "hw/pci-host/uninorth.h"
 #include "qom/object.h"
 
-/* SMP is not enabled, for now */
-#define MAX_CPUS 1
-
 #define NVRAM_SIZE        0x2000
 #define PROM_FILENAME    "openbios-ppc"
 
diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
index 7bb7ac39975..4bddb529c2a 100644
--- a/hw/ppc/mac_newworld.c
+++ b/hw/ppc/mac_newworld.c
@@ -581,7 +581,8 @@ static void core99_machine_class_init(ObjectClass *oc, void *data)
     mc->desc = "Mac99 based PowerMAC";
     mc->init = ppc_core99_init;
     mc->block_default_type = IF_IDE;
-    mc->max_cpus = MAX_CPUS;
+    /* SMP is not supported currently */
+    mc->max_cpus = 1;
     mc->default_boot_order = "cd";
     mc->default_display = "std";
     mc->kvm_type = core99_kvm_type;
diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c
index de2be960e6c..7016979a7cd 100644
--- a/hw/ppc/mac_oldworld.c
+++ b/hw/ppc/mac_oldworld.c
@@ -423,7 +423,8 @@ static void heathrow_class_init(ObjectClass *oc, void *data)
     mc->desc = "Heathrow based PowerMAC";
     mc->init = ppc_heathrow_init;
     mc->block_default_type = IF_IDE;
-    mc->max_cpus = MAX_CPUS;
+    /* SMP is not supported currently */
+    mc->max_cpus = 1;
 #ifndef TARGET_PPC64
     mc->is_default = true;
 #endif
-- 
2.25.1


Re: [PATCH] hw/ppc/mac.h: Remove MAX_CPUS macro
Posted by Philippe Mathieu-Daudé 2 years, 6 months ago
On 11/5/21 19:42, Peter Maydell wrote:
> The mac.h header defines a MAX_CPUS macro. This is confusingly named,
> because it suggests it's a generic setting, but in fact it's used
> by only the g3beige and mac99 machines. It's also using a single
> macro for two values which aren't inherently the same -- if one
> of these two machines was updated to support SMP configurations
> then it would want a different max_cpus value to the other.
> 
> Since the macro is used in only two places, just expand it out
> and get rid of it. If hypothetical future work to support SMP
> in these boards needs a compile-time-known limit on the number
> of CPUs, we can give it a suitable name at that point.
> 
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
> ---
> Minor bit of cleanup prompted by discussion on
> https://gitlab.com/qemu-project/qemu/-/issues/672
> ---
>  hw/ppc/mac.h          | 3 ---
>  hw/ppc/mac_newworld.c | 3 ++-
>  hw/ppc/mac_oldworld.c | 3 ++-
>  3 files changed, 4 insertions(+), 5 deletions(-)

Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>

Re: [PATCH] hw/ppc/mac.h: Remove MAX_CPUS macro
Posted by Cédric Le Goater 2 years, 6 months ago
On 11/5/21 19:42, Peter Maydell wrote:
> The mac.h header defines a MAX_CPUS macro. This is confusingly named,
> because it suggests it's a generic setting, but in fact it's used
> by only the g3beige and mac99 machines. It's also using a single
> macro for two values which aren't inherently the same -- if one
> of these two machines was updated to support SMP configurations
> then it would want a different max_cpus value to the other.
> 
> Since the macro is used in only two places, just expand it out
> and get rid of it. If hypothetical future work to support SMP
> in these boards needs a compile-time-known limit on the number
> of CPUs, we can give it a suitable name at that point.

Yes. the mac99 could theoretically support SMP with the 970MP CPU
but I have never seen plan for this.

Anyhow,
  
> Signed-off-by: Peter Maydell <peter.maydell@linaro.org>

Reviewed-by: Cédric Le Goater <clg@kaod.org>

Thanks,

C.

> ---
> Minor bit of cleanup prompted by discussion on
> https://gitlab.com/qemu-project/qemu/-/issues/672
> ---
>   hw/ppc/mac.h          | 3 ---
>   hw/ppc/mac_newworld.c | 3 ++-
>   hw/ppc/mac_oldworld.c | 3 ++-
>   3 files changed, 4 insertions(+), 5 deletions(-)
> 
> diff --git a/hw/ppc/mac.h b/hw/ppc/mac.h
> index 22c8408078d..a1fa8f8e41a 100644
> --- a/hw/ppc/mac.h
> +++ b/hw/ppc/mac.h
> @@ -36,9 +36,6 @@
>   #include "hw/pci-host/uninorth.h"
>   #include "qom/object.h"
>   
> -/* SMP is not enabled, for now */
> -#define MAX_CPUS 1
> -
>   #define NVRAM_SIZE        0x2000
>   #define PROM_FILENAME    "openbios-ppc"
>   
> diff --git a/hw/ppc/mac_newworld.c b/hw/ppc/mac_newworld.c
> index 7bb7ac39975..4bddb529c2a 100644
> --- a/hw/ppc/mac_newworld.c
> +++ b/hw/ppc/mac_newworld.c
> @@ -581,7 +581,8 @@ static void core99_machine_class_init(ObjectClass *oc, void *data)
>       mc->desc = "Mac99 based PowerMAC";
>       mc->init = ppc_core99_init;
>       mc->block_default_type = IF_IDE;
> -    mc->max_cpus = MAX_CPUS;
> +    /* SMP is not supported currently */
> +    mc->max_cpus = 1;
>       mc->default_boot_order = "cd";
>       mc->default_display = "std";
>       mc->kvm_type = core99_kvm_type;
> diff --git a/hw/ppc/mac_oldworld.c b/hw/ppc/mac_oldworld.c
> index de2be960e6c..7016979a7cd 100644
> --- a/hw/ppc/mac_oldworld.c
> +++ b/hw/ppc/mac_oldworld.c
> @@ -423,7 +423,8 @@ static void heathrow_class_init(ObjectClass *oc, void *data)
>       mc->desc = "Heathrow based PowerMAC";
>       mc->init = ppc_heathrow_init;
>       mc->block_default_type = IF_IDE;
> -    mc->max_cpus = MAX_CPUS;
> +    /* SMP is not supported currently */
> +    mc->max_cpus = 1;
>   #ifndef TARGET_PPC64
>       mc->is_default = true;
>   #endif
>