* [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
* [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
* 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
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).