linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] MIPS: generic: enable SMP on SMVP systems
@ 2021-12-17 18:39 Sander Vanheule
  2021-12-17 22:12 ` Jiaxun Yang
  0 siblings, 1 reply; 3+ messages in thread
From: Sander Vanheule @ 2021-12-17 18:39 UTC (permalink / raw)
  To: linux-mips
  Cc: Paul Burton, Thomas Bogendoerfer, linux-kernel, Sander Vanheule,
	INAGAKI Hiroshi

In addition to CPS SMP setups, also try to initialise MT SMP setups with
multiple VPEs per CPU core. CMP SMP support is not provided as it is
considered deprecated.

Additionally, rework the code by dropping the err variable and make it
similar to how other platforms perform this initialisation.

Co-developed-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Signed-off-by: INAGAKI Hiroshi <musashino.open@gmail.com>
Signed-off-by: Sander Vanheule <sander@svanheule.net>
---
 arch/mips/generic/init.c | 11 ++++++-----
 1 file changed, 6 insertions(+), 5 deletions(-)

diff --git a/arch/mips/generic/init.c b/arch/mips/generic/init.c
index 1842cddd8356..1d712eac1617 100644
--- a/arch/mips/generic/init.c
+++ b/arch/mips/generic/init.c
@@ -110,14 +110,15 @@ void __init plat_mem_setup(void)
 
 void __init device_tree_init(void)
 {
-	int err;
-
 	unflatten_and_copy_device_tree();
 	mips_cpc_probe();
 
-	err = register_cps_smp_ops();
-	if (err)
-		err = register_up_smp_ops();
+	if (!register_cps_smp_ops())
+		return;
+	if (!register_vsmp_smp_ops())
+		return;
+
+	register_up_smp_ops();
 }
 
 int __init apply_mips_fdt_fixups(void *fdt_out, size_t fdt_out_size,
-- 
2.33.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] MIPS: generic: enable SMP on SMVP systems
  2021-12-17 18:39 [PATCH] MIPS: generic: enable SMP on SMVP systems Sander Vanheule
@ 2021-12-17 22:12 ` Jiaxun Yang
  2021-12-18  9:36   ` Sander Vanheule
  0 siblings, 1 reply; 3+ messages in thread
From: Jiaxun Yang @ 2021-12-17 22:12 UTC (permalink / raw)
  To: Sander Vanheule, linux-mips
  Cc: Paul Burton, Thomas Bogendoerfer, linux-kernel, INAGAKI Hiroshi



在 2021/12/17 18:39, Sander Vanheule 写道:
> In addition to CPS SMP setups, also try to initialise MT SMP setups with
> multiple VPEs per CPU core. CMP SMP support is not provided as it is
> considered deprecated.
>
> Additionally, rework the code by dropping the err variable and make it
> similar to how other platforms perform this initialisation.
Hi,

Thanks for your patch :-)

However there is a probem that register_vsmp_smp_ops never returns error
if CONFIG_MIPS_MT_SMP is enabled. But generic kernel is supposed to
run on systems with & without MT.

So probably you need:

diff --git a/arch/mips/include/asm/smp-ops.h 
b/arch/mips/include/asm/smp-ops.h
index 65618ff1280c..864aea803984 100644
--- a/arch/mips/include/asm/smp-ops.h
+++ b/arch/mips/include/asm/smp-ops.h
@@ -101,6 +101,9 @@ static inline int register_vsmp_smp_ops(void)
  #ifdef CONFIG_MIPS_MT_SMP
         extern const struct plat_smp_ops vsmp_smp_ops;

+       if (!cpu_has_mipsmt)
+               return -ENODEV;
+
         register_smp_ops(&vsmp_smp_ops);

         return 0;

Thanks.

- Jiaxun

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] MIPS: generic: enable SMP on SMVP systems
  2021-12-17 22:12 ` Jiaxun Yang
@ 2021-12-18  9:36   ` Sander Vanheule
  0 siblings, 0 replies; 3+ messages in thread
From: Sander Vanheule @ 2021-12-18  9:36 UTC (permalink / raw)
  To: Jiaxun Yang, linux-mips
  Cc: Paul Burton, Thomas Bogendoerfer, linux-kernel, INAGAKI Hiroshi

Hi Jiaxun,

On Fri, 2021-12-17 at 22:12 +0000, Jiaxun Yang wrote:
> 
> 
> 在 2021/12/17 18:39, Sander Vanheule 写道:
> > In addition to CPS SMP setups, also try to initialise MT SMP setups with
> > multiple VPEs per CPU core. CMP SMP support is not provided as it is
> > considered deprecated.
> > 
> > Additionally, rework the code by dropping the err variable and make it
> > similar to how other platforms perform this initialisation.
> Hi,
> 
> Thanks for your patch :-)
> 
> However there is a probem that register_vsmp_smp_ops never returns error
> if CONFIG_MIPS_MT_SMP is enabled. But generic kernel is supposed to
> run on systems with & without MT.
> 
> So probably you need:
> 
> diff --git a/arch/mips/include/asm/smp-ops.h 
> b/arch/mips/include/asm/smp-ops.h
> index 65618ff1280c..864aea803984 100644
> --- a/arch/mips/include/asm/smp-ops.h
> +++ b/arch/mips/include/asm/smp-ops.h
> @@ -101,6 +101,9 @@ static inline int register_vsmp_smp_ops(void)
>   #ifdef CONFIG_MIPS_MT_SMP
>          extern const struct plat_smp_ops vsmp_smp_ops;
> 
> +       if (!cpu_has_mipsmt)
> +               return -ENODEV;
> +
>          register_smp_ops(&vsmp_smp_ops);
> 
>          return 0;


Thanks for the feedback, I was wondering if we had missed something :)
I'll send a v2 (series) including this addition.

Best,
Sander

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2021-12-18  9:36 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-12-17 18:39 [PATCH] MIPS: generic: enable SMP on SMVP systems Sander Vanheule
2021-12-17 22:12 ` Jiaxun Yang
2021-12-18  9:36   ` Sander Vanheule

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).