* [PATCH 04/24] arm: use asm-generic/mmu_context.h for no-op implementations [not found] <20200728033405.78469-1-npiggin@gmail.com> @ 2020-07-28 3:33 ` Nicholas Piggin 2020-07-28 4:14 ` Vineet Gupta 2020-07-28 3:33 ` [PATCH 05/24] arm64: " Nicholas Piggin 1 sibling, 1 reply; 4+ messages in thread From: Nicholas Piggin @ 2020-07-28 3:33 UTC (permalink / raw) To: linux-arch Cc: Arnd Bergmann, linux-kernel, Nicholas Piggin, Russell King, linux-mm, linux-arm-kernel Cc: Russell King <linux@armlinux.org.uk> Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Nicholas Piggin <npiggin@gmail.com> --- arch/arm/include/asm/mmu_context.h | 26 +++----------------------- 1 file changed, 3 insertions(+), 23 deletions(-) diff --git a/arch/arm/include/asm/mmu_context.h b/arch/arm/include/asm/mmu_context.h index f99ed524fe41..84e58956fcab 100644 --- a/arch/arm/include/asm/mmu_context.h +++ b/arch/arm/include/asm/mmu_context.h @@ -26,6 +26,8 @@ void __check_vmalloc_seq(struct mm_struct *mm); #ifdef CONFIG_CPU_HAS_ASID void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk); + +#define init_new_context init_new_context static inline int init_new_context(struct task_struct *tsk, struct mm_struct *mm) { @@ -92,32 +94,10 @@ static inline void finish_arch_post_lock_switch(void) #endif /* CONFIG_MMU */ -static inline int -init_new_context(struct task_struct *tsk, struct mm_struct *mm) -{ - return 0; -} - - #endif /* CONFIG_CPU_HAS_ASID */ -#define destroy_context(mm) do { } while(0) #define activate_mm(prev,next) switch_mm(prev, next, NULL) -/* - * This is called when "tsk" is about to enter lazy TLB mode. - * - * mm: describes the currently active mm context - * tsk: task which is entering lazy tlb - * cpu: cpu number which is entering lazy tlb - * - * tsk->mm will be NULL - */ -static inline void -enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) -{ -} - /* * This is the actual mm switch as far as the scheduler * is concerned. No registers are touched. We avoid @@ -149,6 +129,6 @@ switch_mm(struct mm_struct *prev, struct mm_struct *next, #endif } -#define deactivate_mm(tsk,mm) do { } while (0) +#include <asm-generic/mmu_context.h> #endif -- 2.23.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 04/24] arm: use asm-generic/mmu_context.h for no-op implementations 2020-07-28 3:33 ` [PATCH 04/24] arm: use asm-generic/mmu_context.h for no-op implementations Nicholas Piggin @ 2020-07-28 4:14 ` Vineet Gupta 2020-08-26 14:14 ` Nicholas Piggin 0 siblings, 1 reply; 4+ messages in thread From: Vineet Gupta @ 2020-07-28 4:14 UTC (permalink / raw) To: Nicholas Piggin, linux-arch@vger.kernel.org Cc: Arnd Bergmann, linux-kernel@vger.kernel.org, Russell King, linux-mm@kvack.org, arcml, linux-arm-kernel@lists.infradead.org On 7/27/20 8:33 PM, Nicholas Piggin wrote: > Cc: Russell King <linux@armlinux.org.uk> > Cc: linux-arm-kernel@lists.infradead.org > Signed-off-by: Nicholas Piggin <npiggin@gmail.com> > --- > arch/arm/include/asm/mmu_context.h | 26 +++----------------------- > 1 file changed, 3 insertions(+), 23 deletions(-) > > diff --git a/arch/arm/include/asm/mmu_context.h b/arch/arm/include/asm/mmu_context.h > index f99ed524fe41..84e58956fcab 100644 > --- a/arch/arm/include/asm/mmu_context.h > +++ b/arch/arm/include/asm/mmu_context.h > @@ -26,6 +26,8 @@ void __check_vmalloc_seq(struct mm_struct *mm); > #ifdef CONFIG_CPU_HAS_ASID > > void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk); > + > +#define init_new_context init_new_context > static inline int > init_new_context(struct task_struct *tsk, struct mm_struct *mm) > { > @@ -92,32 +94,10 @@ static inline void finish_arch_post_lock_switch(void) > > #endif /* CONFIG_MMU */ > > -static inline int > -init_new_context(struct task_struct *tsk, struct mm_struct *mm) > -{ > - return 0; > -} > - > - > #endif /* CONFIG_CPU_HAS_ASID */ > > -#define destroy_context(mm) do { } while(0) > #define activate_mm(prev,next) switch_mm(prev, next, NULL) Actually this can also go away too. ARM switch_mm(prev, next, tsk) -> check_and_switch_context(next, tsk) but latter doesn't use @tsk at all. With patch below, you can remove above as well... --------> From 672e0f78a94892794057a5a7542d85b71c1369c4 Mon Sep 17 00:00:00 2001 From: Vineet Gupta <vgupta@synopsys.com> Date: Mon, 27 Jul 2020 21:12:42 -0700 Subject: [PATCH] ARM: mm: check_and_switch_context() doesn't use @tsk arg Signed-off-by: Vineet Gupta <vgupta@synopsys.com> --- arch/arm/include/asm/efi.h | 2 +- arch/arm/include/asm/mmu_context.h | 5 ++--- arch/arm/mm/context.c | 2 +- 3 files changed, 4 insertions(+), 5 deletions(-) diff --git a/arch/arm/include/asm/efi.h b/arch/arm/include/asm/efi.h index 5dcf3c6011b7..0995b308149d 100644 --- a/arch/arm/include/asm/efi.h +++ b/arch/arm/include/asm/efi.h @@ -37,7 +37,7 @@ int efi_set_mapping_permissions(struct mm_struct *mm, efi_memory_desc_t *md); static inline void efi_set_pgd(struct mm_struct *mm) { - check_and_switch_context(mm, NULL); + check_and_switch_context(mm); } void efi_virtmap_load(void); diff --git a/arch/arm/include/asm/mmu_context.h b/arch/arm/include/asm/mmu_context.h index f99ed524fe41..c96360fa3466 100644 --- a/arch/arm/include/asm/mmu_context.h +++ b/arch/arm/include/asm/mmu_context.h @@ -25,7 +25,7 @@ void __check_vmalloc_seq(struct mm_struct *mm); #ifdef CONFIG_CPU_HAS_ASID -void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk); +void check_and_switch_context(struct mm_struct *mm); static inline int init_new_context(struct task_struct *tsk, struct mm_struct *mm) { @@ -47,8 +47,7 @@ static inline void a15_erratum_get_cpumask(int this_cpu, struct mm_struct *mm, #ifdef CONFIG_MMU -static inline void check_and_switch_context(struct mm_struct *mm, - struct task_struct *tsk) +static inline void check_and_switch_context(struct mm_struct *mm) { if (unlikely(mm->context.vmalloc_seq != init_mm.context.vmalloc_seq)) __check_vmalloc_seq(mm); diff --git a/arch/arm/mm/context.c b/arch/arm/mm/context.c index b7525b433f3e..86c411e1d7cb 100644 --- a/arch/arm/mm/context.c +++ b/arch/arm/mm/context.c @@ -234,7 +234,7 @@ static u64 new_context(struct mm_struct *mm, unsigned int cpu) return asid | generation; } -void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk) +void check_and_switch_context(struct mm_struct *mm) { unsigned long flags; unsigned int cpu = smp_processor_id(); -- 2.20.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 4+ messages in thread
* Re: [PATCH 04/24] arm: use asm-generic/mmu_context.h for no-op implementations 2020-07-28 4:14 ` Vineet Gupta @ 2020-08-26 14:14 ` Nicholas Piggin 0 siblings, 0 replies; 4+ messages in thread From: Nicholas Piggin @ 2020-08-26 14:14 UTC (permalink / raw) To: linux-arch@vger.kernel.org, Vineet Gupta Cc: Arnd Bergmann, linux-kernel@vger.kernel.org, Russell King, linux-mm@kvack.org, arcml, linux-arm-kernel@lists.infradead.org Excerpts from Vineet Gupta's message of July 28, 2020 2:14 pm: > On 7/27/20 8:33 PM, Nicholas Piggin wrote: >> Cc: Russell King <linux@armlinux.org.uk> >> Cc: linux-arm-kernel@lists.infradead.org >> Signed-off-by: Nicholas Piggin <npiggin@gmail.com> >> --- >> arch/arm/include/asm/mmu_context.h | 26 +++----------------------- >> 1 file changed, 3 insertions(+), 23 deletions(-) >> >> diff --git a/arch/arm/include/asm/mmu_context.h b/arch/arm/include/asm/mmu_context.h >> index f99ed524fe41..84e58956fcab 100644 >> --- a/arch/arm/include/asm/mmu_context.h >> +++ b/arch/arm/include/asm/mmu_context.h >> @@ -26,6 +26,8 @@ void __check_vmalloc_seq(struct mm_struct *mm); >> #ifdef CONFIG_CPU_HAS_ASID >> >> void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk); >> + >> +#define init_new_context init_new_context >> static inline int >> init_new_context(struct task_struct *tsk, struct mm_struct *mm) >> { >> @@ -92,32 +94,10 @@ static inline void finish_arch_post_lock_switch(void) >> >> #endif /* CONFIG_MMU */ >> >> -static inline int >> -init_new_context(struct task_struct *tsk, struct mm_struct *mm) >> -{ >> - return 0; >> -} >> - >> - >> #endif /* CONFIG_CPU_HAS_ASID */ >> >> -#define destroy_context(mm) do { } while(0) >> #define activate_mm(prev,next) switch_mm(prev, next, NULL) > > Actually this can also go away too. > > ARM switch_mm(prev, next, tsk) -> check_and_switch_context(next, tsk) but latter > doesn't use @tsk at all. With patch below, you can remove above as well... Thanks for reviewing. I did notice that might be possible but I was avoiding any change that wasn't completely trivial. It's a good point to continue consolidating and simplifying though. Thanks, Nick > > --------> > From 672e0f78a94892794057a5a7542d85b71c1369c4 Mon Sep 17 00:00:00 2001 > From: Vineet Gupta <vgupta@synopsys.com> > Date: Mon, 27 Jul 2020 21:12:42 -0700 > Subject: [PATCH] ARM: mm: check_and_switch_context() doesn't use @tsk arg > > Signed-off-by: Vineet Gupta <vgupta@synopsys.com> > --- > arch/arm/include/asm/efi.h | 2 +- > arch/arm/include/asm/mmu_context.h | 5 ++--- > arch/arm/mm/context.c | 2 +- > 3 files changed, 4 insertions(+), 5 deletions(-) > > diff --git a/arch/arm/include/asm/efi.h b/arch/arm/include/asm/efi.h > index 5dcf3c6011b7..0995b308149d 100644 > --- a/arch/arm/include/asm/efi.h > +++ b/arch/arm/include/asm/efi.h > @@ -37,7 +37,7 @@ int efi_set_mapping_permissions(struct mm_struct *mm, > efi_memory_desc_t *md); > > static inline void efi_set_pgd(struct mm_struct *mm) > { > - check_and_switch_context(mm, NULL); > + check_and_switch_context(mm); > } > > void efi_virtmap_load(void); > diff --git a/arch/arm/include/asm/mmu_context.h b/arch/arm/include/asm/mmu_context.h > index f99ed524fe41..c96360fa3466 100644 > --- a/arch/arm/include/asm/mmu_context.h > +++ b/arch/arm/include/asm/mmu_context.h > @@ -25,7 +25,7 @@ void __check_vmalloc_seq(struct mm_struct *mm); > > #ifdef CONFIG_CPU_HAS_ASID > > -void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk); > +void check_and_switch_context(struct mm_struct *mm); > static inline int > init_new_context(struct task_struct *tsk, struct mm_struct *mm) > { > @@ -47,8 +47,7 @@ static inline void a15_erratum_get_cpumask(int this_cpu, struct > mm_struct *mm, > > #ifdef CONFIG_MMU > > -static inline void check_and_switch_context(struct mm_struct *mm, > - struct task_struct *tsk) > +static inline void check_and_switch_context(struct mm_struct *mm) > { > if (unlikely(mm->context.vmalloc_seq != init_mm.context.vmalloc_seq)) > __check_vmalloc_seq(mm); > diff --git a/arch/arm/mm/context.c b/arch/arm/mm/context.c > index b7525b433f3e..86c411e1d7cb 100644 > --- a/arch/arm/mm/context.c > +++ b/arch/arm/mm/context.c > @@ -234,7 +234,7 @@ static u64 new_context(struct mm_struct *mm, unsigned int cpu) > return asid | generation; > } > > -void check_and_switch_context(struct mm_struct *mm, struct task_struct *tsk) > +void check_and_switch_context(struct mm_struct *mm) > { > unsigned long flags; > unsigned int cpu = smp_processor_id(); > -- > 2.20.1 > > _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply [flat|nested] 4+ messages in thread
* [PATCH 05/24] arm64: use asm-generic/mmu_context.h for no-op implementations [not found] <20200728033405.78469-1-npiggin@gmail.com> 2020-07-28 3:33 ` [PATCH 04/24] arm: use asm-generic/mmu_context.h for no-op implementations Nicholas Piggin @ 2020-07-28 3:33 ` Nicholas Piggin 1 sibling, 0 replies; 4+ messages in thread From: Nicholas Piggin @ 2020-07-28 3:33 UTC (permalink / raw) To: linux-arch Cc: Arnd Bergmann, Catalin Marinas, linux-kernel, Nicholas Piggin, linux-mm, Will Deacon, linux-arm-kernel Cc: Catalin Marinas <catalin.marinas@arm.com> Cc: Will Deacon <will@kernel.org> Cc: linux-arm-kernel@lists.infradead.org Signed-off-by: Nicholas Piggin <npiggin@gmail.com> --- arch/arm64/include/asm/mmu_context.h | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/arch/arm64/include/asm/mmu_context.h b/arch/arm64/include/asm/mmu_context.h index b0bd9b55594c..0f5e351f586a 100644 --- a/arch/arm64/include/asm/mmu_context.h +++ b/arch/arm64/include/asm/mmu_context.h @@ -174,7 +174,6 @@ static inline void cpu_replace_ttbr1(pgd_t *pgdp) * Setting a reserved TTBR0 or EPD0 would work, but it all gets ugly when you * take CPU migration into account. */ -#define destroy_context(mm) do { } while(0) void check_and_switch_context(struct mm_struct *mm, unsigned int cpu); #define init_new_context(tsk,mm) ({ atomic64_set(&(mm)->context.id, 0); 0; }) @@ -202,6 +201,7 @@ static inline void update_saved_ttbr0(struct task_struct *tsk, } #endif +#define enter_lazy_tlb enter_lazy_tlb static inline void enter_lazy_tlb(struct mm_struct *mm, struct task_struct *tsk) { @@ -244,12 +244,11 @@ switch_mm(struct mm_struct *prev, struct mm_struct *next, update_saved_ttbr0(tsk, next); } -#define deactivate_mm(tsk,mm) do { } while (0) -#define activate_mm(prev,next) switch_mm(prev, next, current) - void verify_cpu_asid_bits(void); void post_ttbr_update_workaround(void); +#include <asm-generic/mmu_context.h> + #endif /* !__ASSEMBLY__ */ #endif /* !__ASM_MMU_CONTEXT_H */ -- 2.23.0 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel ^ permalink raw reply related [flat|nested] 4+ messages in thread
end of thread, other threads:[~2020-08-26 14:16 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20200728033405.78469-1-npiggin@gmail.com>
2020-07-28 3:33 ` [PATCH 04/24] arm: use asm-generic/mmu_context.h for no-op implementations Nicholas Piggin
2020-07-28 4:14 ` Vineet Gupta
2020-08-26 14:14 ` Nicholas Piggin
2020-07-28 3:33 ` [PATCH 05/24] arm64: " Nicholas Piggin
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).