From: catalin.marinas@arm.com (Catalin Marinas)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH 3/3] arm64, mm: Use IPIs for TLB invalidation.
Date: Sun, 12 Jul 2015 22:58:55 +0100 [thread overview]
Message-ID: <20150712215851.GA12807@MBP> (raw)
In-Reply-To: <1436646323-10527-4-git-send-email-ddaney.cavm@gmail.com>
On Sat, Jul 11, 2015 at 01:25:23PM -0700, David Daney wrote:
> From: David Daney <david.daney@cavium.com>
>
> Most broadcast TLB invalidations are unnecessary. So when
> invalidating for a given mm/vma target the only the needed CPUs via
> and IPI.
>
> For global TLB invalidations, also use IPI.
>
> Tested on Cavium ThunderX.
>
> This change reduces 'time make -j48' on kernel from 139s to 116s (83%
> as long).
Have you tried something like kernbench? It tends to be more consistent
than a simple "time make".
However, the main question is how's the performance on systems with a
lot less CPUs (like 4 to 8)? The results are highly dependent on the
type of application, CPU and SoC implementation (I've done similar
benchmarks in the past). So, I don't think it's a simple answer here.
> The patch is needed because of a ThunderX Pass1 erratum: Exclusive
> store operations unreliable in the presence of broadcast TLB
> invalidations. The performance improvements shown make it compelling
> even without the erratum workaround need.
This performance argument is debatable, I need more data and not just
for the Cavium boards and kernel building. In the meantime, it's an
erratum workaround and it needs to follow the other workarounds we have
in the kernel with a proper Kconfig option and alternatives that can be
patched in our out at run-time (I wonder whether jump labels would be
better suited here).
--
Catalin
next prev parent reply other threads:[~2015-07-12 21:58 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-11 20:25 [PATCH 0/3] arm64, mm: Use IPIs for TLB invalidation David Daney
2015-07-11 20:25 ` [PATCH 1/3] arm64, mm: Add flush_tlb_all_local() function David Daney
2015-07-11 20:25 ` [PATCH 2/3] arm64, mm: Use flush_tlb_all_local() in flush_context() David Daney
2015-07-11 20:25 ` [PATCH 3/3] arm64, mm: Use IPIs for TLB invalidation David Daney
2015-07-11 22:06 ` Sergei Shtylyov
2015-07-12 21:58 ` Catalin Marinas [this message]
2015-07-13 18:17 ` Will Deacon
2015-07-13 18:58 ` David Daney
2015-07-14 11:13 ` Catalin Marinas
2015-07-14 11:40 ` Will Deacon
2015-07-14 13:09 ` Catalin Marinas
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=20150712215851.GA12807@MBP \
--to=catalin.marinas@arm.com \
--cc=linux-arm-kernel@lists.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;
as well as URLs for NNTP newsgroup(s).