All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] powerpc/64: Reclaim CPU_FTR_SUBCORE
@ 2017-05-29  1:53 Michael Ellerman
  2017-05-30  2:48 ` Balbir Singh
  2017-06-01 13:31 ` Michael Ellerman
  0 siblings, 2 replies; 4+ messages in thread
From: Michael Ellerman @ 2017-05-29  1:53 UTC (permalink / raw)
  To: linuxppc-dev; +Cc: mikey, paulus, npiggin

We are running low on CPU feature bits, so we only want to use them when
it's really necessary.

CPU_FTR_SUBCORE is only used in one place, and only in C, so we don't
need it in order to make asm patching work. It can only be set on
"Power8" CPUs, which in practice means POWER8, POWER8E and POWER8NVL.
There are no plans to implement it on future CPUs, but if there ever
were we could retrofit it then.

Although KVM uses subcores, it never looks at the CPU feature, it either
looks at the ISA level or the threads_per_subcore value.

So drop the CPU feature and do a PVR check instead. Drop the device tree
"subcore" feature as we no longer support doing anything with it, and we
will drop it from skiboot too.

Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
---
 arch/powerpc/include/asm/cputable.h      | 3 +--
 arch/powerpc/kernel/dt_cpu_ftrs.c        | 1 -
 arch/powerpc/platforms/powernv/subcore.c | 8 +++++++-
 3 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/arch/powerpc/include/asm/cputable.h b/arch/powerpc/include/asm/cputable.h
index c2d509584a98..d02ad93bf708 100644
--- a/arch/powerpc/include/asm/cputable.h
+++ b/arch/powerpc/include/asm/cputable.h
@@ -214,7 +214,6 @@ enum {
 #define CPU_FTR_DAWR			LONG_ASM_CONST(0x0400000000000000)
 #define CPU_FTR_DABRX			LONG_ASM_CONST(0x0800000000000000)
 #define CPU_FTR_PMAO_BUG		LONG_ASM_CONST(0x1000000000000000)
-#define CPU_FTR_SUBCORE			LONG_ASM_CONST(0x2000000000000000)
 #define CPU_FTR_POWER9_DD1		LONG_ASM_CONST(0x4000000000000000)
 
 #ifndef __ASSEMBLY__
@@ -463,7 +462,7 @@ enum {
 	    CPU_FTR_STCX_CHECKS_ADDRESS | CPU_FTR_POPCNTB | CPU_FTR_POPCNTD | \
 	    CPU_FTR_ICSWX | CPU_FTR_CFAR | CPU_FTR_HVMODE | CPU_FTR_VMX_COPY | \
 	    CPU_FTR_DBELL | CPU_FTR_HAS_PPR | CPU_FTR_DAWR | \
-	    CPU_FTR_ARCH_207S | CPU_FTR_TM_COMP | CPU_FTR_SUBCORE)
+	    CPU_FTR_ARCH_207S | CPU_FTR_TM_COMP)
 #define CPU_FTRS_POWER8E (CPU_FTRS_POWER8 | CPU_FTR_PMAO_BUG)
 #define CPU_FTRS_POWER8_DD1 (CPU_FTRS_POWER8 & ~CPU_FTR_DBELL)
 #define CPU_FTRS_POWER9 (CPU_FTR_USE_TB | CPU_FTR_LWSYNC | \
diff --git a/arch/powerpc/kernel/dt_cpu_ftrs.c b/arch/powerpc/kernel/dt_cpu_ftrs.c
index 050925b5b451..d6f05e4dc328 100644
--- a/arch/powerpc/kernel/dt_cpu_ftrs.c
+++ b/arch/powerpc/kernel/dt_cpu_ftrs.c
@@ -642,7 +642,6 @@ static struct dt_cpu_feature_match __initdata
 	{"processor-control-facility", feat_enable_dbell, CPU_FTR_DBELL},
 	{"processor-control-facility-v3", feat_enable_dbell, CPU_FTR_DBELL},
 	{"processor-utilization-of-resources-register", feat_enable_purr, 0},
-	{"subcore", feat_enable, CPU_FTR_SUBCORE},
 	{"no-execute", feat_enable, 0},
 	{"strong-access-ordering", feat_enable, CPU_FTR_SAO},
 	{"cache-inhibited-large-page", feat_enable_large_ci, 0},
diff --git a/arch/powerpc/platforms/powernv/subcore.c b/arch/powerpc/platforms/powernv/subcore.c
index 0babef11136f..8c6119280c13 100644
--- a/arch/powerpc/platforms/powernv/subcore.c
+++ b/arch/powerpc/platforms/powernv/subcore.c
@@ -407,7 +407,13 @@ static DEVICE_ATTR(subcores_per_core, 0644,
 
 static int subcore_init(void)
 {
-	if (!cpu_has_feature(CPU_FTR_SUBCORE))
+	unsigned pvr_ver;
+
+	pvr_ver = PVR_VER(mfspr(SPRN_PVR));
+
+	if (pvr_ver != PVR_POWER8 &&
+	    pvr_ver != PVR_POWER8E &&
+	    pvr_ver != PVR_POWER8NVL)
 		return 0;
 
 	/*
-- 
2.7.4

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

* Re: [PATCH] powerpc/64: Reclaim CPU_FTR_SUBCORE
  2017-05-29  1:53 [PATCH] powerpc/64: Reclaim CPU_FTR_SUBCORE Michael Ellerman
@ 2017-05-30  2:48 ` Balbir Singh
  2017-05-30 10:48   ` Michael Ellerman
  2017-06-01 13:31 ` Michael Ellerman
  1 sibling, 1 reply; 4+ messages in thread
From: Balbir Singh @ 2017-05-30  2:48 UTC (permalink / raw)
  To: Michael Ellerman; +Cc: linuxppc-dev, mikey, paulus, npiggin

On Mon, 29 May 2017 11:53:10 +1000
Michael Ellerman <mpe@ellerman.id.au> wrote:

> We are running low on CPU feature bits, so we only want to use them when
> it's really necessary.
> 
> CPU_FTR_SUBCORE is only used in one place, and only in C, so we don't
> need it in order to make asm patching work. It can only be set on
> "Power8" CPUs, which in practice means POWER8, POWER8E and POWER8NVL.
> There are no plans to implement it on future CPUs, but if there ever
> were we could retrofit it then.
> 
> Although KVM uses subcores, it never looks at the CPU feature, it either
> looks at the ISA level or the threads_per_subcore value.
> 
> So drop the CPU feature and do a PVR check instead. Drop the device tree
> "subcore" feature as we no longer support doing anything with it, and we
> will drop it from skiboot too.
> 
> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
> ---

Acked-by: Balbir Singh <bsingharora@gmail.com>

I looked at CPU_FTR_DBELL and its used for initialization and in
arch_show_interrupts(), no assembly

it may be another candidate for reclaim

Balbir Singh.

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

* Re: [PATCH] powerpc/64: Reclaim CPU_FTR_SUBCORE
  2017-05-30  2:48 ` Balbir Singh
@ 2017-05-30 10:48   ` Michael Ellerman
  0 siblings, 0 replies; 4+ messages in thread
From: Michael Ellerman @ 2017-05-30 10:48 UTC (permalink / raw)
  To: Balbir Singh; +Cc: linuxppc-dev, mikey, paulus, npiggin

Balbir Singh <bsingharora@gmail.com> writes:

> On Mon, 29 May 2017 11:53:10 +1000
> Michael Ellerman <mpe@ellerman.id.au> wrote:
>
>> We are running low on CPU feature bits, so we only want to use them when
>> it's really necessary.
>> 
>> CPU_FTR_SUBCORE is only used in one place, and only in C, so we don't
>> need it in order to make asm patching work. It can only be set on
>> "Power8" CPUs, which in practice means POWER8, POWER8E and POWER8NVL.
>> There are no plans to implement it on future CPUs, but if there ever
>> were we could retrofit it then.
>> 
>> Although KVM uses subcores, it never looks at the CPU feature, it either
>> looks at the ISA level or the threads_per_subcore value.
>> 
>> So drop the CPU feature and do a PVR check instead. Drop the device tree
>> "subcore" feature as we no longer support doing anything with it, and we
>> will drop it from skiboot too.
>> 
>> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
>> ---
>
> Acked-by: Balbir Singh <bsingharora@gmail.com>
>
> I looked at CPU_FTR_DBELL and its used for initialization and in
> arch_show_interrupts(), no assembly

But the other criteria is that there is a small set of CPUs where it can
be enabled, so that the PVR check is not horrible.

I don't think DBELL fits that, I see it enabled for at least Power8,
Power8E, Power9, e6500, e5500, e500mc.

cheers

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

* Re: powerpc/64: Reclaim CPU_FTR_SUBCORE
  2017-05-29  1:53 [PATCH] powerpc/64: Reclaim CPU_FTR_SUBCORE Michael Ellerman
  2017-05-30  2:48 ` Balbir Singh
@ 2017-06-01 13:31 ` Michael Ellerman
  1 sibling, 0 replies; 4+ messages in thread
From: Michael Ellerman @ 2017-06-01 13:31 UTC (permalink / raw)
  To: Michael Ellerman, linuxppc-dev; +Cc: mikey, paulus, npiggin

On Mon, 2017-05-29 at 01:53:10 UTC, Michael Ellerman wrote:
> We are running low on CPU feature bits, so we only want to use them when
> it's really necessary.
> 
> CPU_FTR_SUBCORE is only used in one place, and only in C, so we don't
> need it in order to make asm patching work. It can only be set on
> "Power8" CPUs, which in practice means POWER8, POWER8E and POWER8NVL.
> There are no plans to implement it on future CPUs, but if there ever
> were we could retrofit it then.
> 
> Although KVM uses subcores, it never looks at the CPU feature, it either
> looks at the ISA level or the threads_per_subcore value.
> 
> So drop the CPU feature and do a PVR check instead. Drop the device tree
> "subcore" feature as we no longer support doing anything with it, and we
> will drop it from skiboot too.
> 
> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
> Acked-by: Balbir Singh <bsingharora@gmail.com>

Applied to powerpc fixes.

https://git.kernel.org/powerpc/c/0e5e7f5e9700661c3ddd95501743fb

cheers

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

end of thread, other threads:[~2017-06-01 13:31 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-05-29  1:53 [PATCH] powerpc/64: Reclaim CPU_FTR_SUBCORE Michael Ellerman
2017-05-30  2:48 ` Balbir Singh
2017-05-30 10:48   ` Michael Ellerman
2017-06-01 13:31 ` Michael Ellerman

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.