* [PATCH v3 0/3] Add update_mmu_tlb_range() to simplify code
@ 2024-05-18 7:49 Bang Li
2024-05-18 7:49 ` [PATCH v3 1/3] mm: Add update_mmu_tlb_range() Bang Li
` (2 more replies)
0 siblings, 3 replies; 10+ messages in thread
From: Bang Li @ 2024-05-18 7:49 UTC (permalink / raw)
To: akpm, chenhuacai, tsbogend, paul.walmsley, palmer, chris,
jcmvbkbc
Cc: linux-kernel, linux-mm, loongarch, linux-riscv, david,
ryan.roberts, ioworker0, libang.linux, Bang Li
This series of commits mainly adds the update_mmu_tlb_range() to
batch update tlb in an address range and refactor the update_mmu_tlb().
After the commit 19eaf44954df ("mm: thp: support allocation of anonymous
multi-size THP"), We may need to batch update tlb of a certain address
range by calling update_mmu_tlb() in a loop. Using the
update_mmu_tlb_range(), we can simplify the code and possibly reduce the
execution of some unnecessary code in some architectures.
Thanks,
Bang
Changes since v2 [2]:
- Use generic architecture to implement update_mmu_tlb() (per Ryan)
Changes since v1 [1]:
- Add __HAVE_ARCH_UPDATE_MMU_TLB_RANGE macro (per Lance Yang)
[1] https://lore.kernel.org/linux-mm/20240429103346.59115-1-libang.li@antgroup.com/
[2] https://lore.kernel.org/linux-mm/20240506155120.83105-1-libang.li@antgroup.com/
Bang Li (3):
mm: Add update_mmu_tlb_range()
mm: Refactor update_mmu_tlb()
mm: Use update_mmu_tlb_range() to simplify code
arch/loongarch/include/asm/pgtable.h | 4 ++--
arch/mips/include/asm/pgtable.h | 4 ++--
arch/riscv/include/asm/pgtable.h | 4 ++--
arch/xtensa/include/asm/pgtable.h | 6 +++---
arch/xtensa/mm/tlb.c | 6 +++---
include/linux/pgtable.h | 11 ++++++++---
mm/memory.c | 4 +---
7 files changed, 21 insertions(+), 18 deletions(-)
--
2.19.1.6.gb485710b
_______________________________________________
linux-riscv mailing list
linux-riscv@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-riscv
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH v3 1/3] mm: Add update_mmu_tlb_range() 2024-05-18 7:49 [PATCH v3 0/3] Add update_mmu_tlb_range() to simplify code Bang Li @ 2024-05-18 7:49 ` Bang Li 2024-05-21 9:32 ` David Hildenbrand 2024-05-18 7:49 ` [PATCH v3 2/3] mm: Refactor update_mmu_tlb() Bang Li 2024-05-18 7:49 ` [PATCH v3 3/3] mm: Use update_mmu_tlb_range() to simplify code Bang Li 2 siblings, 1 reply; 10+ messages in thread From: Bang Li @ 2024-05-18 7:49 UTC (permalink / raw) To: akpm, chenhuacai, tsbogend, paul.walmsley, palmer, chris, jcmvbkbc Cc: linux-kernel, linux-mm, loongarch, linux-riscv, david, ryan.roberts, ioworker0, libang.linux, Bang Li Added update_mmu_tlb_range(), we can batch update tlb of an address range. Signed-off-by: Bang Li <libang.li@antgroup.com> --- arch/loongarch/include/asm/pgtable.h | 2 ++ arch/mips/include/asm/pgtable.h | 2 ++ arch/riscv/include/asm/pgtable.h | 2 ++ arch/xtensa/include/asm/pgtable.h | 3 +++ arch/xtensa/mm/tlb.c | 6 ++++++ 5 files changed, 15 insertions(+) diff --git a/arch/loongarch/include/asm/pgtable.h b/arch/loongarch/include/asm/pgtable.h index af3acdf3481a..5ccc2a3a6f7a 100644 --- a/arch/loongarch/include/asm/pgtable.h +++ b/arch/loongarch/include/asm/pgtable.h @@ -469,6 +469,8 @@ static inline void update_mmu_cache_range(struct vm_fault *vmf, #define __HAVE_ARCH_UPDATE_MMU_TLB #define update_mmu_tlb update_mmu_cache +#define update_mmu_tlb_range(vma, addr, ptep, nr) \ + update_mmu_cache_range(NULL, vma, addr, ptep, nr) static inline void update_mmu_cache_pmd(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) diff --git a/arch/mips/include/asm/pgtable.h b/arch/mips/include/asm/pgtable.h index e27a4c83c548..0891ad7d43b6 100644 --- a/arch/mips/include/asm/pgtable.h +++ b/arch/mips/include/asm/pgtable.h @@ -596,6 +596,8 @@ static inline void update_mmu_cache_range(struct vm_fault *vmf, #define __HAVE_ARCH_UPDATE_MMU_TLB #define update_mmu_tlb update_mmu_cache +#define update_mmu_tlb_range(vma, address, ptep, nr) \ + update_mmu_cache_range(NULL, vma, address, ptep, nr) static inline void update_mmu_cache_pmd(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h index 661b2b4fe758..fc07b829ac4a 100644 --- a/arch/riscv/include/asm/pgtable.h +++ b/arch/riscv/include/asm/pgtable.h @@ -488,6 +488,8 @@ static inline void update_mmu_cache_range(struct vm_fault *vmf, #define __HAVE_ARCH_UPDATE_MMU_TLB #define update_mmu_tlb update_mmu_cache +#define update_mmu_tlb_range(vma, addr, ptep, nr) \ + update_mmu_cache_range(NULL, vma, addr, ptep, nr) static inline void update_mmu_cache_pmd(struct vm_area_struct *vma, unsigned long address, pmd_t *pmdp) diff --git a/arch/xtensa/include/asm/pgtable.h b/arch/xtensa/include/asm/pgtable.h index 9a7e5e57ee9a..436158bd9030 100644 --- a/arch/xtensa/include/asm/pgtable.h +++ b/arch/xtensa/include/asm/pgtable.h @@ -413,6 +413,9 @@ typedef pte_t *pte_addr_t; void update_mmu_tlb(struct vm_area_struct *vma, unsigned long address, pte_t *ptep); #define __HAVE_ARCH_UPDATE_MMU_TLB +void update_mmu_tlb_range(struct vm_area_struct *vma, + unsigned long address, pte_t *ptep, unsigned int nr); +#define update_mmu_tlb_range update_mmu_tlb_range #endif /* !defined (__ASSEMBLY__) */ diff --git a/arch/xtensa/mm/tlb.c b/arch/xtensa/mm/tlb.c index d8b60d6e50a8..05efba86b870 100644 --- a/arch/xtensa/mm/tlb.c +++ b/arch/xtensa/mm/tlb.c @@ -169,6 +169,12 @@ void update_mmu_tlb(struct vm_area_struct *vma, local_flush_tlb_page(vma, address); } +void update_mmu_tlb_range(struct vm_area_struct *vma, + unsigned long address, pte_t *ptep, unsigned int nr) +{ + local_flush_tlb_range(vma, address, address + PAGE_SIZE * nr); +} + #ifdef CONFIG_DEBUG_TLB_SANITY static unsigned get_pte_for_vaddr(unsigned vaddr) -- 2.19.1.6.gb485710b _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v3 1/3] mm: Add update_mmu_tlb_range() 2024-05-18 7:49 ` [PATCH v3 1/3] mm: Add update_mmu_tlb_range() Bang Li @ 2024-05-21 9:32 ` David Hildenbrand 2024-05-21 15:36 ` Bang Li 0 siblings, 1 reply; 10+ messages in thread From: David Hildenbrand @ 2024-05-21 9:32 UTC (permalink / raw) To: Bang Li, akpm, chenhuacai, tsbogend, paul.walmsley, palmer, chris, jcmvbkbc Cc: linux-kernel, linux-mm, loongarch, linux-riscv, ryan.roberts, ioworker0, libang.linux On 18.05.24 09:49, Bang Li wrote: > Added update_mmu_tlb_range(), we can batch update tlb of an > address range. > > Signed-off-by: Bang Li <libang.li@antgroup.com> > --- The generic variant that is a NOP from patch #2 should go into this patch as well. Apart from that LGTM -- Cheers, David / dhildenb _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 1/3] mm: Add update_mmu_tlb_range() 2024-05-21 9:32 ` David Hildenbrand @ 2024-05-21 15:36 ` Bang Li 0 siblings, 0 replies; 10+ messages in thread From: Bang Li @ 2024-05-21 15:36 UTC (permalink / raw) To: David Hildenbrand, akpm, chenhuacai, tsbogend, paul.walmsley, palmer, chris, jcmvbkbc Cc: linux-kernel, linux-mm, loongarch, linux-riscv, ryan.roberts, ioworker0, libang.linux Hi David, Thanks for you review! On 2024/5/21 17:32, David Hildenbrand wrote: > On 18.05.24 09:49, Bang Li wrote: >> Added update_mmu_tlb_range(), we can batch update tlb of an >> address range. >> >> Signed-off-by: Bang Li <libang.li@antgroup.com> >> --- > > The generic variant that is a NOP from patch #2 should go into this > patch as well. Good point. Thanks for pointing this out. Thanks, Bang > > Apart from that LGTM > _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 2/3] mm: Refactor update_mmu_tlb() 2024-05-18 7:49 [PATCH v3 0/3] Add update_mmu_tlb_range() to simplify code Bang Li 2024-05-18 7:49 ` [PATCH v3 1/3] mm: Add update_mmu_tlb_range() Bang Li @ 2024-05-18 7:49 ` Bang Li 2024-05-21 9:36 ` David Hildenbrand 2024-05-18 7:49 ` [PATCH v3 3/3] mm: Use update_mmu_tlb_range() to simplify code Bang Li 2 siblings, 1 reply; 10+ messages in thread From: Bang Li @ 2024-05-18 7:49 UTC (permalink / raw) To: akpm, chenhuacai, tsbogend, paul.walmsley, palmer, chris, jcmvbkbc Cc: linux-kernel, linux-mm, loongarch, linux-riscv, david, ryan.roberts, ioworker0, libang.linux, Bang Li Remove update_mmu_tlb() from those architectures and define generically via update_mmu_tlb_range(), removing the ability for arches to override it. Signed-off-by: Bang Li <libang.li@antgroup.com> --- arch/loongarch/include/asm/pgtable.h | 2 -- arch/mips/include/asm/pgtable.h | 2 -- arch/riscv/include/asm/pgtable.h | 2 -- arch/xtensa/include/asm/pgtable.h | 3 --- arch/xtensa/mm/tlb.c | 6 ------ include/linux/pgtable.h | 11 ++++++++--- 6 files changed, 8 insertions(+), 18 deletions(-) diff --git a/arch/loongarch/include/asm/pgtable.h b/arch/loongarch/include/asm/pgtable.h index 5ccc2a3a6f7a..161dd6e10479 100644 --- a/arch/loongarch/include/asm/pgtable.h +++ b/arch/loongarch/include/asm/pgtable.h @@ -467,8 +467,6 @@ static inline void update_mmu_cache_range(struct vm_fault *vmf, #define update_mmu_cache(vma, addr, ptep) \ update_mmu_cache_range(NULL, vma, addr, ptep, 1) -#define __HAVE_ARCH_UPDATE_MMU_TLB -#define update_mmu_tlb update_mmu_cache #define update_mmu_tlb_range(vma, addr, ptep, nr) \ update_mmu_cache_range(NULL, vma, addr, ptep, nr) diff --git a/arch/mips/include/asm/pgtable.h b/arch/mips/include/asm/pgtable.h index 0891ad7d43b6..c29a551eb0ca 100644 --- a/arch/mips/include/asm/pgtable.h +++ b/arch/mips/include/asm/pgtable.h @@ -594,8 +594,6 @@ static inline void update_mmu_cache_range(struct vm_fault *vmf, #define update_mmu_cache(vma, address, ptep) \ update_mmu_cache_range(NULL, vma, address, ptep, 1) -#define __HAVE_ARCH_UPDATE_MMU_TLB -#define update_mmu_tlb update_mmu_cache #define update_mmu_tlb_range(vma, address, ptep, nr) \ update_mmu_cache_range(NULL, vma, address, ptep, nr) diff --git a/arch/riscv/include/asm/pgtable.h b/arch/riscv/include/asm/pgtable.h index fc07b829ac4a..158170442d2f 100644 --- a/arch/riscv/include/asm/pgtable.h +++ b/arch/riscv/include/asm/pgtable.h @@ -486,8 +486,6 @@ static inline void update_mmu_cache_range(struct vm_fault *vmf, #define update_mmu_cache(vma, addr, ptep) \ update_mmu_cache_range(NULL, vma, addr, ptep, 1) -#define __HAVE_ARCH_UPDATE_MMU_TLB -#define update_mmu_tlb update_mmu_cache #define update_mmu_tlb_range(vma, addr, ptep, nr) \ update_mmu_cache_range(NULL, vma, addr, ptep, nr) diff --git a/arch/xtensa/include/asm/pgtable.h b/arch/xtensa/include/asm/pgtable.h index 436158bd9030..1647a7cc3fbf 100644 --- a/arch/xtensa/include/asm/pgtable.h +++ b/arch/xtensa/include/asm/pgtable.h @@ -410,9 +410,6 @@ void update_mmu_cache_range(struct vm_fault *vmf, struct vm_area_struct *vma, typedef pte_t *pte_addr_t; -void update_mmu_tlb(struct vm_area_struct *vma, - unsigned long address, pte_t *ptep); -#define __HAVE_ARCH_UPDATE_MMU_TLB void update_mmu_tlb_range(struct vm_area_struct *vma, unsigned long address, pte_t *ptep, unsigned int nr); #define update_mmu_tlb_range update_mmu_tlb_range diff --git a/arch/xtensa/mm/tlb.c b/arch/xtensa/mm/tlb.c index 05efba86b870..0a1a815dc796 100644 --- a/arch/xtensa/mm/tlb.c +++ b/arch/xtensa/mm/tlb.c @@ -163,12 +163,6 @@ void local_flush_tlb_kernel_range(unsigned long start, unsigned long end) } } -void update_mmu_tlb(struct vm_area_struct *vma, - unsigned long address, pte_t *ptep) -{ - local_flush_tlb_page(vma, address); -} - void update_mmu_tlb_range(struct vm_area_struct *vma, unsigned long address, pte_t *ptep, unsigned int nr) { diff --git a/include/linux/pgtable.h b/include/linux/pgtable.h index 18019f037bae..117b807e3f89 100644 --- a/include/linux/pgtable.h +++ b/include/linux/pgtable.h @@ -729,13 +729,18 @@ static inline void clear_full_ptes(struct mm_struct *mm, unsigned long addr, * fault. This function updates TLB only, do nothing with cache or others. * It is the difference with function update_mmu_cache. */ -#ifndef __HAVE_ARCH_UPDATE_MMU_TLB +#ifndef update_mmu_tlb_range +static inline void update_mmu_tlb_range(struct vm_area_struct *vma, + unsigned long address, pte_t *ptep, unsigned int nr) +{ +} +#endif + static inline void update_mmu_tlb(struct vm_area_struct *vma, unsigned long address, pte_t *ptep) { + update_mmu_tlb_range(vma, address, ptep, 1); } -#define __HAVE_ARCH_UPDATE_MMU_TLB -#endif /* * Some architectures may be able to avoid expensive synchronization -- 2.19.1.6.gb485710b _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v3 2/3] mm: Refactor update_mmu_tlb() 2024-05-18 7:49 ` [PATCH v3 2/3] mm: Refactor update_mmu_tlb() Bang Li @ 2024-05-21 9:36 ` David Hildenbrand 2024-05-21 15:36 ` Bang Li 0 siblings, 1 reply; 10+ messages in thread From: David Hildenbrand @ 2024-05-21 9:36 UTC (permalink / raw) To: Bang Li, akpm, chenhuacai, tsbogend, paul.walmsley, palmer, chris, jcmvbkbc Cc: linux-kernel, linux-mm, loongarch, linux-riscv, ryan.roberts, ioworker0, libang.linux On 18.05.24 09:49, Bang Li wrote: > Remove update_mmu_tlb() from those architectures and define > generically via update_mmu_tlb_range(), removing the ability > for arches to override it. I'd suggest something like "mm: implement update_mmu_tlb() using update_mmu_tlb_range() Let's make update_mmu_tlb() simply a generic wrapper around update_mmu_tlb_range(). Only the latter can now be overridden by the architecture. We can now remove __HAVE_ARCH_UPDATE_MMU_TLB as well. " [...] > +#ifndef update_mmu_tlb_range > +static inline void update_mmu_tlb_range(struct vm_area_struct *vma, > + unsigned long address, pte_t *ptep, unsigned int nr) > +{ > +} > +#endif With that in patch #1 Acked-by: David Hildenbrand <david@redhat.com> -- Cheers, David / dhildenb _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 2/3] mm: Refactor update_mmu_tlb() 2024-05-21 9:36 ` David Hildenbrand @ 2024-05-21 15:36 ` Bang Li 0 siblings, 0 replies; 10+ messages in thread From: Bang Li @ 2024-05-21 15:36 UTC (permalink / raw) To: David Hildenbrand, akpm, chenhuacai, tsbogend, paul.walmsley, palmer, chris, jcmvbkbc Cc: linux-kernel, linux-mm, loongarch, linux-riscv, ryan.roberts, ioworker0, libang.linux Hi David, Thanks for you review! On 2024/5/21 17:36, David Hildenbrand wrote: > On 18.05.24 09:49, Bang Li wrote: >> Remove update_mmu_tlb() from those architectures and define >> generically via update_mmu_tlb_range(), removing the ability >> for arches to override it. > > I'd suggest something like > > "mm: implement update_mmu_tlb() using update_mmu_tlb_range() > > Let's make update_mmu_tlb() simply a generic wrapper around > update_mmu_tlb_range(). Only the latter can now be overridden by the > architecture. We can now remove __HAVE_ARCH_UPDATE_MMU_TLB as well. > " Agree! Thank you for your suggestion, I will modify it in the next version > > [...] > >> +#ifndef update_mmu_tlb_range >> +static inline void update_mmu_tlb_range(struct vm_area_struct *vma, >> + unsigned long address, pte_t *ptep, unsigned int nr) >> +{ >> +} >> +#endif > > With that in patch #1 Thanks again. Bang > > Acked-by: David Hildenbrand <david@redhat.com> > _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv ^ permalink raw reply [flat|nested] 10+ messages in thread
* [PATCH v3 3/3] mm: Use update_mmu_tlb_range() to simplify code 2024-05-18 7:49 [PATCH v3 0/3] Add update_mmu_tlb_range() to simplify code Bang Li 2024-05-18 7:49 ` [PATCH v3 1/3] mm: Add update_mmu_tlb_range() Bang Li 2024-05-18 7:49 ` [PATCH v3 2/3] mm: Refactor update_mmu_tlb() Bang Li @ 2024-05-18 7:49 ` Bang Li 2024-05-20 14:45 ` Lance Yang 2024-05-21 9:37 ` David Hildenbrand 2 siblings, 2 replies; 10+ messages in thread From: Bang Li @ 2024-05-18 7:49 UTC (permalink / raw) To: akpm, chenhuacai, tsbogend, paul.walmsley, palmer, chris, jcmvbkbc Cc: linux-kernel, linux-mm, loongarch, linux-riscv, david, ryan.roberts, ioworker0, libang.linux, Bang Li Let us simplify the code by update_mmu_tlb_range(). Signed-off-by: Bang Li <libang.li@antgroup.com> --- mm/memory.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/mm/memory.c b/mm/memory.c index eea6e4984eae..2d53e29cf76e 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -4421,7 +4421,6 @@ static vm_fault_t do_anonymous_page(struct vm_fault *vmf) vm_fault_t ret = 0; int nr_pages = 1; pte_t entry; - int i; /* File mapping without ->vm_ops ? */ if (vma->vm_flags & VM_SHARED) @@ -4491,8 +4490,7 @@ static vm_fault_t do_anonymous_page(struct vm_fault *vmf) update_mmu_tlb(vma, addr, vmf->pte); goto release; } else if (nr_pages > 1 && !pte_range_none(vmf->pte, nr_pages)) { - for (i = 0; i < nr_pages; i++) - update_mmu_tlb(vma, addr + PAGE_SIZE * i, vmf->pte + i); + update_mmu_tlb_range(vma, addr, vmf->pte, nr_pages); goto release; } -- 2.19.1.6.gb485710b _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH v3 3/3] mm: Use update_mmu_tlb_range() to simplify code 2024-05-18 7:49 ` [PATCH v3 3/3] mm: Use update_mmu_tlb_range() to simplify code Bang Li @ 2024-05-20 14:45 ` Lance Yang 2024-05-21 9:37 ` David Hildenbrand 1 sibling, 0 replies; 10+ messages in thread From: Lance Yang @ 2024-05-20 14:45 UTC (permalink / raw) To: Bang Li Cc: akpm, chenhuacai, tsbogend, paul.walmsley, palmer, chris, jcmvbkbc, linux-kernel, linux-mm, loongarch, linux-riscv, david, ryan.roberts, libang.linux On Sat, May 18, 2024 at 3:51 PM Bang Li <libang.li@antgroup.com> wrote: > > Let us simplify the code by update_mmu_tlb_range(). > LGTM. Reviewed-by: Lance Yang <ioworker0@gmail.com> > Signed-off-by: Bang Li <libang.li@antgroup.com> > --- > mm/memory.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/mm/memory.c b/mm/memory.c > index eea6e4984eae..2d53e29cf76e 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -4421,7 +4421,6 @@ static vm_fault_t do_anonymous_page(struct vm_fault *vmf) > vm_fault_t ret = 0; > int nr_pages = 1; > pte_t entry; > - int i; > > /* File mapping without ->vm_ops ? */ > if (vma->vm_flags & VM_SHARED) > @@ -4491,8 +4490,7 @@ static vm_fault_t do_anonymous_page(struct vm_fault *vmf) > update_mmu_tlb(vma, addr, vmf->pte); > goto release; > } else if (nr_pages > 1 && !pte_range_none(vmf->pte, nr_pages)) { > - for (i = 0; i < nr_pages; i++) > - update_mmu_tlb(vma, addr + PAGE_SIZE * i, vmf->pte + i); > + update_mmu_tlb_range(vma, addr, vmf->pte, nr_pages); > goto release; > } > > -- > 2.19.1.6.gb485710b > _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH v3 3/3] mm: Use update_mmu_tlb_range() to simplify code 2024-05-18 7:49 ` [PATCH v3 3/3] mm: Use update_mmu_tlb_range() to simplify code Bang Li 2024-05-20 14:45 ` Lance Yang @ 2024-05-21 9:37 ` David Hildenbrand 1 sibling, 0 replies; 10+ messages in thread From: David Hildenbrand @ 2024-05-21 9:37 UTC (permalink / raw) To: Bang Li, akpm, chenhuacai, tsbogend, paul.walmsley, palmer, chris, jcmvbkbc Cc: linux-kernel, linux-mm, loongarch, linux-riscv, ryan.roberts, ioworker0, libang.linux On 18.05.24 09:49, Bang Li wrote: > Let us simplify the code by update_mmu_tlb_range(). > > Signed-off-by: Bang Li <libang.li@antgroup.com> > --- > mm/memory.c | 4 +--- > 1 file changed, 1 insertion(+), 3 deletions(-) > > diff --git a/mm/memory.c b/mm/memory.c > index eea6e4984eae..2d53e29cf76e 100644 > --- a/mm/memory.c > +++ b/mm/memory.c > @@ -4421,7 +4421,6 @@ static vm_fault_t do_anonymous_page(struct vm_fault *vmf) > vm_fault_t ret = 0; > int nr_pages = 1; > pte_t entry; > - int i; > > /* File mapping without ->vm_ops ? */ > if (vma->vm_flags & VM_SHARED) > @@ -4491,8 +4490,7 @@ static vm_fault_t do_anonymous_page(struct vm_fault *vmf) > update_mmu_tlb(vma, addr, vmf->pte); > goto release; > } else if (nr_pages > 1 && !pte_range_none(vmf->pte, nr_pages)) { > - for (i = 0; i < nr_pages; i++) > - update_mmu_tlb(vma, addr + PAGE_SIZE * i, vmf->pte + i); > + update_mmu_tlb_range(vma, addr, vmf->pte, nr_pages); > goto release; > } > Acked-by: David Hildenbrand <david@redhat.com> -- Cheers, David / dhildenb _______________________________________________ linux-riscv mailing list linux-riscv@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-riscv ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2024-05-21 15:37 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2024-05-18 7:49 [PATCH v3 0/3] Add update_mmu_tlb_range() to simplify code Bang Li 2024-05-18 7:49 ` [PATCH v3 1/3] mm: Add update_mmu_tlb_range() Bang Li 2024-05-21 9:32 ` David Hildenbrand 2024-05-21 15:36 ` Bang Li 2024-05-18 7:49 ` [PATCH v3 2/3] mm: Refactor update_mmu_tlb() Bang Li 2024-05-21 9:36 ` David Hildenbrand 2024-05-21 15:36 ` Bang Li 2024-05-18 7:49 ` [PATCH v3 3/3] mm: Use update_mmu_tlb_range() to simplify code Bang Li 2024-05-20 14:45 ` Lance Yang 2024-05-21 9:37 ` David Hildenbrand
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox