linux_dsm_epyc7002/arch/arm64
Ard Biesheuvel 7481cddf29 arm64/lib: add accelerated crc32 routines
Unlike crc32c(), which is wired up to the crypto API internally so the
optimal driver is selected based on the platform's capabilities,
crc32_le() is implemented as a library function using a slice-by-8 table
based C implementation. Even though few of the call sites may be
bottlenecks, calling a time variant implementation with a non-negligible
D-cache footprint is a bit of a waste, given that ARMv8.1 and up mandates
support for the CRC32 instructions that were optional in ARMv8.0, but are
already widely available, even on the Cortex-A53 based Raspberry Pi.

So implement routines that use these instructions if available, and fall
back to the existing generic routines otherwise. The selection is based
on alternatives patching.

Note that this unconditionally selects CONFIG_CRC32 as a builtin. Since
CRC32 is relied upon by core functionality such as CONFIG_OF_FLATTREE,
this just codifies the status quo.

Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
2018-09-10 16:10:53 +01:00
..
boot ARM: SoC: late updates 2018-08-25 14:12:36 -07:00
configs arm64: defconfig: Enable TI's AM6 SoC platform 2018-08-29 11:51:26 -07:00
crypto crypto: arm64/aes-gcm-ce - fix scatterwalk API violation 2018-08-25 19:50:43 +08:00
include arm64: cpufeature: add feature for CRC32 instructions 2018-09-10 16:10:09 +01:00
kernel arm64: cpufeature: add feature for CRC32 instructions 2018-09-10 16:10:09 +01:00
kvm KVM/arm updates for 4.19 2018-08-22 14:07:56 +02:00
lib arm64/lib: add accelerated crc32 routines 2018-09-10 16:10:53 +01:00
mm Merge branch 'akpm' (patches from Andrew) 2018-08-17 16:49:31 -07:00
net bpf, arm64: save 4 bytes in prologue when ebpf insns came from cbpf 2018-05-14 19:11:45 -07:00
xen
Kconfig arm64/lib: add accelerated crc32 routines 2018-09-10 16:10:53 +01:00
Kconfig.debug Kconfig: consolidate the "Kernel hacking" menu 2018-08-02 08:06:48 +09:00
Kconfig.platforms ARM: SoC: late updates 2018-08-25 14:12:36 -07:00
Makefile kbuild: rename LDFLAGS to KBUILD_LDFLAGS 2018-08-24 08:22:08 +09:00