From: Thomas Bogendoerfer <tsbogend@alpha.franken.de>
To: Matthew Wilcox <willy@infradead.org>
Cc: linux-arch@vger.kernel.org, linux-mm@kvack.org,
linux-kernel@vger.kernel.org, linux-mips@vger.kernel.org
Subject: Re: [PATCH v4 16/36] mips: Implement the new page table range API
Date: Tue, 21 Mar 2023 12:30:15 +0100 [thread overview]
Message-ID: <20230321113015.GA11292@alpha.franken.de> (raw)
In-Reply-To: <ZBdtpHnGFIpwpo6D@casper.infradead.org>
On Sun, Mar 19, 2023 at 08:16:36PM +0000, Matthew Wilcox wrote:
> On Sun, Mar 19, 2023 at 07:45:36PM +0100, Thomas Bogendoerfer wrote:
> > On Fri, Mar 17, 2023 at 04:29:20PM +0100, Thomas Bogendoerfer wrote:
> > > hmm, not sure if that would help. R4k style TLB has two PTEs mapped
> > > per TLB entry. So by advancing per page __update_tlb() is called more
> > > often than needed.
> >
> > btw. how big is nr going to be ? There are MIPS SoCs out there, which
> > just have 16 TLBs...
>
> Oof. The biggest we're going to see for now is one less than PTRS_PER_PMD
> (that'd be a PMD-sized allocation that's mapped askew with 1 page in
> one PMD and n-1 pages in the adjacent PMD). That'd be 511 on x86 and
> I presume something similar on MIPS. More than 16, for sure.
biggest TLB I could find is 256 entries, which can map 512 pages.
> Now, this isn't a new problem with this patchset. With fault-around,
> we already call set_pte_at() N times. And we don't say which ones are
> speculative entries vs the one actually faulted in.
ic
> But let's see if we can fix it. What if we passed in the vmf? That would
> give you the actual faulting address, so you'd know to only put the PTE
> into the Linux page tables and not go as far as putting it into the TLB.
> Open to other ideas.
that would help to optimize the case. But update_mmu_cache_range needs to
do __update_tlb() for every page to avoid stale data in TLB. If I understood
correctly only the way how TLB updates are done changed, so there shouldn't
be performance regressions. And optimizing like moving the looping over
the pages into __update_tlb() could be done in a second step.
Thomas.
--
Crap can work. Given enough thrust pigs will fly, but it's not necessarily a
good idea. [ RFC1925, 2.3 ]
prev parent reply other threads:[~2023-03-21 11:31 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20230315051444.3229621-1-willy@infradead.org>
2023-03-15 5:14 ` [PATCH v4 16/36] mips: Implement the new page table range API Matthew Wilcox (Oracle)
2023-03-15 10:08 ` Mike Rapoport
2023-03-15 10:50 ` Thomas Bogendoerfer
2023-03-15 20:33 ` Matthew Wilcox
2023-03-17 15:29 ` Thomas Bogendoerfer
2023-03-19 18:45 ` Thomas Bogendoerfer
2023-03-19 20:16 ` Matthew Wilcox
2023-03-21 11:30 ` Thomas Bogendoerfer [this message]
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=20230321113015.GA11292@alpha.franken.de \
--to=tsbogend@alpha.franken.de \
--cc=linux-arch@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=willy@infradead.org \
/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