diff mbox

[V2] powerpc/TM: Disable/Enable TM looking at the ibm, pa-features device tree entry

Message ID 1414938762-20126-1-git-send-email-aneesh.kumar@linux.vnet.ibm.com (mailing list archive)
State Accepted
Delegated to: Michael Ellerman
Headers show

Commit Message

Aneesh Kumar K.V Nov. 2, 2014, 2:32 p.m. UTC
Runtime disable transactional memory feature looking at pa-features
device tree entry. We need to do this so that we can run a kernel
built with TM config in PR mode. For PR guest we provide a device
tree entry with TM feature disabled in pa-features

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
---
Changes from V1:
* rebase to latest linus

 arch/powerpc/kernel/prom.c | 5 +++++
 1 file changed, 5 insertions(+)

Comments

Michael Neuling Nov. 12, 2014, 12:44 a.m. UTC | #1
On Sun, 2014-11-02 at 20:02 +0530, Aneesh Kumar K.V wrote:
> Runtime disable transactional memory feature looking at pa-features
> device tree entry. We need to do this so that we can run a kernel
> built with TM config in PR mode. 

I'm happy to turn this off but why do we need to do this in PR mode?
Can you explain this in the commit message.

> For PR guest we provide a device
> tree entry with TM feature disabled in pa-features

> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
> ---
> Changes from V1:
> * rebase to latest linus
> 
>  arch/powerpc/kernel/prom.c | 5 +++++
>  1 file changed, 5 insertions(+)
> 
> diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
> index 099f27e6d1b0..3e22930f15d1 100644
> --- a/arch/powerpc/kernel/prom.c
> +++ b/arch/powerpc/kernel/prom.c
> @@ -160,6 +160,11 @@ static struct ibm_pa_feature {
>  	{CPU_FTR_NODSISRALIGN, 0, 0,	1, 1, 1},
>  	{0, MMU_FTR_CI_LARGE_PAGE, 0,	1, 2, 0},
>  	{CPU_FTR_REAL_LE, PPC_FEATURE_TRUE_LE, 5, 0, 0},
> +	/*
> +	 * We should use CPU_FTR_TM_COMP so that if we disable TM, it won't get
> +	 * enabled via device tree
> +	 */
> +	{CPU_FTR_TM_COMP, 0, 0,		22, 0, 0},
>  };
>  
>  static void __init scan_features(unsigned long node, const unsigned char *ftrs,
Aneesh Kumar K.V Nov. 12, 2014, 5:39 a.m. UTC | #2
Michael Neuling <mikey@neuling.org> writes:

> On Sun, 2014-11-02 at 20:02 +0530, Aneesh Kumar K.V wrote:
>> Runtime disable transactional memory feature looking at pa-features
>> device tree entry. We need to do this so that we can run a kernel
>> built with TM config in PR mode. 
>
> I'm happy to turn this off but why do we need to do this in PR mode?
> Can you explain this in the commit message.

Hmm, that commit message needs an update. I initially did the patch for
P8 PR support and wanted a mechanism to disable TM. Alex added basic TM
support for PR mode after that. So we can drop the PR part of the
commit message.

Michael Ellerman,

Let me know if you want me to send an updated version with the those
part of the commit message dropped

>
>> For PR guest we provide a device
>> tree entry with TM feature disabled in pa-features
>
>> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
>> ---
>> Changes from V1:
>> * rebase to latest linus
>> 
>>  arch/powerpc/kernel/prom.c | 5 +++++
>>  1 file changed, 5 insertions(+)
>> 
>> diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
>> index 099f27e6d1b0..3e22930f15d1 100644
>> --- a/arch/powerpc/kernel/prom.c
>> +++ b/arch/powerpc/kernel/prom.c
>> @@ -160,6 +160,11 @@ static struct ibm_pa_feature {
>>  	{CPU_FTR_NODSISRALIGN, 0, 0,	1, 1, 1},
>>  	{0, MMU_FTR_CI_LARGE_PAGE, 0,	1, 2, 0},
>>  	{CPU_FTR_REAL_LE, PPC_FEATURE_TRUE_LE, 5, 0, 0},
>> +	/*
>> +	 * We should use CPU_FTR_TM_COMP so that if we disable TM, it won't get
>> +	 * enabled via device tree
>> +	 */
>> +	{CPU_FTR_TM_COMP, 0, 0,		22, 0, 0},
>>  };
>>  
>>  static void __init scan_features(unsigned long node, const unsigned char *ftrs,
>
> _______________________________________________
> Linuxppc-dev mailing list
> Linuxppc-dev@lists.ozlabs.org
> https://lists.ozlabs.org/listinfo/linuxppc-dev
Michael Ellerman Nov. 13, 2014, 5:42 a.m. UTC | #3
On Wed, 2014-11-12 at 11:09 +0530, Aneesh Kumar K.V wrote:
> Michael Neuling <mikey@neuling.org> writes:
> 
> > On Sun, 2014-11-02 at 20:02 +0530, Aneesh Kumar K.V wrote:
> >> Runtime disable transactional memory feature looking at pa-features
> >> device tree entry. We need to do this so that we can run a kernel
> >> built with TM config in PR mode. 
> >
> > I'm happy to turn this off but why do we need to do this in PR mode?
> > Can you explain this in the commit message.
> 
> Hmm, that commit message needs an update. I initially did the patch for
> P8 PR support and wanted a mechanism to disable TM. Alex added basic TM
> support for PR mode after that. So we can drop the PR part of the
> commit message.
> 
> Michael Ellerman,
> 
> Let me know if you want me to send an updated version with the those
> part of the commit message dropped

How about:

  powerpc: Disable CPU_FTR_TM if TM is disabled by firmware
  
  Firmware is allowed to communicate to us via the "ibm,pa-features" property
  that TM (Transactional Memory) support is disabled.
  
  Currently this doesn't happen on any platform we're aware of, but we should
  honor it anyway.


cheers
Aneesh Kumar K.V Nov. 13, 2014, 6:19 a.m. UTC | #4
Michael Ellerman <mpe@ellerman.id.au> writes:

> On Wed, 2014-11-12 at 11:09 +0530, Aneesh Kumar K.V wrote:
>> Michael Neuling <mikey@neuling.org> writes:
>> 
>> > On Sun, 2014-11-02 at 20:02 +0530, Aneesh Kumar K.V wrote:
>> >> Runtime disable transactional memory feature looking at pa-features
>> >> device tree entry. We need to do this so that we can run a kernel
>> >> built with TM config in PR mode. 
>> >
>> > I'm happy to turn this off but why do we need to do this in PR mode?
>> > Can you explain this in the commit message.
>> 
>> Hmm, that commit message needs an update. I initially did the patch for
>> P8 PR support and wanted a mechanism to disable TM. Alex added basic TM
>> support for PR mode after that. So we can drop the PR part of the
>> commit message.
>> 
>> Michael Ellerman,
>> 
>> Let me know if you want me to send an updated version with the those
>> part of the commit message dropped
>
> How about:
>
>   powerpc: Disable CPU_FTR_TM if TM is disabled by firmware
>   
>   Firmware is allowed to communicate to us via the "ibm,pa-features" property
>   that TM (Transactional Memory) support is disabled.
>   
>   Currently this doesn't happen on any platform we're aware of, but we should
>   honor it anyway.
>

Looks good.

-aneesh
diff mbox

Patch

diff --git a/arch/powerpc/kernel/prom.c b/arch/powerpc/kernel/prom.c
index 099f27e6d1b0..3e22930f15d1 100644
--- a/arch/powerpc/kernel/prom.c
+++ b/arch/powerpc/kernel/prom.c
@@ -160,6 +160,11 @@  static struct ibm_pa_feature {
 	{CPU_FTR_NODSISRALIGN, 0, 0,	1, 1, 1},
 	{0, MMU_FTR_CI_LARGE_PAGE, 0,	1, 2, 0},
 	{CPU_FTR_REAL_LE, PPC_FEATURE_TRUE_LE, 5, 0, 0},
+	/*
+	 * We should use CPU_FTR_TM_COMP so that if we disable TM, it won't get
+	 * enabled via device tree
+	 */
+	{CPU_FTR_TM_COMP, 0, 0,		22, 0, 0},
 };
 
 static void __init scan_features(unsigned long node, const unsigned char *ftrs,