From: ard.biesheuvel@linaro.org (Ard Biesheuvel)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC v3 PATCH 0/7] ARM[64]: kernel mode NEON in atomic contexts
Date: Sun, 13 Oct 2013 14:14:56 +0200 [thread overview]
Message-ID: <1381666503-23726-1-git-send-email-ard.biesheuvel@linaro.org> (raw)
Take #3 of this RFC series.
Instead of having additional separate versions of kernel_neon_begin/end, the
existing ones now have been modified to always take a preallocated stack area
as an argument.
The stack area is allocated by DEFINE_NEON_REGSTACK[_PARTIAL](varname), where
the partial version takes an additional int num_regs indicating how many
registers need to be freed up.
In the !in_interrupt() case, these functions operate as before, and the regstack
is defined to minimal size in this case as it will remain unused anyway. In the
in_interrupt() case, 'num_regs' (or all) NEON registers are stacked/unstacked
using the allocated stack region.
Patches #1 and #4 implement the above for ARM and ARM64, respectively. Patch #3
implements the optimization for ARM64 suggested by Catalin, which has no lazy
restore, potentially resulting in lots of unnecessary stack/unstack sequences
otherwise.
The remaining patches are existing or new users of this API, for reference.
Ard Biesheuvel (7):
ARM: add support for kernel mode NEON in atomic context
ARM: port NEON version of xor_blocks() to new kmode NEON api
ARM64: defer reloading a task's FPSIMD state to userland resume
ARM64: add support for kernel mode NEON in atomic context
ARM64: add Crypto Extensions based synchronous core AES cipher
ARM64: add Crypto Extensions based synchronous AES in CCM mode
lib/raid6: port NEON implementation to updated kmode NEON api
arch/arm/include/asm/fpstate.h | 12 +
arch/arm/include/asm/neon.h | 32 ++-
arch/arm/include/asm/xor.h | 48 ++--
arch/arm/vfp/vfphw.S | 45 ++++
arch/arm/vfp/vfpmodule.c | 55 +++--
arch/arm64/Makefile | 11 +-
arch/arm64/crypto/Makefile | 14 ++
arch/arm64/crypto/aes-sync.c | 453 ++++++++++++++++++++++++++++++++++
arch/arm64/crypto/aesce-ccm.S | 186 ++++++++++++++
arch/arm64/include/asm/fpsimd.h | 17 ++
arch/arm64/include/asm/fpsimdmacros.h | 35 +++
arch/arm64/include/asm/neon.h | 31 ++-
arch/arm64/include/asm/thread_info.h | 4 +-
arch/arm64/kernel/entry-fpsimd.S | 24 ++
arch/arm64/kernel/entry.S | 2 +-
arch/arm64/kernel/fpsimd.c | 34 +--
arch/arm64/kernel/signal.c | 2 +
lib/raid6/neon.c | 9 +-
18 files changed, 932 insertions(+), 82 deletions(-)
create mode 100644 arch/arm64/crypto/Makefile
create mode 100644 arch/arm64/crypto/aes-sync.c
create mode 100644 arch/arm64/crypto/aesce-ccm.S
--
1.8.1.2
next reply other threads:[~2013-10-13 12:14 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-13 12:14 Ard Biesheuvel [this message]
2013-10-13 12:14 ` [RFC v3 PATCH 1/7] ARM: add support for kernel mode NEON in atomic context Ard Biesheuvel
2013-10-15 17:26 ` Catalin Marinas
2013-10-15 17:30 ` Ard Biesheuvel
2013-10-15 17:46 ` Catalin Marinas
2013-10-13 12:14 ` [RFC v3 PATCH 2/7] ARM: port NEON version of xor_blocks() to new kmode NEON api Ard Biesheuvel
2013-10-13 12:14 ` [RFC v3 PATCH 3/7] ARM64: defer reloading a task's FPSIMD state to userland resume Ard Biesheuvel
2013-10-28 18:12 ` Catalin Marinas
2013-10-28 20:32 ` Ard Biesheuvel
2013-10-28 22:29 ` Catalin Marinas
2013-10-13 12:15 ` [RFC v3 PATCH 4/7] ARM64: add support for kernel mode NEON in atomic context Ard Biesheuvel
2013-10-13 12:15 ` [RFC v3 PATCH 5/7] ARM64: add Crypto Extensions based synchronous core AES cipher Ard Biesheuvel
2013-10-13 12:15 ` [RFC v3 PATCH 6/7] ARM64: add Crypto Extensions based synchronous AES in CCM mode Ard Biesheuvel
2013-10-13 12:15 ` [RFC v3 PATCH 7/7] lib/raid6: port NEON implementation to updated kmode NEON api Ard Biesheuvel
2013-10-15 4:01 ` [RFC v3 PATCH 0/7] ARM[64]: kernel mode NEON in atomic contexts Nicolas Pitre
2013-10-15 13:13 ` Ard Biesheuvel
2013-10-15 14:06 ` Ard Biesheuvel
2013-10-15 16:05 ` Nicolas Pitre
2013-10-15 16:53 ` 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=1381666503-23726-1-git-send-email-ard.biesheuvel@linaro.org \
--to=ard.biesheuvel@linaro.org \
--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).