From: Dave.Martin@arm.com (Dave Martin)
To: linux-arm-kernel@lists.infradead.org
Subject: [PATCH v5 00/30] ARM Scalable Vector Extension (SVE)
Date: Tue, 31 Oct 2017 15:50:52 +0000 [thread overview]
Message-ID: <1509465082-30427-1-git-send-email-Dave.Martin@arm.com> (raw)
This series implements Linux kernel support for the ARM Scalable Vector
Extension (SVE). [1] It supersedes the previous v3: see [3] for link
and full cover letter.
This is a minor update to v4, but does contain a couple of important
fixes.
As in previous postings, the last two patches (here 29-30) are still
RFC and not proposed for merging at this time.
The patches apply on
git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git
for-next/core
d7b1d22d3821 ("arm64: uapi: Remove PSR_Q_BIT")
To reduce spam, some people may not been copied on the entire series.
For those who did not receive the whole series, it can be found in the
linux-arm-kernel archive. [2]
See the individual patches for details of changes.
For reviewer convenience, a git tree is available. [4]
Since there are some changes against already-reviewed patches, I've also
pushed an unsquashed fixes tree for people to take a look at if it
helps. [5]
Summary:
* "regset: Add support for dynamically sized regsets" fixed to avoid
x86 breakage;
* one trival arm64 patch added to add asmlinkage annotations, and a
corresponding minor change to the Core task context handling patch;
* one new arm64 fix ("signal: Verify extra data is user-readable in
sys_rt_sigreturn") to ensure that access_ok() checks are done for the
whole extended signal frame, not just the base frame;
* one minor fix to the SVE sigreturn code to return consistent
intermediate error values (semantic correctness, non-functional
change);
* one minor change to call __copy_from_user() instead of
copy_from_user() in a situation where there is already an access_ok()
check;
[1] ARM Scalable Vector Extension
https://community.arm.com/groups/processors/blog/2016/08/22/technology-update-the-scalable-vector-extension-sve-for-the-armv8-a-architecture
[2] linux-arm-kernel October 2017 Archives by thread
http://lists.infradead.org/pipermail/linux-arm-kernel/2017-October/thread.html
[3] [PATCH v4 00/28] ARM Scalable Vector Extension (SVE)
http://lists.infradead.org/pipermail/linux-arm-kernel/2017-October/539414.html
[4] For review and testing only -- **do not pull**
(This branch has review changelogs which should not form part of
the final commits.)
v5 series (this posting)
http://linux-arm.org/git?p=linux-dm.git;a=shortlog;h=refs/heads/sve/v5
git://linux-arm.org/linux-dm.git sve/v5
[5] For review and testing only -- **do not pull**
(This branch has review changelogs which should not form part of
the final commits.)
v4 with unsquashed fixes
http://linux-arm.org/git?p=linux-dm.git;a=shortlog;h=refs/heads/sve/v4%2Bfixes
git://linux-arm.org/linux-dm.git sve/v4+fixes
Dave Martin (30):
regset: Add support for dynamically sized regsets
arm64: fpsimd: Correctly annotate exception helpers called from asm
arm64: signal: Verify extra data is user-readable in sys_rt_sigreturn
arm64: KVM: Hide unsupported AArch64 CPU features from guests
arm64: efi: Add missing Kconfig dependency on KERNEL_MODE_NEON
arm64: Port deprecated instruction emulation to new sysctl interface
arm64: fpsimd: Simplify uses of {set,clear}_ti_thread_flag()
arm64/sve: System register and exception syndrome definitions
arm64/sve: Low-level SVE architectural state manipulation functions
arm64/sve: Kconfig update and conditional compilation support
arm64/sve: Signal frame and context structure definition
arm64/sve: Low-level CPU setup
arm64/sve: Core task context handling
arm64/sve: Support vector length resetting for new processes
arm64/sve: Signal handling support
arm64/sve: Backend logic for setting the vector length
arm64: cpufeature: Move sys_caps_initialised declarations
arm64/sve: Probe SVE capabilities and usable vector lengths
arm64/sve: Preserve SVE registers around kernel-mode NEON use
arm64/sve: Preserve SVE registers around EFI runtime service calls
arm64/sve: ptrace and ELF coredump support
arm64/sve: Add prctl controls for userspace vector length management
arm64/sve: Add sysctl to set the default vector length for new
processes
arm64/sve: KVM: Prevent guests from using SVE
arm64/sve: KVM: Treat guest SVE use as undefined instruction execution
arm64/sve: KVM: Hide SVE from CPU features exposed to guests
arm64/sve: Detect SVE and activate runtime support
arm64/sve: Add documentation
arm64: signal: Report signal frame size to userspace via auxv
arm64/sve: signal: Include SVE when computing AT_MINSIGSTKSZ
Documentation/arm64/cpu-feature-registers.txt | 6 +-
Documentation/arm64/elf_hwcaps.txt | 4 +
Documentation/arm64/sve.txt | 508 +++++++++++++++
arch/arm/include/asm/kvm_host.h | 3 +
arch/arm64/Kconfig | 12 +
arch/arm64/include/asm/cpu.h | 4 +
arch/arm64/include/asm/cpucaps.h | 3 +-
arch/arm64/include/asm/cpufeature.h | 42 ++
arch/arm64/include/asm/elf.h | 5 +
arch/arm64/include/asm/esr.h | 3 +-
arch/arm64/include/asm/fpsimd.h | 71 +-
arch/arm64/include/asm/fpsimdmacros.h | 148 +++++
arch/arm64/include/asm/kvm_arm.h | 5 +-
arch/arm64/include/asm/kvm_host.h | 11 +
arch/arm64/include/asm/processor.h | 10 +
arch/arm64/include/asm/sysreg.h | 24 +
arch/arm64/include/asm/thread_info.h | 5 +
arch/arm64/include/asm/traps.h | 2 +
arch/arm64/include/uapi/asm/auxvec.h | 3 +-
arch/arm64/include/uapi/asm/hwcap.h | 1 +
arch/arm64/include/uapi/asm/ptrace.h | 138 ++++
arch/arm64/include/uapi/asm/sigcontext.h | 120 +++-
arch/arm64/kernel/armv8_deprecated.c | 15 +-
arch/arm64/kernel/cpufeature.c | 99 ++-
arch/arm64/kernel/cpuinfo.c | 7 +
arch/arm64/kernel/entry-fpsimd.S | 17 +
arch/arm64/kernel/entry.S | 40 +-
arch/arm64/kernel/fpsimd.c | 907 +++++++++++++++++++++++++-
arch/arm64/kernel/head.S | 13 +-
arch/arm64/kernel/process.c | 24 +
arch/arm64/kernel/ptrace.c | 280 +++++++-
arch/arm64/kernel/signal.c | 220 ++++++-
arch/arm64/kernel/signal32.c | 2 +-
arch/arm64/kernel/traps.c | 7 +-
arch/arm64/kvm/handle_exit.c | 8 +
arch/arm64/kvm/hyp/switch.c | 12 +-
arch/arm64/kvm/sys_regs.c | 292 +++++++--
fs/binfmt_elf.c | 10 +-
include/linux/regset.h | 67 +-
include/uapi/linux/elf.h | 1 +
include/uapi/linux/prctl.h | 9 +
kernel/sys.c | 12 +
virt/kvm/arm/arm.c | 3 +
43 files changed, 3023 insertions(+), 150 deletions(-)
create mode 100644 Documentation/arm64/sve.txt
--
2.1.4
next reply other threads:[~2017-10-31 15:50 UTC|newest]
Thread overview: 69+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-10-31 15:50 Dave Martin [this message]
2017-10-31 15:50 ` [PATCH v5 01/30] regset: Add support for dynamically sized regsets Dave Martin
2017-11-01 11:42 ` Catalin Marinas
2017-11-01 13:16 ` Dave Martin
2017-11-08 11:50 ` Alex Bennée
2017-10-31 15:50 ` [PATCH v5 02/30] arm64: fpsimd: Correctly annotate exception helpers called from asm Dave Martin
2017-11-01 11:42 ` Catalin Marinas
2017-10-31 15:50 ` [PATCH v5 03/30] arm64: signal: Verify extra data is user-readable in sys_rt_sigreturn Dave Martin
2017-11-01 11:43 ` Catalin Marinas
2017-10-31 15:50 ` [PATCH v5 04/30] arm64: KVM: Hide unsupported AArch64 CPU features from guests Dave Martin
2017-11-01 4:47 ` Christoffer Dall
2017-11-01 10:26 ` Dave Martin
2017-11-02 8:15 ` Christoffer Dall
2017-11-02 9:20 ` Dave Martin
2017-11-02 11:01 ` Dave Martin
2017-11-02 19:18 ` Christoffer Dall
2017-10-31 15:50 ` [PATCH v5 05/30] arm64: efi: Add missing Kconfig dependency on KERNEL_MODE_NEON Dave Martin
2017-10-31 15:50 ` [PATCH v5 06/30] arm64: Port deprecated instruction emulation to new sysctl interface Dave Martin
2017-10-31 15:50 ` [PATCH v5 07/30] arm64: fpsimd: Simplify uses of {set, clear}_ti_thread_flag() Dave Martin
2017-10-31 15:51 ` [PATCH v5 08/30] arm64/sve: System register and exception syndrome definitions Dave Martin
2017-10-31 15:51 ` [PATCH v5 09/30] arm64/sve: Low-level SVE architectural state manipulation functions Dave Martin
2017-10-31 15:51 ` [PATCH v5 10/30] arm64/sve: Kconfig update and conditional compilation support Dave Martin
2017-10-31 15:51 ` [PATCH v5 11/30] arm64/sve: Signal frame and context structure definition Dave Martin
2017-11-08 16:34 ` Alex Bennée
2017-10-31 15:51 ` [PATCH v5 12/30] arm64/sve: Low-level CPU setup Dave Martin
2017-11-08 16:37 ` Alex Bennée
2017-10-31 15:51 ` [PATCH v5 13/30] arm64/sve: Core task context handling Dave Martin
2017-11-09 17:16 ` Alex Bennée
2017-11-09 17:56 ` Dave Martin
2017-11-09 18:06 ` Alex Bennée
2017-10-31 15:51 ` [PATCH v5 14/30] arm64/sve: Support vector length resetting for new processes Dave Martin
2017-10-31 15:51 ` [PATCH v5 15/30] arm64/sve: Signal handling support Dave Martin
2017-11-01 14:33 ` Catalin Marinas
2017-11-07 13:22 ` Alex Bennée
2017-11-08 16:11 ` Dave Martin
2017-12-06 19:56 ` Kees Cook
2017-12-07 10:49 ` Will Deacon
2017-12-07 12:03 ` Dave Martin
2017-12-07 18:50 ` Kees Cook
2017-12-11 14:07 ` Will Deacon
2017-12-11 19:23 ` Kees Cook
2017-12-12 10:40 ` Will Deacon
2017-12-12 11:11 ` Dave Martin
2017-12-12 19:36 ` Kees Cook
2017-10-31 15:51 ` [PATCH v5 16/30] arm64/sve: Backend logic for setting the vector length Dave Martin
2017-11-10 10:27 ` Alex Bennée
2017-10-31 15:51 ` [PATCH v5 17/30] arm64: cpufeature: Move sys_caps_initialised declarations Dave Martin
2017-10-31 15:51 ` [PATCH v5 18/30] arm64/sve: Probe SVE capabilities and usable vector lengths Dave Martin
2017-10-31 15:51 ` [PATCH v5 19/30] arm64/sve: Preserve SVE registers around kernel-mode NEON use Dave Martin
2017-10-31 15:51 ` [PATCH v5 20/30] arm64/sve: Preserve SVE registers around EFI runtime service calls Dave Martin
2017-10-31 15:51 ` [PATCH v5 21/30] arm64/sve: ptrace and ELF coredump support Dave Martin
2017-10-31 15:51 ` [PATCH v5 22/30] arm64/sve: Add prctl controls for userspace vector length management Dave Martin
2017-10-31 15:51 ` [PATCH v5 23/30] arm64/sve: Add sysctl to set the default vector length for new processes Dave Martin
2017-10-31 15:51 ` [PATCH v5 24/30] arm64/sve: KVM: Prevent guests from using SVE Dave Martin
2017-10-31 15:51 ` [PATCH v5 25/30] arm64/sve: KVM: Treat guest SVE use as undefined instruction execution Dave Martin
2017-10-31 15:51 ` [PATCH v5 26/30] arm64/sve: KVM: Hide SVE from CPU features exposed to guests Dave Martin
2017-10-31 15:51 ` [PATCH v5 27/30] arm64/sve: Detect SVE and activate runtime support Dave Martin
2017-10-31 15:51 ` [PATCH v5 28/30] arm64/sve: Add documentation Dave Martin
2017-10-31 15:51 ` [RFC PATCH v5 29/30] arm64: signal: Report signal frame size to userspace via auxv Dave Martin
2017-10-31 15:51 ` [RFC PATCH v5 30/30] arm64/sve: signal: Include SVE when computing AT_MINSIGSTKSZ Dave Martin
2017-11-02 16:32 ` [PATCH v5 00/30] ARM Scalable Vector Extension (SVE) Will Deacon
2017-11-02 17:04 ` Dave P Martin
2017-11-29 15:04 ` Alex Bennée
2017-11-29 15:21 ` Will Deacon
2017-11-29 15:37 ` Dave Martin
2018-01-08 14:49 ` Yury Norov
2018-01-09 16:51 ` Yury Norov
2018-01-15 17:22 ` Dave Martin
2018-01-15 16:55 ` Dave Martin
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=1509465082-30427-1-git-send-email-Dave.Martin@arm.com \
--to=dave.martin@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).