Message ID | 20180725135806.29648-1-npiggin@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | 5a6099346c41792f1ba23aea6f74ad816e7fecd4 |
Headers | show |
Series | powerpc/64s/radix: tlb do not flush on page size when fullmm | expand |
Context | Check | Description |
---|---|---|
snowpatch_ozlabs/apply_patch | success | next/apply_patch Successfully applied |
snowpatch_ozlabs/checkpatch | success | Test checkpatch on branch next |
snowpatch_ozlabs/build-ppc64le | success | Test build-ppc64le on branch next |
snowpatch_ozlabs/build-ppc64be | success | Test build-ppc64be on branch next |
snowpatch_ozlabs/build-ppc64e | success | Test build-ppc64e on branch next |
snowpatch_ozlabs/build-ppc32 | success | Test build-ppc32 on branch next |
Nicholas Piggin <npiggin@gmail.com> writes: > When the mm is being torn down there will be a full PID flush so > there is no need to flush the TLB on page size changes. and that tlb flush is PID flush since tlb->fulmm is set? So this avoids multiple PID tlb flush. Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com> > > Signed-off-by: Nicholas Piggin <npiggin@gmail.com> > --- > arch/powerpc/include/asm/tlb.h | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/arch/powerpc/include/asm/tlb.h b/arch/powerpc/include/asm/tlb.h > index 5d3107f2b014..d1b3dc4a6a0a 100644 > --- a/arch/powerpc/include/asm/tlb.h > +++ b/arch/powerpc/include/asm/tlb.h > @@ -84,6 +84,9 @@ static inline void __tlb_remove_tlb_entry(struct mmu_gather *tlb, pte_t *ptep, > static inline void tlb_remove_check_page_size_change(struct mmu_gather *tlb, > unsigned int page_size) > { > + if (tlb->fullmm) > + return; > + > if (!tlb->page_size) > tlb->page_size = page_size; > else if (tlb->page_size != page_size) { > -- > 2.17.0
On Wed, 2018-07-25 at 13:58:06 UTC, Nicholas Piggin wrote: > When the mm is being torn down there will be a full PID flush so > there is no need to flush the TLB on page size changes. > > Signed-off-by: Nicholas Piggin <npiggin@gmail.com> > Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com> Applied to powerpc next, thanks. https://git.kernel.org/powerpc/c/5a6099346c41792f1ba23aea6f74ad cheers
diff --git a/arch/powerpc/include/asm/tlb.h b/arch/powerpc/include/asm/tlb.h index 5d3107f2b014..d1b3dc4a6a0a 100644 --- a/arch/powerpc/include/asm/tlb.h +++ b/arch/powerpc/include/asm/tlb.h @@ -84,6 +84,9 @@ static inline void __tlb_remove_tlb_entry(struct mmu_gather *tlb, pte_t *ptep, static inline void tlb_remove_check_page_size_change(struct mmu_gather *tlb, unsigned int page_size) { + if (tlb->fullmm) + return; + if (!tlb->page_size) tlb->page_size = page_size; else if (tlb->page_size != page_size) {
When the mm is being torn down there will be a full PID flush so there is no need to flush the TLB on page size changes. Signed-off-by: Nicholas Piggin <npiggin@gmail.com> --- arch/powerpc/include/asm/tlb.h | 3 +++ 1 file changed, 3 insertions(+)