1Release notes for FreeBSD 16.0. 2 3This file describes new user-visible features, changes and updates relevant to 4users of binary FreeBSD releases. Each entry should describe the change in no 5more than several sentences and should reference manual pages where an 6interested user can find more information. Entries should wrap after 80 7columns. Each entry should begin with one or more commit IDs on one line, 8specified as a comma separated list and/or range, followed by a colon and a 9newline. Entries should be separated by a newline. 10 11Changes to this file should not be MFCed. 12 137144a1d58c5c, a311bd18a6fb, 884ee8d6c9b4: 14 These three patches add the required "glue" so that the 15 nfsrdma.ko and nfsclrdma.ko modules can be loaded. 16 These modules provide server and client support for 17 NFS over RDMA. 18 1934bb38445b07: 20 libusb has been updated to upstream 1.0.27 compatible. 21 All missing part is implemented and version tag is bumped. 22 236563dcb6b1f5: 24 It is now possible to use connectat(2) to connect to a unix(4) socket 25 directly, i.e., without having to specify a name in the sockaddr. 26 2772e57bc26417, 3dfbbe8586bb, d8e8f9251975: 28 These patches provide improvements for the pNFS server 29 configuration. New optional features include: 30 - Support for striped Flexible File Layouts (RFC8435). 31 - Support for pre-creation of files, allowing the 32 Open/Create to be done without communicating with 33 any DSs, so long as the cache of pre-created files 34 is not depleted. 35 36b92b9da33006, 13d3bd165e22: 37 This patch allows vfs.nfsd.srvmaxio to be set to 38 a value as high as 4Mbytes. It is usually set 39 via the nfs_server_maxio variable in /etc/rc.conf. 40 414c486fe40267: 42 The multicast routing modules, ip_mroute and ip6_mroute, are now FIB-aware. 43 That is, there is a multicast routing table per FIB, rather than a global 44 table. One can run a multicast routing daemon within each FIB; the FIB of 45 the routing socket determines the corresponding multicast routing table. 46 475c2186b99254,628d7a3270b6: 48 When the sector size for an NVMe namespace changes, nda(4) now 49 reports this as a media change rather than a disk resize 50 event. nda(4) also no longer reports a disk resize event in 51 some cases when the namespace's size had not changed. nda(4) 52 also reprobes NVMe namespaces each time they are opened to 53 check for a new sector size or namespace size. 54 557a323f873662: 56 Remove the le(4) driver. This driver supported older 10Mbps 57 and 100Mbps Ethernet adapters. True hardware devices have not 58 been used in FreeBSD systems in many years, but the driver was 59 previously retained for use with MIPS QEMU virtual machines. 60 61e51ef8ae490f: 62 Add initial support for instruction-based sampling (IBS) 63 performance counters on AMD processors to hwpmc(4). 64 65d69fc3a9dc71: 66 The EFI boot loader now tries all ZFS pools found during 67 probing when looking for a boot pool. Previously it would try 68 only the first pool found. 69 704d5c434ed16e: 71 Use the BSD-licensed implementation of diff3 instead of GNU diff3 72 by default. 73 747f54c65abc67: 75 Update the smartpqi(4) driver to vendor version 14.4690.0.2008 76 - 15.2.0.2008. This includes support for new controllers and 77 renaming Microsemi to Microchip. 78 79350c1232a57a: 80 nvmecontrol(8)'s telemetry-log now works reliably. 81 82d14e018024bb,b125c4d13095,1322760fd127,0730a05cd383: 83 Permit both SCHED_ULE and SCHED_4BSD to be compiled into the 84 same kernel. The scheduler can be selected at boot time by 85 setting the kern.sched_name tunable to the scheduler name 86 ("4BSD" or "ULE"). The default scheduler is ULE. This is 87 currently enabled in amd64 kernels by default. 88 8990a7728cd890: 90 Update nuageinit to request configuration on all network 91 interfaces. nuageinit will now issue DHCP requests on all 92 network interfaces and request configuration data from the 93 first interface which successfully obtains a lease. 94 9592ba9b2fe589: 96 Add RoCE support for Broadcom BCM576xx controllers. 97 98fb4b0c911951: 99 Add a facility to witness(4) to provide more detailed information 100 about lock order reversals detailing when initial lock orders were 101 established. 102 10365f5dd42f11c: 104 sh(1) add -l option which makes sh act as a login shell and read the profile. 105 106beab8b1ddf86: 107 bintrans(1) now supports the RFC2047 variant of quoted print 108 1099dc96d8bc3f2: 110 libusb(3) hotplug event are now really hotplugged using either 111 nlsysevent or devd(9) if available. 112 113d64db8892f85: 114 sh(1) is the default shell in the release media. 115 11668ad2b0d7af2: 117 ncurses has been updated to 6.6 118 11952d19df19ed6: 120 nvi(1) has been update to 2.2.2 121 1224d5c434ed16e, 2cfca8e710f2: 123 diff3(1) has replaced GNU diff3 and is now fully compatible. 124 125625dc44832cd: 126 tr(1) is now UTF-8 compliant. 127 12862fba0054d9e: 129 ee(1) is now UTF-8 compliant. 130 1315df6aca10906: 132 ed(1) is now UTF-8 compliant. 133 13428ff4d35f8b9: 135 Update libedit to 2026-04-03. 136 137b42e852e89cb: 138 Add a new pkg-serve(8) to serve packages over TCP via inetd. 139 1408b9775912cbc, 53b4ae3bf0f7: 141 Add support for an NFSv4 root file system. 142 Note that NFSv3 is still used for bootstrapping. See 143 "Diskless Operation with PXE" under "Advanced Networking" in the 144 FreeBSD Handbook. To configure an NFSv4 root fs, you will need 145 a line in /boot/loader.conf like boot.nfsroot.options="nfsv4" and 146 either a line in /etc/sysctl.conf like vfs.nfs.enable_uidtostring=1 147 or an additional line in /boot/loader.conf like 148 boot.nfsroot.user_domain="<user-domain>", 149 if you are running nfsuserd(8). 150 151ab9257599a5: 152 The src.conf(5) options WITHOUT_BZIP2 and WITHOUT_BZIP2_SUPPORT 153 have been removed. 154 155af099eaa5ec: 156 Users belonging to the new vmm group can now create bhyve VMs. See the 157 vmm(4) man page for details. 158 159c71354030a2: 160 Users wishing to use bhyve PCI passthrough in jails must create the 161 jail with the allow.vmm_ppt option configured. 162 1634d707825bf62: 164 The pdwait(2) system call was added. It provides wait(2)-like 165 functionality for a process descriptor (see procdesc(4)). 166 1675c2ee618d5ec: 168 The pdrfork(2) system call was added. It behaves like rfork(2) but 169 additionally returns a process descriptor (see procdesc(4)). 170 17141ccf82b29f3, 591c7a08bf8a: 172 On arm64, memcpy(3), memmove(3) and memset(3) are now implemented using 173 the MOPS (Memory Operations) feature instructions when they are 174 implemented by the system. 175 1763f0aea09689f: 177 posix_spawnattr_getexecfd_np(3) and posix_spawnattr_setexecfd_np(3) 178 functions were added to libc. The latter causes posix_spawn(3) to 179 call fexecve(2) on the specified file descriptor rather than executing 180 the file at the provided path. 181 182fb4b0c911951: 183 witness(4) now prints additional information to the system console when 184 a lock order reversal is detected, making debugging such issues easier. 185 1861322760fd127: 187 It is now possible to compile both the 4BSD and ULE schedulers into the 188 same kernel. The scheduler is selectable at boot-time using a tunable. 189 See the SCHEDULERS section of the tuning(7) man page for details. 190 191627e126dbb07: 192 The default value of the net.inet6.ip6.connect_in6addr_wild has changed 193 to 0. This means that connecting to the all-zeroes IPv6 address no longer 194 implicitly results in a loopback connection. 195 196afa70a8496e9: 197 The pthread_tryjoin_np(3) function was added to libthr(3). It provides 198 the same functionality as pthread_join(3) but returns instead of 199 blocking if the target thread has not yet exited. 200 201ecc039be7fdd: 202 NanoBSD images can now be built as a non-root user. 203 2047f54c65abc67: 205 Update smartpqi(4) to vendor version 14.4690.0.2008 - 15.2.0.2008 206 for the SmartArray storage controllers. This adds support for new 207 controllers, adds code that utilizes the new BIG_IOCTL_Command_struct 208 and allows the I/O buffer size for a single passthrough ioctl to be 209 stored as a 32 bit integer instead of the original 16 bit integer. 210 211b0d997095022: 212 The pf firewall now supports passing IPv6 packets to divert(4) 213 sockets via divert-to actions. 214 2150fa7b3bee72e, c71f18998e0b, 4162a419a475, f5a77dc8f8df: 216 LinuxKPI based wireless drivers, especially iwlwifi(4) are now 217 supported on RISC-V. 218 2198254b0dec02b3, bd55cbb50c588: 220 The mac(4) framework has been extended to support jail operations, 221 allowing a policy to constrain jail creation, modification, removal, and 222 attachment. Jails have additionally been made a first-class mac(4) 223 object, and a mac.label jail(8) property has been added to facilitate 224 administration of their labels. 225 226c558eca47970: 227 The smartpqi(4) driver was updated to vendor version 4660.0.2002 228 for the SmartArry storage controllers. 229 230493d26c58e73: 231 The aq(4) driver was added, imported from the vendor repository. 232 This provides support for Aquantia / Marvell PCIe 1/2.5/5/10 Gigabit 233 Ethernet adapters (AQC107, AQC108, AQC109, AQC111, AQC112). 234 2351a7151f79664: 236 A new CAM provider was added to dtrace. This enables tracing of I/O 237 requests through the CAM layer without relying on fragile function 238 boundary tracing. See dtrace_cam(4) for details. 239 240b8c99e7d912f: 241 The tdestroy(3) function was added to libc. The tdestroy() function 242 destroys a whole search tree, freeing all allocated nodes. 243 2444bf8ce037dc8: 245 The rge(4) driver was added, ported from OpenBSD. This provides 246 support for RealTek RTL8125, RTL8126 and RTL8127 PCIe Ethernet 247 controllers. 248 249cbc6f7e941e4: 250 bhyve(8)'s VNC device can now listen on a unix(4) socket for VNC client 251 connections. 252 25339ee24182b92: 254 An rc(8) service can now be started as a specific user for auditing 255 purposes by setting the <service>_audit_user rc.conf(5) variable. 256 257dcb0790bad43: 258 A setaudit(8) utility was added to the base system. This provides a 259 simple command-line wrapper for the setaudit(2) and setaudit_addr(2) 260 system calls. 261 2628e3fd450cc53, 949cff4dceff, 0e724de9ed6f, 9f49f436a9ec, e35191ccf3b3: 263 Add support for an extension to NFSv4.2 (RFCnnnn) that 264 supports handling of POSIX draft ACLs via getfacl(1)/setfacl(1). 265 266dbac191956f9, fe21dbf70aa8: 267 Support for the kcmp(2) system call and fcntl(F_DUPFD_QUERY) for Linux 268 binaries. 269 270a86dc94b84d1: 271 tzdata2025c was imported. 272 273a98e5d785001: 274 Add strdupa(3) and strndupa(3) macros for compatability with glibc. 275 276e967a2a03677: 277 divert socket compat removal, consumers must use PF_DIVERT instead of 278 PF_INET. 279 2804453ec5b8716b, 2a3b1641756a: 281 The reboot(8) and halt(8) commands now perform a graceful shutdown similar 282 to the shutdown(8) command including invoking rc.d scripts to shutdown 283 services. The fastboot(8) and fasthalt(8) commands still perform a "fast" 284 reboot or shutdown. 285 286d9788eabffa4: 287 ipfilter cannot be used in a jail by default. 288 2890ff0c19e7f70: 290 ipfs(8) is no longer built by default. 291 292575efcfff22f: 293 sendfile(2)'s SF_SYNC flag was removed. 294 295057dae35ffc6, 51a01f3debff, ca3e47b0ea68: 296 hwpmc(4) support for Intel Alder Lake 6-B7, 6-BA, and 6-BF CPU 297 hwpmc(4) support for Intel Emerald Rapids CPUs 298 hwpmc(4) support for Intel Alder Lake-N CPUs 299 3001ecf01065b45: 301 New library libuvmem provides the vmem(9) API to userspace applications. 302 303b6cad334e64: 304 Make game controller devices accessible by members of the "game" group 305 by default. 306 307791c531402bd: 308 Add driver for Feature Integration Technology Inc. (aka Fintek) F81232 309 USB to serial devices. 310 311ec0cd287f55f: 312 Support for NVMe/TCP offload on Chelsio T7 adapters. The nvmf_che(4) 313 module enables T7 adapters to process NVMe/TCP PDUs directly similar to 314 the PDU offload provided by cxgbei(4) for iSCSI. 315