All of lore.kernel.org
 help / color / mirror / Atom feed
From: mark.rutland@arm.com (Mark Rutland)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH] arm64: kill flush_cache_all()
Date: Mon, 20 Apr 2015 10:46:44 +0100	[thread overview]
Message-ID: <20150420094644.GD15875@leverpostej> (raw)
In-Reply-To: <5534C9FF.2030703@arm.com>

On Mon, Apr 20, 2015 at 10:42:23AM +0100, Marc Zyngier wrote:
> Hi Mark,
> 
> On 20/04/15 10:24, Mark Rutland wrote:
> > The documented semantics of flush_cache_all are not possible to provide
> > for arm64 (short of flushing the entire physical address space by VA),
> > and there are currently no users; KVM uses VA maintenance exclusively,
> > cpu_reset is never called, and the only two users outside of arch code
> > cannot be built for arm64.
> > 
> > While cpu_soft_reset and related functions (which call flush_cache_all)
> > were thought to be useful for kexec, their current implementations only
> > serve to mask bugs. For correctness kexec will need to perform
> > maintenance by VA anyway to account for system caches, line migration,
> > and other subtleties of the cache architecture. As the extent of this
> > cache maintenance will be kexec-specific, it should probably live in the
> > kexec code.
> 
> I assume you mean that kexec will perform VA maintenance as part of its
> private cpu_soft_reset implementation, not that it will reimplement
> flush by S/W as a private method...

Yes; the only subtlety being *what* needs to be flushed will be specific
to kexec. Is there any way I can reword the above to be clearer in that
respect?

> > This patch removes flush_cache_all, and related unused components,
> > preventing further abuse.
> 
> Excellent. I'm pleased we're getting rid of this code which could only
> be (ab)used by broken code. Hopefully this will send a clear message
> that maintenance by VA is the only way we can *safely* deal with caches
> on arm64.

Indeed.

> Acked-by: Marc Zyngier <marc.zyngier@arm.com>

Cheers.

Mark.

  reply	other threads:[~2015-04-20  9:46 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-20  9:24 [PATCH] arm64: kill flush_cache_all() Mark Rutland
2015-04-20  9:42 ` Marc Zyngier
2015-04-20  9:46   ` Mark Rutland [this message]
2015-04-20 10:03     ` Marc Zyngier
2015-04-20  9:59 ` Will Deacon
2015-04-20 10:06 ` Catalin Marinas
2015-04-20 10:21 ` Lorenzo Pieralisi
2015-04-20 17:23 ` Ard Biesheuvel
2015-04-20 18:02   ` Mark Rutland
2015-04-20 18:42     ` Ard Biesheuvel
2015-04-20 19:22       ` Mark Rutland
2015-04-20 19:29         ` Ard Biesheuvel

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=20150420094644.GD15875@leverpostej \
    --to=mark.rutland@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.