linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v2 0/2] ARM/ARM64: Move cpu_logical_map[] to smp.h
@ 2019-06-03 23:18 Florian Fainelli
  2019-06-03 23:18 ` [PATCH v2 1/2] arm64: smp: Moved " Florian Fainelli
  2019-06-03 23:18 ` [PATCH v2 2/2] ARM: " Florian Fainelli
  0 siblings, 2 replies; 7+ messages in thread
From: Florian Fainelli @ 2019-06-03 23:18 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: rmk+kernel, Florian Fainelli, Catalin Marinas, Will Deacon,
	Shaokun Zhang, open list

Hi all,

These two patches make ARM and ARM64 consistent with other
architectures: sh, sparc, xtensa, mips, etc. to define cpu_logical_map
under asm/smp.h, which is included by linux/smp.h. This allows other
pieces of code like irqchip drivers to get access to cpu_logical_map[]
using linux/smp.h.

Changes in v2:

- just move __cpu_logical_map[]/cpu_logical_map[] to smp.h

Florian Fainelli (2):
  arm64: smp: Moved cpu_logical_map[] to smp.h
  ARM: smp: Moved cpu_logical_map[] to smp.h

 arch/arm/include/asm/smp.h        | 6 ++++++
 arch/arm/include/asm/smp_plat.h   | 5 -----
 arch/arm64/include/asm/smp.h      | 6 ++++++
 arch/arm64/include/asm/smp_plat.h | 5 -----
 4 files changed, 12 insertions(+), 10 deletions(-)

-- 
2.17.1


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

* [PATCH v2 1/2] arm64: smp: Moved cpu_logical_map[] to smp.h
  2019-06-03 23:18 [PATCH v2 0/2] ARM/ARM64: Move cpu_logical_map[] to smp.h Florian Fainelli
@ 2019-06-03 23:18 ` Florian Fainelli
  2019-06-05 12:09   ` Will Deacon
  2019-06-03 23:18 ` [PATCH v2 2/2] ARM: " Florian Fainelli
  1 sibling, 1 reply; 7+ messages in thread
From: Florian Fainelli @ 2019-06-03 23:18 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: rmk+kernel, Florian Fainelli, Catalin Marinas, Will Deacon,
	Shaokun Zhang, open list

asm/smp.h is included by linux/smp.h and some drivers, in particular
irqchip drivers can access cpu_logical_map[] in order to perform SMP
affinity tasks. Make arm64 consistent with other architectures here.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
 arch/arm64/include/asm/smp.h      | 6 ++++++
 arch/arm64/include/asm/smp_plat.h | 5 -----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/arch/arm64/include/asm/smp.h b/arch/arm64/include/asm/smp.h
index 18553f399e08..eae2d6c01262 100644
--- a/arch/arm64/include/asm/smp.h
+++ b/arch/arm64/include/asm/smp.h
@@ -53,6 +53,12 @@ DECLARE_PER_CPU_READ_MOSTLY(int, cpu_number);
  */
 #define raw_smp_processor_id() (*raw_cpu_ptr(&cpu_number))
 
+/*
+ * Logical CPU mapping.
+ */
+extern u64 __cpu_logical_map[NR_CPUS];
+#define cpu_logical_map(cpu)    __cpu_logical_map[cpu]
+
 struct seq_file;
 
 /*
diff --git a/arch/arm64/include/asm/smp_plat.h b/arch/arm64/include/asm/smp_plat.h
index af58dcdefb21..7a495403a18a 100644
--- a/arch/arm64/include/asm/smp_plat.h
+++ b/arch/arm64/include/asm/smp_plat.h
@@ -36,11 +36,6 @@ static inline u32 mpidr_hash_size(void)
 	return 1 << mpidr_hash.bits;
 }
 
-/*
- * Logical CPU mapping.
- */
-extern u64 __cpu_logical_map[NR_CPUS];
-#define cpu_logical_map(cpu)    __cpu_logical_map[cpu]
 /*
  * Retrieve logical cpu index corresponding to a given MPIDR.Aff*
  *  - mpidr: MPIDR.Aff* bits to be used for the look-up
-- 
2.17.1


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

* [PATCH v2 2/2] ARM: smp: Moved cpu_logical_map[] to smp.h
  2019-06-03 23:18 [PATCH v2 0/2] ARM/ARM64: Move cpu_logical_map[] to smp.h Florian Fainelli
  2019-06-03 23:18 ` [PATCH v2 1/2] arm64: smp: Moved " Florian Fainelli
@ 2019-06-03 23:18 ` Florian Fainelli
  2019-06-21  7:57   ` Russell King - ARM Linux admin
  1 sibling, 1 reply; 7+ messages in thread
From: Florian Fainelli @ 2019-06-03 23:18 UTC (permalink / raw)
  To: linux-arm-kernel
  Cc: rmk+kernel, Florian Fainelli, Catalin Marinas, Will Deacon,
	Shaokun Zhang, open list

asm/smp.h is included by linux/smp.h and some drivers, in particular
irqchip drivers can access cpu_logical_map[] in order to perform SMP
affinity tasks. Make arm64 consistent with other architectures here.

Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
---
 arch/arm/include/asm/smp.h      | 6 ++++++
 arch/arm/include/asm/smp_plat.h | 5 -----
 2 files changed, 6 insertions(+), 5 deletions(-)

diff --git a/arch/arm/include/asm/smp.h b/arch/arm/include/asm/smp.h
index 451ae684aaf4..112d78e82f35 100644
--- a/arch/arm/include/asm/smp.h
+++ b/arch/arm/include/asm/smp.h
@@ -20,6 +20,12 @@
 
 #define raw_smp_processor_id() (current_thread_info()->cpu)
 
+/*
+ * Logical CPU mapping.
+ */
+extern u32 __cpu_logical_map[];
+#define cpu_logical_map(cpu)	__cpu_logical_map[cpu]
+
 struct seq_file;
 
 /*
diff --git a/arch/arm/include/asm/smp_plat.h b/arch/arm/include/asm/smp_plat.h
index f2c36acf9886..ca6b91d400cf 100644
--- a/arch/arm/include/asm/smp_plat.h
+++ b/arch/arm/include/asm/smp_plat.h
@@ -66,11 +66,6 @@ static inline int cache_ops_need_broadcast(void)
 }
 #endif
 
-/*
- * Logical CPU mapping.
- */
-extern u32 __cpu_logical_map[];
-#define cpu_logical_map(cpu)	__cpu_logical_map[cpu]
 /*
  * Retrieve logical cpu index corresponding to a given MPIDR[23:0]
  *  - mpidr: MPIDR[23:0] to be used for the look-up
-- 
2.17.1


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

* Re: [PATCH v2 1/2] arm64: smp: Moved cpu_logical_map[] to smp.h
  2019-06-03 23:18 ` [PATCH v2 1/2] arm64: smp: Moved " Florian Fainelli
@ 2019-06-05 12:09   ` Will Deacon
  2019-06-07 17:18     ` Florian Fainelli
  0 siblings, 1 reply; 7+ messages in thread
From: Will Deacon @ 2019-06-05 12:09 UTC (permalink / raw)
  To: Florian Fainelli
  Cc: linux-arm-kernel, rmk+kernel, Catalin Marinas, Shaokun Zhang, open list

On Mon, Jun 03, 2019 at 04:18:29PM -0700, Florian Fainelli wrote:
> asm/smp.h is included by linux/smp.h and some drivers, in particular
> irqchip drivers can access cpu_logical_map[] in order to perform SMP
> affinity tasks. Make arm64 consistent with other architectures here.
> 
> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
> ---
>  arch/arm64/include/asm/smp.h      | 6 ++++++
>  arch/arm64/include/asm/smp_plat.h | 5 -----
>  2 files changed, 6 insertions(+), 5 deletions(-)

Thanks. I'll grab this as a fix in an attempt to save you having to wait an
extra cycle before you can rely on it.

Will

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

* Re: [PATCH v2 1/2] arm64: smp: Moved cpu_logical_map[] to smp.h
  2019-06-05 12:09   ` Will Deacon
@ 2019-06-07 17:18     ` Florian Fainelli
  0 siblings, 0 replies; 7+ messages in thread
From: Florian Fainelli @ 2019-06-07 17:18 UTC (permalink / raw)
  To: Will Deacon
  Cc: linux-arm-kernel, rmk+kernel, Catalin Marinas, Shaokun Zhang, open list

On 6/5/19 5:09 AM, Will Deacon wrote:
> On Mon, Jun 03, 2019 at 04:18:29PM -0700, Florian Fainelli wrote:
>> asm/smp.h is included by linux/smp.h and some drivers, in particular
>> irqchip drivers can access cpu_logical_map[] in order to perform SMP
>> affinity tasks. Make arm64 consistent with other architectures here.
>>
>> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
>> ---
>>  arch/arm64/include/asm/smp.h      | 6 ++++++
>>  arch/arm64/include/asm/smp_plat.h | 5 -----
>>  2 files changed, 6 insertions(+), 5 deletions(-)
> 
> Thanks. I'll grab this as a fix in an attempt to save you having to wait an
> extra cycle before you can rely on it.

Saw those in v5.3-rc4, thanks a lot!

Russell I dropped those in your patch tracker:

https://www.armlinux.org.uk/developer/patches/viewpatch.php?id=8866/1
-- 
Florian

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

* Re: [PATCH v2 2/2] ARM: smp: Moved cpu_logical_map[] to smp.h
  2019-06-03 23:18 ` [PATCH v2 2/2] ARM: " Florian Fainelli
@ 2019-06-21  7:57   ` Russell King - ARM Linux admin
  2019-06-21 14:46     ` Florian Fainelli
  0 siblings, 1 reply; 7+ messages in thread
From: Russell King - ARM Linux admin @ 2019-06-21  7:57 UTC (permalink / raw)
  To: Florian Fainelli
  Cc: linux-arm-kernel, Catalin Marinas, Will Deacon, open list, Shaokun Zhang

On Mon, Jun 03, 2019 at 04:18:30PM -0700, Florian Fainelli wrote:
> asm/smp.h is included by linux/smp.h and some drivers, in particular
> irqchip drivers can access cpu_logical_map[] in order to perform SMP
> affinity tasks. Make arm64 consistent with other architectures here.
> 
> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>

I merged this last night, and it causes ojn's builder to fail 98
defconfigs with errors like:

arch/arm/include/asm/smp_plat.h:79:7: error: implicit declaration of function 'cpu_logical_map' [-Werror=implicit-function-declaration]
arch/arm/kernel/setup.c:594:21: error: lvalue required as left operand of assignment
arch/arm/kernel/setup.c:596:22: error: lvalue required as left operand of assignment

Dropping this patch.

Also, you may wish to make the patch description refer to the correct
architecture.

> ---
>  arch/arm/include/asm/smp.h      | 6 ++++++
>  arch/arm/include/asm/smp_plat.h | 5 -----
>  2 files changed, 6 insertions(+), 5 deletions(-)
> 
> diff --git a/arch/arm/include/asm/smp.h b/arch/arm/include/asm/smp.h
> index 451ae684aaf4..112d78e82f35 100644
> --- a/arch/arm/include/asm/smp.h
> +++ b/arch/arm/include/asm/smp.h
> @@ -20,6 +20,12 @@
>  
>  #define raw_smp_processor_id() (current_thread_info()->cpu)
>  
> +/*
> + * Logical CPU mapping.
> + */
> +extern u32 __cpu_logical_map[];
> +#define cpu_logical_map(cpu)	__cpu_logical_map[cpu]
> +
>  struct seq_file;
>  
>  /*
> diff --git a/arch/arm/include/asm/smp_plat.h b/arch/arm/include/asm/smp_plat.h
> index f2c36acf9886..ca6b91d400cf 100644
> --- a/arch/arm/include/asm/smp_plat.h
> +++ b/arch/arm/include/asm/smp_plat.h
> @@ -66,11 +66,6 @@ static inline int cache_ops_need_broadcast(void)
>  }
>  #endif
>  
> -/*
> - * Logical CPU mapping.
> - */
> -extern u32 __cpu_logical_map[];
> -#define cpu_logical_map(cpu)	__cpu_logical_map[cpu]
>  /*
>   * Retrieve logical cpu index corresponding to a given MPIDR[23:0]
>   *  - mpidr: MPIDR[23:0] to be used for the look-up
> -- 
> 2.17.1
> 
> 
> _______________________________________________
> linux-arm-kernel mailing list
> linux-arm-kernel@lists.infradead.org
> http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
> 

-- 
RMK's Patch system: https://www.armlinux.org.uk/developer/patches/
FTTC broadband for 0.8mile line in suburbia: sync at 12.1Mbps down 622kbps up
According to speedtest.net: 11.9Mbps down 500kbps up

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

* Re: [PATCH v2 2/2] ARM: smp: Moved cpu_logical_map[] to smp.h
  2019-06-21  7:57   ` Russell King - ARM Linux admin
@ 2019-06-21 14:46     ` Florian Fainelli
  0 siblings, 0 replies; 7+ messages in thread
From: Florian Fainelli @ 2019-06-21 14:46 UTC (permalink / raw)
  To: Russell King - ARM Linux admin
  Cc: linux-arm-kernel, Catalin Marinas, Will Deacon, open list, Shaokun Zhang



On 6/21/2019 12:57 AM, Russell King - ARM Linux admin wrote:
> On Mon, Jun 03, 2019 at 04:18:30PM -0700, Florian Fainelli wrote:
>> asm/smp.h is included by linux/smp.h and some drivers, in particular
>> irqchip drivers can access cpu_logical_map[] in order to perform SMP
>> affinity tasks. Make arm64 consistent with other architectures here.
>>
>> Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
> 
> I merged this last night, and it causes ojn's builder to fail 98
> defconfigs with errors like:
> 
> arch/arm/include/asm/smp_plat.h:79:7: error: implicit declaration of function 'cpu_logical_map' [-Werror=implicit-function-declaration]
> arch/arm/kernel/setup.c:594:21: error: lvalue required as left operand of assignment
> arch/arm/kernel/setup.c:596:22: error: lvalue required as left operand of assignment
> 
> Dropping this patch.
> 
> Also, you may wish to make the patch description refer to the correct
> architecture.

Sorry about that, I will go back and revisit this patch.
-- 
Florian

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

end of thread, other threads:[~2019-06-21 14:46 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-06-03 23:18 [PATCH v2 0/2] ARM/ARM64: Move cpu_logical_map[] to smp.h Florian Fainelli
2019-06-03 23:18 ` [PATCH v2 1/2] arm64: smp: Moved " Florian Fainelli
2019-06-05 12:09   ` Will Deacon
2019-06-07 17:18     ` Florian Fainelli
2019-06-03 23:18 ` [PATCH v2 2/2] ARM: " Florian Fainelli
2019-06-21  7:57   ` Russell King - ARM Linux admin
2019-06-21 14:46     ` Florian Fainelli

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).