freebsd-dev/sys
Mateusz Guzik 710e45c4b8 Reimplement strlen
The previous code neglected to use primitives which can find the end
of the string without having to branch on every character.

While here augment the somewhat misleading commentary -- strlen as
implemented here leaves performance on the table, especially so for
userspace. Every arch should get a dedicated variant instead.

In the meantime this commit lessens the problem.

Tested with glibc test suite.

Naive test just calling strlen in a loop on Haswell (ops/s):

$(perl -e "print 'A' x 3"):
before:	211198039
after:	338626619

$(perl -e "print 'A' x 100"):
before:	83151997
after:	98285919
2021-01-29 23:48:26 +00:00
..
amd64 Remove ndis(4) remnants from kernel configs 2021-01-26 00:04:13 +00:00
arm Remove obsolete code gated on _ARM_ARCH_* 2021-01-28 10:41:45 +00:00
arm64 Enable KERN_TLS by default in ARM64 GENERIC 2021-01-28 20:48:37 +00:00
bsm Add aio_writev and aio_readv 2021-01-02 19:57:58 -07:00
cam Exclude reserved iSCSI Target Transfer Tag. 2021-01-24 13:58:29 -05:00
cddl riscv: fix kernel build 2021-01-15 11:57:04 -04:00
compat LinuxKPI: implement devres() framework parts and two examples 2021-01-28 16:32:43 +00:00
conf newvers: tweak uname to be more useful 2021-01-28 17:44:56 -07:00
contrib ipfilter: Retire pre-standard C support. 2021-01-25 14:46:45 -08:00
crypto armv8crypto: add AES-GCM support 2021-01-21 21:41:27 -08:00
ddb ddb: add ability to print user registers 2021-01-08 14:53:06 -04:00
dev Catch up with 6edfd179c8: mechanically rename IFCAP_NOMAP to IFCAP_MEXTPG. 2021-01-29 11:46:24 -08:00
dts Remove DTS files for arm boards we don't support 2021-01-27 10:02:01 +00:00
fs tmpfs: implement pathconf(_PC_SYMLINK_MAX) 2021-01-29 09:30:25 +00:00
gdb gdb(4): allow bulk write of registers 2020-12-23 14:37:05 -04:00
geom geom(4): make g_newprovider_event() return if G_P_WITHER is set 2020-12-29 14:29:59 +00:00
gnu Remove the old dts imported tree. 2021-01-15 20:09:55 +01:00
i386 Fix a typo. 2021-01-27 21:52:41 -08:00
isa
kern Catch up with 6edfd179c8: mechanically rename IFCAP_NOMAP to IFCAP_MEXTPG. 2021-01-29 11:46:24 -08:00
kgssapi
libkern Reimplement strlen 2021-01-29 23:48:26 +00:00
mips make maximum interrupt number tunable on ARM, ARM64, MIPS, and RISC-V 2021-01-18 16:36:39 -08:00
modules LinuxKPI: implement devres() framework parts and two examples 2021-01-28 16:32:43 +00:00
net Fix multipath support for rib_lookup_info(). 2021-01-29 23:14:24 +00:00
net80211
netgraph netgraph/ng_source: Switch queuing framework 2021-01-29 12:34:53 +01:00
netinet Catch up with 6edfd179c8: mechanically rename IFCAP_NOMAP to IFCAP_MEXTPG. 2021-01-29 11:46:24 -08:00
netinet6 Catch up with 6edfd179c8: mechanically rename IFCAP_NOMAP to IFCAP_MEXTPG. 2021-01-29 11:46:24 -08:00
netipsec Convert unmapped mbufs before computing checksums in IPsec. 2021-01-19 11:52:00 -08:00
netpfil pf: duplicate frames only once when using dup-to pf rule 2021-01-28 16:46:44 +01:00
netsmb
nfs
nfsclient
nfsserver
nlm
ofed Update user access region, UAR, APIs in the core in mlx5core. 2021-01-08 13:33:46 +01:00
opencrypto opencrypto: Add comments describing the new crypto_session layout 2021-01-19 21:32:33 -05:00
powerpc gdb: only return signal values for powerpc's gdb_cpu_signal() 2021-01-22 15:01:49 -04:00
riscv riscv: add SBI system reset extension 2021-01-27 19:19:54 -04:00
rpc nfs-over-tls: handle res.gid.gid_val correctly for memory allocation 2021-01-12 13:59:52 -08:00
security Convert remaining cap_rights_init users to cap_rights_init_one 2021-01-12 13:16:10 +00:00
sys fd: add fget_only_user 2021-01-29 11:23:43 +00:00
teken loader: implement framebuffer console 2021-01-02 21:41:36 +02:00
tests Enable running fib tests inside vnet jail. 2021-01-17 20:32:26 +00:00
tools syscalls.master: Add a new syscall type: RESERVED 2021-01-26 18:27:44 +00:00
ufs ufs: denote lack of support for lockless symlink lookup 2021-01-23 15:04:43 +00:00
vm Rename kern_mmap_req to kern_mmap 2021-01-25 21:50:37 +00:00
x86 stand/multiboot: adjust the protocol between loader and kernel 2021-01-29 15:23:26 +01:00
xdr
xen xen: remove .swp file from public headers 2021-01-11 18:14:11 +01:00
Makefile