Message ID | 20200320103242.229223-1-aneesh.kumar@linux.ibm.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 233ba5461838a56c19600216f0919e7cd3aec40e |
Headers | show |
Series | arch/powerpc/64: Avoid isync in flush_dcache_range | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | Successfully applied on branch powerpc/merge (8a445cbcb9f5090cb07ec6cbb89a8a1fc99a0ff7) |
snowpatch_ozlabs/build-ppc64le | success | Build succeeded |
snowpatch_ozlabs/build-ppc64be | success | Build succeeded |
snowpatch_ozlabs/build-ppc64e | success | Build succeeded |
snowpatch_ozlabs/build-pmac32 | success | Build succeeded |
snowpatch_ozlabs/checkpatch | success | total: 0 errors, 0 warnings, 0 checks, 18 lines checked |
snowpatch_ozlabs/needsstable | success | Patch has no Fixes tags |
On Fri, Mar 20, 2020 at 04:02:42PM +0530, Aneesh Kumar K.V wrote: > As per ISA and isync is only needed on instruction cache > block invalidate. Remove the same from dcache invalidate. Is that true on older CPUs? Segher
On 3/20/20 8:35 PM, Segher Boessenkool wrote: > On Fri, Mar 20, 2020 at 04:02:42PM +0530, Aneesh Kumar K.V wrote: >> As per ISA and isync is only needed on instruction cache >> block invalidate. Remove the same from dcache invalidate. > > Is that true on older CPUs? > That is what I found by checking with hardware team. One thing i was not able to get full confirmation about was the usage of 'sync' before 'dcbf'. -aneesh
On Fri, Mar 20, 2020 at 08:38:42PM +0530, Aneesh Kumar K.V wrote: > On 3/20/20 8:35 PM, Segher Boessenkool wrote: > >On Fri, Mar 20, 2020 at 04:02:42PM +0530, Aneesh Kumar K.V wrote: > >>As per ISA and isync is only needed on instruction cache > >>block invalidate. Remove the same from dcache invalidate. > > > >Is that true on older CPUs? > > > > That is what I found by checking with hardware team. Oh, the comment right before this function says "does not invalidat the corresponding insncache blocks", so this looks fine, sorry for not looking closely enough before. > One thing i was not > able to get full confirmation about was the usage of 'sync' before 'dcbf'. Yeah, this looks like something that would matter on some implementations. Would it make anything measurably faster if you would remove that sync? Segher
On Fri, 2020-03-20 at 10:32:42 UTC, "Aneesh Kumar K.V" wrote: > As per ISA and isync is only needed on instruction cache > block invalidate. Remove the same from dcache invalidate. > > Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com> Applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/233ba5461838a56c19600216f0919e7cd3aec40e cheers
diff --git a/arch/powerpc/include/asm/cacheflush.h b/arch/powerpc/include/asm/cacheflush.h index 4a1c9f0200e1..e92191b390f3 100644 --- a/arch/powerpc/include/asm/cacheflush.h +++ b/arch/powerpc/include/asm/cacheflush.h @@ -65,17 +65,13 @@ static inline void flush_dcache_range(unsigned long start, unsigned long stop) unsigned long size = stop - (unsigned long)addr + (bytes - 1); unsigned long i; - if (IS_ENABLED(CONFIG_PPC64)) { + if (IS_ENABLED(CONFIG_PPC64)) mb(); /* sync */ - isync(); - } for (i = 0; i < size >> shift; i++, addr += bytes) dcbf(addr); mb(); /* sync */ - if (IS_ENABLED(CONFIG_PPC64)) - isync(); } /*
As per ISA and isync is only needed on instruction cache block invalidate. Remove the same from dcache invalidate. Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com> --- Note: IIUC we can also void the sync fore dcbf. arch/powerpc/include/asm/cacheflush.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-)