xref: /freebsd/RELNOTES (revision 9bec8a959bd6206cceb1afd583b47822bc8ccd16)
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