linux/arch
Linus Torvalds a476aae3f1 x86/csum: clean up `csum_partial' further
Commit 688eb8191b ("x86/csum: Improve performance of `csum_partial`")
ended up improving the code generation for the IP csum calculations, and
in particular special-casing the 40-byte case that is a hot case for
IPv6 headers.

It then had _another_ special case for the 64-byte unrolled loop, which
did two chains of 32-byte blocks, which allows modern CPU's to improve
performance by doing the chains in parallel thanks to renaming the carry
flag.

This just unifies the special cases and combines them into just one
single helper the 40-byte csum case, and replaces the 64-byte case by a
80-byte case that just does that single helper twice.  It avoids having
all these different versions of inline assembly, and actually improved
performance further in my tests.

There was never anything magical about the 64-byte unrolled case, even
though it happens to be a common size (and typically is the cacheline
size).

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2024-01-04 15:42:30 -08:00
..
alpha
arc ARC: add hugetlb definitions 2023-12-13 19:33:10 -08:00
arm Fix for occasional boot hang for am335x USB 2023-12-20 12:04:38 +00:00
arm64 RISC-V 2023-12-22 19:22:20 -08:00
csky
hexagon
loongarch 17 hotfixes. 8 are cc:stable and the other 9 pertain to post-6.6 issues. 2023-12-15 12:00:54 -08:00
m68k m68k, kexec: fix the incorrect ifdeffery and build dependency of CONFIG_KEXEC 2023-12-12 17:20:17 -08:00
microblaze
mips 17 hotfixes. 8 are cc:stable and the other 9 pertain to post-6.6 issues. 2023-12-15 12:00:54 -08:00
nios2
openrisc
parisc
powerpc 11 hotfixes. 7 are cc:stable and the other 4 address post-6.6 issues or 2023-12-27 16:14:41 -08:00
riscv 11 hotfixes. 7 are cc:stable and the other 4 address post-6.6 issues or 2023-12-27 16:14:41 -08:00
s390 11 hotfixes. 7 are cc:stable and the other 4 address post-6.6 issues or 2023-12-27 16:14:41 -08:00
sh sh, kexec: fix the incorrect ifdeffery and dependency of CONFIG_KEXEC 2023-12-12 17:20:18 -08:00
sparc
um
x86 x86/csum: clean up `csum_partial' further 2024-01-04 15:42:30 -08:00
xtensa
.gitignore
Kconfig