From: Linus Torvalds <torvalds@linux-foundation.org>
To: Nick Piggin <npiggin@gmail.com>
Cc: linux-mm <linux-mm@kvack.org>,
ppc-dev <linuxppc-dev@lists.ozlabs.org>,
linux-arch <linux-arch@vger.kernel.org>,
"Aneesh Kumar K. V" <aneesh.kumar@linux.vnet.ibm.com>,
Minchan Kim <minchan@kernel.org>,
Mel Gorman <mgorman@techsingularity.net>,
Nadav Amit <nadav.amit@gmail.com>,
Andrew Morton <akpm@linux-foundation.org>
Subject: Re: [RFC PATCH 3/3] powerpc/64s/radix: optimise TLB flush with precise TLB ranges in mmu_gather
Date: Tue, 12 Jun 2018 18:10:26 -0700 [thread overview]
Message-ID: <CA+55aFzJRknbQD6Mv3OSOvUVozQ4H8ni8jPP7UEEi9wKXmVhQA@mail.gmail.com> (raw)
In-Reply-To: <20180613101241.004fd64e@roar.ozlabs.ibm.com>
On Tue, Jun 12, 2018 at 5:12 PM Nicholas Piggin <npiggin@gmail.com> wrote:
> >
> > And in _theory_, maybe you could have just used "invalpg" with a
> > targeted address instead. In fact, I think a single invlpg invalidates
> > _all_ caches for the associated MM, but don't quote me on that.
Confirmed. The SDK says
"INVLPG also invalidates all entries in all paging-structure caches
associated with the current PCID, regardless of the linear addresses
to which they correspond"
so if x86 wants to do this "separate invalidation for page directory
entryes", then it would want to
(a) remove the __tlb_adjust_range() operation entirely from
pud_free_tlb() and friends
(b) instead just have a single field for "invalidate_tlb_caches",
which could be a boolean, or could just be one of the addresses
and then the logic would be that IFF no other tlb invalidate is done
due to an actual page range, then we look at that
invalidate_tlb_caches field, and do a single INVLPG instead.
I still am not sure if this would actually make a difference in
practice, but I guess it does mean that x86 could at least participate
in some kind of scheme where we have architecture-specific actions for
those page directory entries.
And we could make the default behavior - if no architecture-specific
tlb page directory invalidation function exists - be the current
"__tlb_adjust_range()" case. So the default would be to not change
behavior, and architectures could opt in to something like this.
Linus
next prev parent reply other threads:[~2018-06-13 1:10 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-06-12 7:16 [RFC PATCH 0/3] couple of TLB flush optimisations Nicholas Piggin
2018-06-12 7:16 ` [RFC PATCH 1/3] Revert "mm: always flush VMA ranges affected by zap_page_range" Nicholas Piggin
2018-06-12 13:53 ` Aneesh Kumar K.V
2018-06-12 18:52 ` Nadav Amit
2018-06-12 7:16 ` [RFC PATCH 2/3] mm: mmu_gather track of invalidated TLB ranges explicitly for more precise flushing Nicholas Piggin
2018-06-12 18:14 ` Linus Torvalds
2018-06-12 7:16 ` [RFC PATCH 3/3] powerpc/64s/radix: optimise TLB flush with precise TLB ranges in mmu_gather Nicholas Piggin
2018-06-12 18:18 ` Linus Torvalds
2018-06-12 22:31 ` Nicholas Piggin
2018-06-12 22:42 ` Linus Torvalds
2018-06-12 23:09 ` Nicholas Piggin
2018-06-12 23:26 ` Linus Torvalds
2018-06-12 23:39 ` Linus Torvalds
2018-06-13 0:12 ` Nicholas Piggin
2018-06-13 1:10 ` Linus Torvalds [this message]
2018-06-14 2:49 ` Nicholas Piggin
2018-06-14 6:15 ` Linus Torvalds
2018-06-14 6:51 ` Nicholas Piggin
2018-06-12 23:53 ` Nicholas Piggin
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=CA+55aFzJRknbQD6Mv3OSOvUVozQ4H8ni8jPP7UEEi9wKXmVhQA@mail.gmail.com \
--to=torvalds@linux-foundation.org \
--cc=akpm@linux-foundation.org \
--cc=aneesh.kumar@linux.vnet.ibm.com \
--cc=linux-arch@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=mgorman@techsingularity.net \
--cc=minchan@kernel.org \
--cc=nadav.amit@gmail.com \
--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