From: Michael Ellerman <mpe@ellerman.id.au> To: Ravi Bangoria <ravi.bangoria@linux.ibm.com>, Jordan Niethe <jniethe5@gmail.com> Cc: mikey@neuling.org, apopple@linux.ibm.com, Paul Mackerras <paulus@samba.org>, Nicholas Piggin <npiggin@gmail.com>, Christophe Leroy <christophe.leroy@c-s.fr>, naveen.n.rao@linux.vnet.ibm.com, peterz@infradead.org, jolsa@kernel.org, oleg@redhat.com, fweisbec@gmail.com, mingo@kernel.org, pedromfc@br.ibm.com, miltonm@us.ibm.com, linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org, Ravi Bangoria <ravi.bangoria@linux.ibm.com> Subject: Re: [PATCH v4 05/10] powerpc/dt_cpu_ftrs: Add feature for 2nd DAWR Date: Tue, 21 Jul 2020 21:29:21 +1000 [thread overview] Message-ID: <87mu3trtri.fsf@mpe.ellerman.id.au> (raw) In-Reply-To: <c34b1a66-2db6-c97a-1782-0d473c758502@linux.ibm.com> Ravi Bangoria <ravi.bangoria@linux.ibm.com> writes: > On 7/17/20 11:14 AM, Jordan Niethe wrote: >> On Fri, Jul 17, 2020 at 2:10 PM Ravi Bangoria >> <ravi.bangoria@linux.ibm.com> wrote: >>> >>> Add new device-tree feature for 2nd DAWR. If this feature is present, >>> 2nd DAWR is supported, otherwise not. >>> >>> Signed-off-by: Ravi Bangoria <ravi.bangoria@linux.ibm.com> >>> --- >>> arch/powerpc/include/asm/cputable.h | 7 +++++-- >>> arch/powerpc/kernel/dt_cpu_ftrs.c | 7 +++++++ >>> 2 files changed, 12 insertions(+), 2 deletions(-) >>> >>> diff --git a/arch/powerpc/include/asm/cputable.h b/arch/powerpc/include/asm/cputable.h >>> index e506d429b1af..3445c86e1f6f 100644 >>> --- a/arch/powerpc/include/asm/cputable.h >>> +++ b/arch/powerpc/include/asm/cputable.h >>> @@ -214,6 +214,7 @@ static inline void cpu_feature_keys_init(void) { } >>> #define CPU_FTR_P9_TLBIE_ERAT_BUG LONG_ASM_CONST(0x0001000000000000) >>> #define CPU_FTR_P9_RADIX_PREFETCH_BUG LONG_ASM_CONST(0x0002000000000000) >>> #define CPU_FTR_ARCH_31 LONG_ASM_CONST(0x0004000000000000) >>> +#define CPU_FTR_DAWR1 LONG_ASM_CONST(0x0008000000000000) >>> >>> #ifndef __ASSEMBLY__ >>> >>> @@ -497,14 +498,16 @@ static inline void cpu_feature_keys_init(void) { } >>> #define CPU_FTRS_POSSIBLE \ >>> (CPU_FTRS_POWER7 | CPU_FTRS_POWER8E | CPU_FTRS_POWER8 | \ >>> CPU_FTR_ALTIVEC_COMP | CPU_FTR_VSX_COMP | CPU_FTRS_POWER9 | \ >>> - CPU_FTRS_POWER9_DD2_1 | CPU_FTRS_POWER9_DD2_2 | CPU_FTRS_POWER10) >>> + CPU_FTRS_POWER9_DD2_1 | CPU_FTRS_POWER9_DD2_2 | CPU_FTRS_POWER10 | \ >>> + CPU_FTR_DAWR1) >>> #else >>> #define CPU_FTRS_POSSIBLE \ >>> (CPU_FTRS_PPC970 | CPU_FTRS_POWER5 | \ >>> CPU_FTRS_POWER6 | CPU_FTRS_POWER7 | CPU_FTRS_POWER8E | \ >>> CPU_FTRS_POWER8 | CPU_FTRS_CELL | CPU_FTRS_PA6T | \ >>> CPU_FTR_VSX_COMP | CPU_FTR_ALTIVEC_COMP | CPU_FTRS_POWER9 | \ >>> - CPU_FTRS_POWER9_DD2_1 | CPU_FTRS_POWER9_DD2_2 | CPU_FTRS_POWER10) >>> + CPU_FTRS_POWER9_DD2_1 | CPU_FTRS_POWER9_DD2_2 | CPU_FTRS_POWER10 | \ >>> + CPU_FTR_DAWR1) >> Instead of putting CPU_FTR_DAWR1 into CPU_FTRS_POSSIBLE should it go >> into CPU_FTRS_POWER10? >> Then it will be picked up by CPU_FTRS_POSSIBLE. > > I remember a discussion about this with Mikey and we decided to do it > this way. Obviously, the purpose is to make CPU_FTR_DAWR1 independent of > CPU_FTRS_POWER10 because DAWR1 is an optional feature in p10. I fear > including CPU_FTR_DAWR1 in CPU_FTRS_POWER10 can make it forcefully enabled > even when device-tree property is not present or pa-feature bit it not set, > because we do: > > { /* 3.1-compliant processor, i.e. Power10 "architected" mode */ > .pvr_mask = 0xffffffff, > .pvr_value = 0x0f000006, > .cpu_name = "POWER10 (architected)", > .cpu_features = CPU_FTRS_POWER10, The pa-features logic will turn it off if the feature bit is not set. So you should be able to put it in CPU_FTRS_POWER10. See for example CPU_FTR_NOEXECUTE. cheers
WARNING: multiple messages have this Message-ID (diff)
From: Michael Ellerman <mpe@ellerman.id.au> To: Ravi Bangoria <ravi.bangoria@linux.ibm.com>, Jordan Niethe <jniethe5@gmail.com> Cc: Christophe Leroy <christophe.leroy@c-s.fr>, apopple@linux.ibm.com, mikey@neuling.org, miltonm@us.ibm.com, peterz@infradead.org, fweisbec@gmail.com, oleg@redhat.com, Nicholas Piggin <npiggin@gmail.com>, linux-kernel@vger.kernel.org, Paul Mackerras <paulus@samba.org>, jolsa@kernel.org, pedromfc@br.ibm.com, naveen.n.rao@linux.vnet.ibm.com, linuxppc-dev@lists.ozlabs.org, mingo@kernel.org, Ravi Bangoria <ravi.bangoria@linux.ibm.com> Subject: Re: [PATCH v4 05/10] powerpc/dt_cpu_ftrs: Add feature for 2nd DAWR Date: Tue, 21 Jul 2020 21:29:21 +1000 [thread overview] Message-ID: <87mu3trtri.fsf@mpe.ellerman.id.au> (raw) In-Reply-To: <c34b1a66-2db6-c97a-1782-0d473c758502@linux.ibm.com> Ravi Bangoria <ravi.bangoria@linux.ibm.com> writes: > On 7/17/20 11:14 AM, Jordan Niethe wrote: >> On Fri, Jul 17, 2020 at 2:10 PM Ravi Bangoria >> <ravi.bangoria@linux.ibm.com> wrote: >>> >>> Add new device-tree feature for 2nd DAWR. If this feature is present, >>> 2nd DAWR is supported, otherwise not. >>> >>> Signed-off-by: Ravi Bangoria <ravi.bangoria@linux.ibm.com> >>> --- >>> arch/powerpc/include/asm/cputable.h | 7 +++++-- >>> arch/powerpc/kernel/dt_cpu_ftrs.c | 7 +++++++ >>> 2 files changed, 12 insertions(+), 2 deletions(-) >>> >>> diff --git a/arch/powerpc/include/asm/cputable.h b/arch/powerpc/include/asm/cputable.h >>> index e506d429b1af..3445c86e1f6f 100644 >>> --- a/arch/powerpc/include/asm/cputable.h >>> +++ b/arch/powerpc/include/asm/cputable.h >>> @@ -214,6 +214,7 @@ static inline void cpu_feature_keys_init(void) { } >>> #define CPU_FTR_P9_TLBIE_ERAT_BUG LONG_ASM_CONST(0x0001000000000000) >>> #define CPU_FTR_P9_RADIX_PREFETCH_BUG LONG_ASM_CONST(0x0002000000000000) >>> #define CPU_FTR_ARCH_31 LONG_ASM_CONST(0x0004000000000000) >>> +#define CPU_FTR_DAWR1 LONG_ASM_CONST(0x0008000000000000) >>> >>> #ifndef __ASSEMBLY__ >>> >>> @@ -497,14 +498,16 @@ static inline void cpu_feature_keys_init(void) { } >>> #define CPU_FTRS_POSSIBLE \ >>> (CPU_FTRS_POWER7 | CPU_FTRS_POWER8E | CPU_FTRS_POWER8 | \ >>> CPU_FTR_ALTIVEC_COMP | CPU_FTR_VSX_COMP | CPU_FTRS_POWER9 | \ >>> - CPU_FTRS_POWER9_DD2_1 | CPU_FTRS_POWER9_DD2_2 | CPU_FTRS_POWER10) >>> + CPU_FTRS_POWER9_DD2_1 | CPU_FTRS_POWER9_DD2_2 | CPU_FTRS_POWER10 | \ >>> + CPU_FTR_DAWR1) >>> #else >>> #define CPU_FTRS_POSSIBLE \ >>> (CPU_FTRS_PPC970 | CPU_FTRS_POWER5 | \ >>> CPU_FTRS_POWER6 | CPU_FTRS_POWER7 | CPU_FTRS_POWER8E | \ >>> CPU_FTRS_POWER8 | CPU_FTRS_CELL | CPU_FTRS_PA6T | \ >>> CPU_FTR_VSX_COMP | CPU_FTR_ALTIVEC_COMP | CPU_FTRS_POWER9 | \ >>> - CPU_FTRS_POWER9_DD2_1 | CPU_FTRS_POWER9_DD2_2 | CPU_FTRS_POWER10) >>> + CPU_FTRS_POWER9_DD2_1 | CPU_FTRS_POWER9_DD2_2 | CPU_FTRS_POWER10 | \ >>> + CPU_FTR_DAWR1) >> Instead of putting CPU_FTR_DAWR1 into CPU_FTRS_POSSIBLE should it go >> into CPU_FTRS_POWER10? >> Then it will be picked up by CPU_FTRS_POSSIBLE. > > I remember a discussion about this with Mikey and we decided to do it > this way. Obviously, the purpose is to make CPU_FTR_DAWR1 independent of > CPU_FTRS_POWER10 because DAWR1 is an optional feature in p10. I fear > including CPU_FTR_DAWR1 in CPU_FTRS_POWER10 can make it forcefully enabled > even when device-tree property is not present or pa-feature bit it not set, > because we do: > > { /* 3.1-compliant processor, i.e. Power10 "architected" mode */ > .pvr_mask = 0xffffffff, > .pvr_value = 0x0f000006, > .cpu_name = "POWER10 (architected)", > .cpu_features = CPU_FTRS_POWER10, The pa-features logic will turn it off if the feature bit is not set. So you should be able to put it in CPU_FTRS_POWER10. See for example CPU_FTR_NOEXECUTE. cheers
next prev parent reply other threads:[~2020-07-21 11:29 UTC|newest] Thread overview: 56+ messages / expand[flat|nested] mbox.gz Atom feed top 2020-07-17 4:09 [PATCH v4 00/10] powerpc/watchpoint: Enable 2nd DAWR on baremetal and powervm Ravi Bangoria 2020-07-17 4:09 ` Ravi Bangoria 2020-07-17 4:09 ` [PATCH v4 01/10] powerpc/watchpoint: Fix 512 byte boundary limit Ravi Bangoria 2020-07-17 4:09 ` Ravi Bangoria 2020-07-17 4:09 ` [PATCH v4 02/10] powerpc/watchpoint: Fix DAWR exception constraint Ravi Bangoria 2020-07-17 4:09 ` Ravi Bangoria 2020-07-17 4:09 ` [PATCH v4 03/10] powerpc/watchpoint: Fix DAWR exception for CACHEOP Ravi Bangoria 2020-07-17 4:09 ` Ravi Bangoria 2020-07-17 4:09 ` [PATCH v4 04/10] powerpc/watchpoint: Enable watchpoint functionality on power10 guest Ravi Bangoria 2020-07-17 4:09 ` Ravi Bangoria 2020-07-17 4:23 ` Jordan Niethe 2020-07-17 4:23 ` Jordan Niethe 2020-07-17 4:09 ` [PATCH v4 05/10] powerpc/dt_cpu_ftrs: Add feature for 2nd DAWR Ravi Bangoria 2020-07-17 4:09 ` Ravi Bangoria 2020-07-17 5:44 ` Jordan Niethe 2020-07-17 5:44 ` Jordan Niethe 2020-07-21 7:51 ` Ravi Bangoria 2020-07-21 7:51 ` Ravi Bangoria 2020-07-21 11:29 ` Michael Ellerman [this message] 2020-07-21 11:29 ` Michael Ellerman 2020-07-21 13:42 ` Ravi Bangoria 2020-07-21 13:42 ` Ravi Bangoria 2020-07-21 14:07 ` Michael Ellerman 2020-07-21 14:07 ` Michael Ellerman 2020-07-21 14:16 ` Ravi Bangoria 2020-07-21 14:16 ` Ravi Bangoria 2020-07-17 4:09 ` [PATCH v4 06/10] powerpc/watchpoint: Set CPU_FTR_DAWR1 based on pa-features bit Ravi Bangoria 2020-07-17 4:09 ` Ravi Bangoria 2020-07-20 1:39 ` Jordan Niethe 2020-07-20 1:39 ` Jordan Niethe 2020-07-17 4:09 ` [PATCH v4 07/10] powerpc/watchpoint: Rename current H_SET_MODE DAWR macro Ravi Bangoria 2020-07-17 4:09 ` Ravi Bangoria 2020-07-20 1:50 ` Jordan Niethe 2020-07-20 1:50 ` Jordan Niethe 2020-07-17 4:09 ` [PATCH v4 08/10] powerpc/watchpoint: Guest support for 2nd DAWR hcall Ravi Bangoria 2020-07-17 4:09 ` Ravi Bangoria 2020-07-17 4:09 ` [PATCH v4 09/10] powerpc/watchpoint: Return available watchpoints dynamically Ravi Bangoria 2020-07-17 4:09 ` Ravi Bangoria 2020-07-20 3:42 ` Jordan Niethe 2020-07-20 3:42 ` Jordan Niethe 2020-07-21 3:57 ` Ravi Bangoria 2020-07-21 3:57 ` Ravi Bangoria 2020-07-21 4:41 ` Jordan Niethe 2020-07-21 4:41 ` Jordan Niethe 2020-07-21 8:15 ` Ravi Bangoria 2020-07-21 8:15 ` Ravi Bangoria 2020-07-21 11:36 ` Michael Ellerman 2020-07-21 11:36 ` Michael Ellerman 2020-07-21 13:33 ` Ravi Bangoria 2020-07-21 13:33 ` Ravi Bangoria 2020-07-17 4:09 ` [PATCH v4 10/10] powerpc/watchpoint: Remove 512 byte boundary Ravi Bangoria 2020-07-17 4:09 ` Ravi Bangoria 2020-07-20 6:54 ` Jordan Niethe 2020-07-20 6:54 ` Jordan Niethe 2020-07-21 3:24 ` Ravi Bangoria 2020-07-21 3:24 ` Ravi Bangoria
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=87mu3trtri.fsf@mpe.ellerman.id.au \ --to=mpe@ellerman.id.au \ --cc=apopple@linux.ibm.com \ --cc=christophe.leroy@c-s.fr \ --cc=fweisbec@gmail.com \ --cc=jniethe5@gmail.com \ --cc=jolsa@kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linuxppc-dev@lists.ozlabs.org \ --cc=mikey@neuling.org \ --cc=miltonm@us.ibm.com \ --cc=mingo@kernel.org \ --cc=naveen.n.rao@linux.vnet.ibm.com \ --cc=npiggin@gmail.com \ --cc=oleg@redhat.com \ --cc=paulus@samba.org \ --cc=pedromfc@br.ibm.com \ --cc=peterz@infradead.org \ --cc=ravi.bangoria@linux.ibm.com \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
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.