NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
PR/59789 CVS commit: [netbsd-11] src/sys
The following reply was made to PR port-sparc64/59789; it has been noted by GNATS.
From: "Martin Husemann" <martin%netbsd.org@localhost>
To: gnats-bugs%gnats.NetBSD.org@localhost
Cc:
Subject: PR/59789 CVS commit: [netbsd-11] src/sys
Date: Fri, 28 Nov 2025 10:58:02 +0000
Module Name: src
Committed By: martin
Date: Fri Nov 28 10:58:02 UTC 2025
Modified Files:
src/sys/arch/sparc/include [netbsd-11]: bswap.h
src/sys/arch/sparc64/include [netbsd-11]: bswap.h
src/sys/sys [netbsd-11]: bswap.h endian.h
Log Message:
Pull up following revision(s) (requested by nia in ticket #108):
sys/arch/sparc64/include/bswap.h: revision 1.3
sys/arch/sparc/include/bswap.h: revision 1.3
sys/sys/bswap.h: revision 1.20
sys/sys/endian.h: revision 1.38
sparc: Avoid using GCC builtins for byte-swapping and endian encoding.
gcc on most netbsd architectures (mostly excluding sparc and vax) can
generate fast MD byte-swapping code. On sparc it generates a function
call, which is very slow. We have existing inline macros for byte
swapping, so use those instead.
bswap on sparc with gcc is still non-ideal, so also reactivate the
portable endian encoding functions we apparently haven't been using
since the gcc2 days, rather than using bswap for that.
These changes improve the speed of disk encryption on ultrasparc ii
by almost 40% (the endian.h change being more significant in making
that number go high).
clang does the right thing on sparc (or at least introduces different
bottlenecks...), so avoid this there.
Thanks joerg for analysis of the problem, uwe for reviewing the patch.
PR port-sparc64/59789 bswap is slow
PR kern/59774 bearssl 32-bit AES is too slow
To generate a diff of this commit:
cvs rdiff -u -r1.2 -r1.2.264.1 src/sys/arch/sparc/include/bswap.h
cvs rdiff -u -r1.2 -r1.2.264.1 src/sys/arch/sparc64/include/bswap.h
cvs rdiff -u -r1.19 -r1.19.56.1 src/sys/sys/bswap.h
cvs rdiff -u -r1.37 -r1.37.2.1 src/sys/sys/endian.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Home |
Main Index |
Thread Index |
Old Index