While testing virtio-vulkan on the AVA platform we needed to include some fixups for its PCI handling. As far as I know these have only been included in various downstream kernel repos: https://community.amperecomputing.com/t/gpu-support-for-ampere-altra/274 The initial two patches are as we found them save for a fix to align_ldst_regoff_simdfp in the alignment handler. The third and new patch is trace point instrumentation so we could see how often the workaround is being invoked. Combined with Sean's PFN patches: https://lore.kernel.org/all/20240726235234.228822-1-seanjc@xxxxxxxxxx/ And the Vulkan/Venus support for QEMU: https://patchew.org/QEMU/20240822185110.1757429-1-dmitry.osipenko@xxxxxxxxxxxxx/ I was able to test virtio-vulkan running in a Aarch64 KVM guest hosted on my AVA platform with an AMD Radeon graphics card plugged into the PCI bus. I don't know if there is any interest in getting these upstream but I figured it was worth posting to the lists for wider visibility and discussion. For now I'll just carry these patches locally on my AVA until I get a better system for PCI GPU experiments. Thanks, Alex. Alex Bennée (1): ampere/arm64: instrument the altra workarounds D Scott Phillips (2): ampere/arm64: Add a fixup handler for alignment faults in aarch64 code ampere/arm64: Work around Ampere Altra erratum #82288 PCIE_65 arch/arm64/Kconfig | 22 +- arch/arm64/include/asm/insn.h | 1 + arch/arm64/include/asm/io.h | 3 + arch/arm64/include/asm/pgtable.h | 29 +- arch/arm64/mm/Makefile | 3 +- arch/arm64/mm/fault.c | 726 +++++++++++++++++++++++++++++ arch/arm64/mm/fault_neon.c | 59 +++ arch/arm64/mm/ioremap.c | 38 ++ drivers/pci/quirks.c | 9 + include/asm-generic/io.h | 4 + include/trace/events/altra_fixup.h | 57 +++ mm/ioremap.c | 2 +- 12 files changed, 945 insertions(+), 8 deletions(-) create mode 100644 arch/arm64/mm/fault_neon.c create mode 100644 include/trace/events/altra_fixup.h -- 2.39.2