Build date: 1762470003 - Thu Nov 6 23:00:03 UTC 2025 Build cvs date: 1762464213 - Thu Nov 6 21:23:33 UTC 2025 Build id: 2025-11-07.1 Build tags: amd64-regress ports sysupgrade Applied the following diff(s): /home/anton/tmp/robsd/src-sys-em.diff /home/anton/tmp/robsd/src-sys-uhidev-sispm.diff /home/anton/tmp/robsd/src-sysupgrade.diff P lib/libc/gen/signal.3 P lib/libc/string/ffs.3 P lib/libcrypto/bn/bn_prime.c P regress/lib/libc/sys/t_getrusage.c P regress/usr.bin/ssh/misc/sk-dummy/Makefile U regress/usr.bin/ssh/misc/sk-dummy/fatal.c P regress/usr.bin/ssh/misc/ssh-verify-attestation/Makefile P regress/usr.bin/ssh/unittests/misc/test_misc.c P sbin/ifconfig/ifconfig.8 P share/man/man4/gre.4 P sys/dev/acpi/acpicmos.c M sys/dev/usb/uhidev.c P sys/kern/kern_lock.c P sys/kern/subr_witness.c P sys/sys/mutex.h P usr.bin/ssh/misc.c P usr.bin/ssh/misc.h P usr.bin/ssh/ssh-add.c P usr.sbin/bgpd/mrt.c M usr.sbin/bgpd/session.c commit zRLTRjYiq6EC9UU2 Author: kettenis Date: 2025/11/06 21:23:33 whitespace sys/dev/acpi/acpicmos.c commit 6ryQcDD16n7rIKc0 Author: schwarze Date: 2025/11/06 17:46:34 rewrap an overlong input line, no output change lib/libc/gen/signal.3 commit gQw4aYbv8mIHWn7P Author: djm Date: 2025/11/06 17:24:28 sk-dummy.so needs sshlog() stub after ed25519-openssl.c change regress/usr.bin/ssh/misc/sk-dummy/Makefile regress/usr.bin/ssh/misc/sk-dummy/fatal.c commit SOu4b0MvpBtCdAK4 Author: schwarze Date: 2025/11/06 17:19:11 tweak previous: "functions returns" -> "functions return" and add a missing Oxford comma lib/libc/string/ffs.3 commit pVNPZgBle6f6mlxp Author: schwarze Date: 2025/11/06 16:14:20 simplify markup of :port and @vid, avoiding needless .Oc at the ends of input lines; no output change sbin/ifconfig/ifconfig.8 commit rkGxaqMFoDZ7dReH Author: claudio Date: 2025/11/06 15:33:48 In mrt_dump_entry() treat peers with remote_addr.aid == AID_UNSPEC the same way as peers where the remote_addr.aid is the same as of the prefix. This fixes dumping in the old table format from self-originated prefixes since peerself has a AID_UNSPEC remote_addr of all 0. Fix for mrt regress test. Reported by anton@ OK tb@ (who had the same diff) usr.sbin/bgpd/mrt.c commit YZ1fHXKTRrXyzyVV Author: miod Date: 2025/11/06 12:56:58 Let this compile on m88k. regress/lib/libc/sys/t_getrusage.c commit UqVDSREFbS9Qmtrq Author: tb Date: 2025/11/06 09:04:14 Use BN_ULONG in probable_prime_dh() This was the last user of BN_LONG in code. It had no reason to do so. BN_mod_word() returns a BN_ULONG and since the largest prime in the small primes table primes[] is well below 20000, the only return value that could cause 'mod' to be negative was the error sentinel (BN_ULONG)-1. ok jsing kenjiro lib/libcrypto/bn/bn_prime.c commit 5jNKAFEUawxki7hg Author: djm Date: 2025/11/06 01:33:26 unit test for stringlist_append() and stringlist_free() regress/usr.bin/ssh/unittests/misc/test_misc.c commit GuPXs8hDu3CxVmhl Author: djm Date: 2025/11/06 01:33:03 link against ed25519-openssl.c instead of ed25519.c regress/usr.bin/ssh/misc/sk-dummy/Makefile regress/usr.bin/ssh/misc/ssh-verify-attestation/Makefile commit IuvGXJY3QhZxVAKy Author: djm Date: 2025/11/06 01:31:11 move stringlist_append() and stringlist_free() to misc.c usr.bin/ssh/misc.c usr.bin/ssh/misc.h usr.bin/ssh/ssh-add.c commit 4MFp22iJlx12rEb0 Author: dlg Date: 2025/11/06 00:45:31 replace the cas spinlock in kernel mutexes with a "parking" lock. this is motivated because cas based locks are unfair, meaning that no effort is made by the algorithm to try and give CPUs access to the critical section in the order that they tried to acquire them. cas based locks can also generate a lot of work for the cache subsystem on a computer because every cpu ends up hammering the same cacheline. the combination of these effects for heavily contended mutexes can get some systems into a situation where they don't make progress, and are effectively livelocked. this parking mutex mitigates against these problems. it's called parking because it was very heavily influnced by what's described in https://webkit.org/blog/6161/locking-in-webkit/. the big influence is that the lock itself only has to record it's state, but the machinery for waiting for the lock is external to the lock. in practice this means that cpus waiting to acquire a mutex use memory on their stack as an entry in a list of waiting cpus, and then each cpu spins on a word in their own entry. this mitigates against the cache subsystem having to spend all its time pulling memory around between cpus. when the critical section is released, this list is inspected and the first entry on it gets their wait word cleared. this means cpus are woken up one at a time and in order, which provides fairness. it looks very similar to a "classic" futex based lock except the syscall backend has been cut out and replaced with a hash of lists and spinning. the main benefits of this lock are: - cpus spin on their own memory this is kind of the whole point of the excercise. - the size of struct mutex doesn't increase the mutex itself only has to record ownership (which could be a single bit, but we still record which cpu owns the lock for diagnostic purposes) and whether it's contended. if it is contended, then the address of the mutex is used to find a parking lot for cpus to coordinate in. - uncontended mutex acquision/release is the same cost as our current implementation. this means if we do the work to reduce contention on our locks, we don't pay an overhead from the more complicated mutex implementation. there's others, but these are the important ones. this was tested by many, but of note is jca@ who tested the following: - amd64 Intel Gen 12 laptop big.little 10 cores - amd64 AMD VM 8 cores - arm64 mac mini m2 pro 10 cores (3 core clusters iirc) - sparc64 LDOM 16 vcpus - riscv64 Hifive Unmatched 4 cores - riscv64 Startfive VF2 1.2a 4 cores phessler@ has been running this on ports build machines. claudio@ tested a variety of amd64 and sparc64 systems. tb@ and djm@ have been running this for months on various systems without trouble. i've been working on a variety of systems include an 80 core ampere system, m1 mac mini, and 64 thread amd64 systems. the arm64 systems in particular were brutal because arm64 has a weak memory model. the algorithm is being examined by researchers in formal methods too. special thanks to ian hayes, rob colvin, brijesh dongol, roger su, and daniel wright for their work so far. it's helped me sleep better at night. bluhm@ and kettenis@ have done performance testing, which shows plusses and minuses, but are happy for this to go in so we can get some experience with it. ok jca@ claudio@ mpi@ sys/kern/kern_lock.c sys/kern/subr_witness.c sys/sys/mutex.h commit Zx8cLdvXobbFbIDB Author: dlg Date: 2025/11/05 23:33:40 fix the rfc number for NVGRE from Abel Abraham Camarillo Ojeda on tech@ share/man/man4/gre.4 P 3RDPARTY P xserver/hw/xfree86/os-support/bsd/bsd_sbus.c commit OykbR2cyiMa6HOhk Author: matthieu Date: 2025/11/06 06:57:47 update 3RDPARTY commit sRj1K0BgYxOjxVl1 Author: matthieu Date: 2025/11/06 06:28:13 constify sparcDriverName(), missed in xserver 21.1.20 merge. xserver/hw/xfree86/os-support/bsd/bsd_sbus.c