All of lore.kernel.org
 help / color / mirror / Atom feed
From: D Scott Phillips <scott@os.amperecomputing.com>
To: "Alex Bennée" <alex.bennee@linaro.org>, linux-kernel@vger.kernel.org
Cc: kvm@vger.kernel.org, linux-arm-kernel@lists.infradead.org,
	kvmarm@lists.linux.dev, maz@kernel.org, arnd@linaro.org,
	"Alex Bennée" <alex.bennee@linaro.org>
Subject: Re: [PATCH 1/3] ampere/arm64: Add a fixup handler for alignment faults in aarch64 code
Date: Tue, 27 Aug 2024 14:23:16 -0700	[thread overview]
Message-ID: <86frqpk6d7.fsf@scott-ph-mail.amperecomputing.com> (raw)
In-Reply-To: <20240827130829.43632-2-alex.bennee@linaro.org>

Alex Bennée <alex.bennee@linaro.org> writes:

> From: D Scott Phillips <scott@os.amperecomputing.com>
>
> A later patch will hand out Device memory in some cases to code
> which expects a Normal memory type, as an errata workaround.
> Unaligned accesses to Device memory will fault though, so here we
> add a fixup handler to emulate faulting accesses, at a performance
> penalty.
>
> Many of the instructions in the Loads and Stores group are supported,
> but these groups are not handled here:
>
>  * Advanced SIMD load/store multiple structures
>  * Advanced SIMD load/store multiple structures (post-indexed)
>  * Advanced SIMD load/store single structure
>  * Advanced SIMD load/store single structure (post-indexed)

Hi Alex, I'm keeping my version of these patches here:

https://github.com/AmpereComputing/linux-ampere-altra-erratum-pcie-65

It looks like the difference to the version you've harvested is that
I've since added handling for these load/store types:

Advanced SIMD load/store multiple structure
Advanced SIMD load/store multiple structure (post-indexed)
Advanced SIMD load/store single structure
Advanced SIMD load/store single structure (post-indexed)

I've never sent these patches because in my opinion there's too much
complexity to maintain upstream for this workaround, though now they're
here so we can have that conversation.

Finally, I think a better approach overall would have been to have
device memory mapping in the stage 2 page table, then booting with pkvm
would have this workaround for both the host and guests. I don't think
that approach changes the fact that there's too much complexity here.

  reply	other threads:[~2024-08-27 22:36 UTC|newest]

Thread overview: 8+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-08-27 13:08 [PATCH 0/3] altra workarounds for PCIE_64 with instrumentation Alex Bennée
2024-08-27 13:08 ` [PATCH 1/3] ampere/arm64: Add a fixup handler for alignment faults in aarch64 code Alex Bennée
2024-08-27 21:23   ` D Scott Phillips [this message]
2024-08-28  8:29     ` Marc Zyngier
2024-08-28  9:47     ` Alex Bennée
2024-08-30  1:43   ` kernel test robot
2024-08-27 13:08 ` [PATCH 2/3] ampere/arm64: Work around Ampere Altra erratum #82288 PCIE_65 Alex Bennée
2024-08-27 13:08 ` [PATCH 3/3] ampere/arm64: instrument the altra workarounds Alex Bennée

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=86frqpk6d7.fsf@scott-ph-mail.amperecomputing.com \
    --to=scott@os.amperecomputing.com \
    --cc=alex.bennee@linaro.org \
    --cc=arnd@linaro.org \
    --cc=kvm@vger.kernel.org \
    --cc=kvmarm@lists.linux.dev \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=maz@kernel.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.