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