From: "Aneesh Kumar K.V" <aneesh.kumar@linux.ibm.com>
To: Nicholas Piggin <npiggin@gmail.com>, linuxppc-dev@lists.ozlabs.org
Cc: "Aneesh Kumar K . V" <aneesh.kumar@linux.vnet.ibm.com>,
Nicholas Piggin <npiggin@gmail.com>
Subject: Re: [PATCH] powerpc/64s: free page table caches at exit_mmap time
Date: Wed, 25 Jul 2018 18:17:17 +0530 [thread overview]
Message-ID: <87r2jrv5wq.fsf@linux.ibm.com> (raw)
In-Reply-To: <20180725095428.22561-1-npiggin@gmail.com>
Nicholas Piggin <npiggin@gmail.com> writes:
> The kernel page table caches are tied to init_mm, so there is no
> more need for them after userspace is finished.
>
The commit message could be improved with reference to active_mm.
something like?
destroy_context get called when we drop the last reference for mm which
could be much later than the task exit due to other lazy mm reference to
it. We could free the page table cache pages on task exit because they
only cache the userspace page table and kernel thread should not access
the user space address.
The mapping for kernel threads itself is maintained in init_mm and page
table cache for that is attached to init_mm
Reviewed-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
> Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
> ---
> arch/powerpc/mm/mmu_context_book3s64.c | 5 +++--
> 1 file changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/arch/powerpc/mm/mmu_context_book3s64.c b/arch/powerpc/mm/mmu_context_book3s64.c
> index 3bb5cec03d1f..5738c2db751c 100644
> --- a/arch/powerpc/mm/mmu_context_book3s64.c
> +++ b/arch/powerpc/mm/mmu_context_book3s64.c
> @@ -221,7 +221,7 @@ static void pmd_frag_destroy(void *pmd_frag)
> }
> }
>
> -static void destroy_pagetable_page(struct mm_struct *mm)
> +static void destroy_pagetable_cache(struct mm_struct *mm)
> {
> void *frag;
>
> @@ -244,13 +244,14 @@ void destroy_context(struct mm_struct *mm)
> WARN_ON(process_tb[mm->context.id].prtb0 != 0);
> else
> subpage_prot_free(mm);
> - destroy_pagetable_page(mm);
> destroy_contexts(&mm->context);
> mm->context.id = MMU_NO_CONTEXT;
> }
>
> void arch_exit_mmap(struct mm_struct *mm)
> {
> + destroy_pagetable_cache(mm);
> +
> if (radix_enabled()) {
> /*
> * Radix doesn't have a valid bit in the process table
> --
> 2.17.0
next prev parent reply other threads:[~2018-07-25 12:47 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-07-25 9:54 [PATCH] powerpc/64s: free page table caches at exit_mmap time Nicholas Piggin
2018-07-25 12:47 ` Aneesh Kumar K.V [this message]
2018-08-08 14:25 ` Michael Ellerman
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87r2jrv5wq.fsf@linux.ibm.com \
--to=aneesh.kumar@linux.ibm.com \
--cc=aneesh.kumar@linux.vnet.ibm.com \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=npiggin@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
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).