Index: website/content/en/releases/13.0R/relnotes.adoc =================================================================== --- website/content/en/releases/13.0R/relnotes.adoc +++ website/content/en/releases/13.0R/relnotes.adoc @@ -8,11 +8,11 @@ :toc: macro :toclevels: 1 :icons: font -:releaseCurrent: "13.0-RELEASE" -:releaseBranch: "13-STABLE" +:releaseCurrent: 13.0-RELEASE +:releaseBranch: 13-STABLE :releasePrev: 12.2-RELEASE :releaseNext: 13.1-RELEASE -:releaseType: "release" +:releaseType: release include::shared/en/urls.adoc[] @@ -95,7 +95,7 @@ |=== // Sample release notes entry. -//The man:fsck_msdosfs[8] utility has been updated to include a variety of enhancements, including reducing the memory footprint, a new flag, `-M`, which disables the use of man:mmap[2], and others. gitref:9708ba9f29[repository=src] +//The man:fsck_msdosfs[8] utility includes a variety of enhancements, including reducing the memory footprint, a new flag, `-M`, which disables the use of man:mmap[2], and others. gitref:9708ba9f29[repository=src] [[userland]] == Userland @@ -109,16 +109,17 @@ [[userland-programs]] === Userland Application Changes -The {{< manpage "calendar" "1" >}} utility got back support for nested C pre-processor conditionals and gains support for the C++ comment syntax in addition to the C syntax. gitref:19b5c307548[repository=src] +The {{< manpage "calendar" "1" >}} utility again supports nested C pre-processor conditionals and now supports the C++ comment syntax in addition to the C syntax. gitref:19b5c307548[repository=src] -The {{< manpage "calendar" "1" >}} utility has been modified to consistently print dates according to the locale of the invoking user, not the possibly varying locales of included files. gitref:f1560bd080a[repository=src] +The {{< manpage "calendar" "1" >}} utility consistently prints dates according to the locale of the invoking user, not the possibly varying locales of included files. gitref:f1560bd080a[repository=src] -The {{< manpage "calendar" "1" >}} utility has been fixed to use the correct paths for included files if invoked with the -a option. gitref:19b5c307548[repository=src] +The {{< manpage "calendar" "1" >}} utility uses the correct paths for included files if invoked with the -a option. gitref:19b5c307548[repository=src] -The {{< manpage "calendar" "1" >}} utility does no longer install data files other than calendar.freebsd. +The {{< manpage "calendar" "1" >}} utility no longer installs data files other than calendar.freebsd. The data files are now provided by the deskutils/calendar-data port. gitref:d20d6550187[repository=src] -The {{< manpage "daemon" "8" >}} utility now supports the `-H` flag, which causes it to catch SIGHUP and re-open the syslog file received, so log rotation from {{< manpage "newsyslog" "8">}} works properly. gitref:4cd407ec933[repository=src] +The {{< manpage "daemon" "8" >}} utility now supports the `-H` flag which causes it to close and re-open the output file when SIGHUP is received. +This permits rotation of the output file via {{< manpage "newsyslog" "8">}}. gitref:4cd407ec933[repository=src] The {{< manpage "daemon" "8" >}} utility no longer blocks SIGTERM during the restart delay. gitref:09a3675d961[repository=src] @@ -128,15 +129,15 @@ The {{< manpage "freebsd-update" "8" >}} utility now supports the `-p` flag, which ensures password db changes are included in [.filename]#/etc/passwd# via {{< manpage "pwd_mkdb" "8">}}. gitref:9b6591109e8[repository=src] {{< sponsored "The FreeBSD Foundation" >}} -The {{< manpage "freebsd-update" "8" >}} utility now supports the `updatesready` and `showconfig` arguments to check for updates and check the configuration respectively. gitref:8cfda118cbd[repository=src] +The {{< manpage "freebsd-update" "8" >}} utility now supports the `updatesready` and `showconfig` commands to check for updates and check the configuration respectively. gitref:8cfda118cbd[repository=src] -The {{< manpage "freebsd-update" "8" >}} utility includes support for the `PAGER` environment variable, which has now been documented. gitref:32f4592764d[repository=src] +The manual page for the {{< manpage "freebsd-update" "8" >}} utility documents using the `PAGER` environment variable for non-interactive use. gitref:32f4592764d[repository=src] -The {{< manpage "gstat" "8" >}} utility now documents the use of interactive keyboard commands to increase and decrease update interval as well as regular expression filters. gitref:cfaa2958dc4[repository=src] +The manual page for the {{< manpage "gstat" "8" >}} utility now documents the use of interactive keyboard commands. gitref:cfaa2958dc4[repository=src] -The manual page for the {{< manpage "inetd" "8" >}} utility now includes an example of how to use netcat as a HTTP proxy. gitref:a58fc861516[repository=src] +The manual page for the {{< manpage "inetd" "8" >}} utility now includes an example of how to use netcat as an HTTP proxy. gitref:a58fc861516[repository=src] -The {{< manpage "inetd" "8" >}} utility now includes comments for all examples. gitref:26a4a61a285[repository=src] +The manual page for the {{< manpage "inetd" "8" >}} utility now includes comments for all examples. gitref:26a4a61a285[repository=src] [[userland-contrib]] === Contributed Software @@ -178,6 +179,8 @@ A new man:usbhid[4] driver has been added, and can be loaded by adding `hw.usb.usbhid.enable=1` to [.filename]#/boot/loader.conf# and adding `usbhid` to `kld_list=""` in [.filename]#/etc/rc.conf#. gitref:b62f6dfaed3d[repository=src] +The suite of VirtIO device drivers now support the VirtIO V1 spec. This improves FreeBSD's compatibility as a guest operating system with various hypervisors and emulators including the ability to run on the link:https://wiki.qemu.org/images/4/4e/Q35.pdf[Q35 chipset] under QEMU. + [[storage]] == Storage @@ -185,7 +188,7 @@ For {{< manpage "iscsi" "4" >}} and {{< manpage "ctld" "8" >}}, support for specifying network QoS in the form of DiffServ Codepoints (DSCP) and Ethernet Priority Code Point (PCP) was added. gitref:ddf1072aac49[repository=src] {{< sponsored "NetApp" >}} -The {{< manpage "ctld" "8" >}} utility now supports the `-f` flag, which tests the configuration file validity. gitref:7fcbecd004f[repository=src] +The {{< manpage "ctld" "8" >}} utility now supports the `-f` flag to test the validity of configuration files. gitref:7fcbecd004f[repository=src] [[storage-general]] === General Storage @@ -196,11 +199,11 @@ This section covers the boot loader, boot menu, and other boot-related changes. -The {{< manpage "efibootmgr" "8" >}} utility now supports the `-b` flag, which lets users specify by bootnum as an index. gitref:a2581e80212[repository=src] {{< sponsored "Netflix" >}} +The {{< manpage "efibootmgr" "8" >}} utility now supports the `-b` flag to specify an index of a specific boot entry to create or modify. gitref:a2581e80212[repository=src] {{< sponsored "Netflix" >}} -The {{< manpage "efibootmgr" "8" >}} utility now supports the `-E` flag, which lets users query which EFI System Partition was used to boot the system. gitref:1cdb8eb8fe1[repository=src] {{< sponsored "Netflix" >}} +The {{< manpage "efibootmgr" "8" >}} utility now supports the `-E` flag to query which EFI System Partition was used to boot the system. gitref:1cdb8eb8fe1[repository=src] {{< sponsored "Netflix" >}} -The {{< manpage "efibootmgr" "8" >}} utility now supports the `-f` and `-F` flags, which lets users tell the system to boot to the UEFI user interface or not. gitref:83c4237258d[repository=src] {{< sponsored "Ampere Computing, Inc." >}} +The {{< manpage "efibootmgr" "8" >}} utility now supports the `-f` and `-F` flags to set or clear a request to boot to the UEFI user interface on the next boot. gitref:83c4237258d[repository=src] {{< sponsored "Ampere Computing, Inc." >}} Prior releases had a complete ms-dos formatted filesystem packaged into boot1.efifat. Older versions of FreeBSD installed this filesystem image into a raw partition. @@ -219,17 +222,24 @@ This section describes changes that affect networking in FreeBSD. -For {{< manpage "tcp" "4">}}, Proportional Rate Reduction, as described by RFC6937, to improve SACK loss recovery during burst loss and ACK thinning scenarios, was implemented and is enabled by default. +{{< manpage "tcp" "4">}} now supports Proportional Rate Reduction (as described by RFC6937) to improve SACK loss recovery during burst loss and ACK thinning scenarios. +This feature is enabled by default. A new {{< manpage "sysctl" "8" >}} has been added, `net.inet.tcp.do_prr`, which when set to `0` will restore the prior behavior. -It is expected that PRR generally helps improve loss recovery performance and prevent numerous preventable RTO stalls. + +PRR should generally help improve loss recovery performance and prevent numerous preventable retransmit timeout (RTO) stalls. This surpasses the prior behavior, but a strictly packet conserving variant can be enabled. -When misconfigured token bucket traffic policer can cause persistent loss even during loss recovery, activating the conservative PRR variant may prevent some retransmission timeouts (RTO) and associated session stalls for a few milliseconds while behaving less optimal in the general case. -For this, a new {{< manpage "sysctl" "8">}} was added, `net.inet.tcp.do_prr_conservative`. -Setting this variable to `1` will enable strictly packet conserving behavior (at most 1 segment for each ACK received), while the normal variant may send up to 2 segments per received ACK - helping in cases of ACK thinning or significant burst loss events. gitref:0e1d7c25c5ab[repository=src] {{< sponsored "NetApp" >}} +A misconfigured token bucket traffic policer can cause persistent loss even during loss recovery. +In that case, activating the conservative PRR variant may prevent some retransmission timeouts (RTO) and associated session stalls for a few milliseconds while behaving less optimal in the general case. +A new {{< manpage "sysctl" "8">}}, `net.inet.tcp.do_prr_conservative`, +can be set to `1` to enable strictly packet conserving behavior (at most 1 segment for each ACK received), while the normal variant may send up to 2 segments per received ACK - helping in cases of ACK thinning or significant burst loss events. gitref:0e1d7c25c5ab[repository=src] {{< sponsored "NetApp" >}} -The {{< manpage "cc_cubic" "4">}} has been improved to address various corner cases and align more closely with the standard in RFC8312. gitref:40f9078ff9d9[repository=src] {{< sponsored "NetApp" >}} +The {{< manpage "cc_cubic" "4">}} {{< manpage "tcp" "4">}} congestion control algorithm has been improved to address various corner cases and align more closely with the standard in RFC8312. gitref:40f9078ff9d9[repository=src] {{< sponsored "NetApp" >}} -The {{< manpage "ping" "8" >}} and {{< manpage "ping6" "8" >}} utilities both support setting network QoS, with IP DSCP gitref:6034024daddb[repository=src] and Ethernet PCP gitref:81a6f4c7ae69[repository=src] {{< sponsored "NetApp" >}} +The {{< manpage "ping" "8" >}} utility now supports setting network QoS, with IP DSCP gitref:6034024daddb[repository=src] and Ethernet PCP gitref:81a6f4c7ae69[repository=src]. {{< sponsored "NetApp" >}} + +The {{< manpage "ping" "8" >}} and {{< manpage "ping6" "8" >}} utilities have been merged. +{{< manpage "ping" "8" >}} supports both IPv4 and IPv6. +A legacy {{< manpage "ping6" "8" >}} has been retained for backwards compatibility. gitref:3cde9171d2d5[repository=src] [[network-general]] === General Network @@ -239,26 +249,32 @@ This section covers general hardware support for physical machines, hypervisors, and virtualization environments, as well as hardware changes and updates that do not otherwise fit in other sections of this document. +=== AMD64 + +The amd64 architecture now supports Hygon Dhyana Family 18h processors. gitref:2ee49fac82fc[repository=src] + +The amd64 architecture now supports 57-bit virtual addresses (LA57) on supported CPUs. This permits user processes to use up to 56 bits of virtual address space. This also includes support for five layer nested page tables used by bhyve. gitref:9ce875d9b59d[repository=src] {{< sponsored "The FreeBSD Foundation" >}} + [[ARM-ARM64]] === Allwinner -The aw_gpio driver have been improved to handle GPIO interrupts. gitref:0fe5379c6a9[repository=src] +The aw_gpio driver now suppots GPIO interrupts. gitref:0fe5379c6a9[repository=src] -A new aw_pwm driver have been added, pwm channels can be configured with {{< manpage "pwm" "8">}}. gitref:277a038d0da[repository=src] +A new aw_pwm driver supports Pulse Width Modulation (PWM) hardware on Allwinner boards. PWM channels can be configured with {{< manpage "pwm" "8">}}. gitref:277a038d0da[repository=src] -Battery sensors were added to the AXP803/AXP813 drivers. gitref:66bddb4c701[repository=src] +The AXP803/AXP813 drivers now report battery sensor information. gitref:66bddb4c701[repository=src] -Audio is now working on H3/H5 SoCs. gitref:bfcf888a87a[repository=src] +Audio now works on H3/H5 SoCs. gitref:bfcf888a87a[repository=src] -Infrared receiver now works on H3 SoC. gitref:012fba460ac[repository=src] +Infrared receiver now works on the H3 SoC. gitref:012fba460ac[repository=src] -USB DRD is now working on multiple Allwinner SoC, this means that some usb port can be used as peripherals. gitref:aea49d9fed9[repository=src] +USB DRD now works on multiple Allwinner SoCs. This means that some USB ports can be used as peripherals. gitref:aea49d9fed9[repository=src] -===RockChip +=== RockChip -A new rk_pwm driver have been added, pwm channels can be configured with {{< manpage "pwm" "8">}}. gitref:bcd380e88b2[repository=src] +A new rk_pwm driver supports PWM hardware on the RK3399. PWM channels can be configured with {{< manpage "pwm" "8">}}. gitref:bcd380e88b2[repository=src] -A PCIe driver was added for RK3399. gitref:dfd1d0fcabe[repository=src] +External PCI-express adapters are now supports for the RK3399 SoC. gitref:dfd1d0fcabe[repository=src] USB3 found in RK3328 and RK3399 is now supported. gitref:7d888a5b2be[repository=src] @@ -269,76 +285,19 @@ [[hardware-virtualization]] === Virtualization Support -The {{< manpage "bhyve" "8">}} utility has been updated to support COM3 and COM4 serial ports. gitref:eed1cc6cdfa[repository=src] +The {{< manpage "bhyve" "8">}} utility supports additional COM3 and COM4 serial ports. gitref:eed1cc6cdfa[repository=src] -The {{< manpage "bhyve" "8">}} utility has been updated to remove bvmconsole and bvmdebug now that UART support is in. gitref:c4df8cbfde5[repository=src] +The deprecated bvmconsole and bvmdebug device models have been removed. This includes both the device models from {{< manpage "bhyve" "8">}} and the kernel device drivers for FreeBSD guests. gitref:c4df8cbfde5[repository=src] -The {{< manpage "bhyve" "8">}} utility now supports VNC version 3.3, has increased framebuffer poll frequency and doesn't send updates if there are no framebuffer updates. gitref:2bb4be0f865[repository=src] +The {{< manpage "bhyve" "8">}} utility works reliably with more VNC clients including the macOS "Screen Sharing" application. gitref:2bb4be0f865[repository=src] -The {{< manpage "bhyve" "8">}} utility now suspends I/O on ahci-cd devices during a snapshot. gitref:1b9c78611d9[repository=src] +The {{< manpage "bhyve" "8">}} utility now supports VirtIO-9p (aka VirtFS) filesystem sharing. gitref:100353cfbf8[repository=src] {{< sponsored "Conclusive Engineering (development), vStack.com (funding)" >}} -The {{< manpage "bhyve" "8">}} utility now permits suspend/resume of a XHCI device model that has not been attached to by a driver in a guest OS. gitref:57b0a3aacad[repository=src] +The {{< manpage "bhyve" "8">}} utility now supports virtual machine snapshots. This feature is still in active development and is not yet enabled by default. gitref:483d953a86a[repository=src] {{< sponsored "University Politehnica of Bucharest, Matthew Grooms (student scholarships), iXsystems" >}} -The {{< manpage "bhyve" "8">}} utility now honors the disabled setting for MSI-X interrupts for passthrough devices. gitref:1925586e03b[repository=src] {{< sponsored "Chelsio Communications" >}} +The {{< manpage "bhyve" "8">}} utility now supports a VM Generation Counter ACPI device. gitref:9cb339cc7b8[repository=src] -The {{< manpage "bhyve" "8">}} utility now reports version 13.0 in the SMBIOS table. gitref:a2fe464c81d[repository=src] - -The {{< manpage "bhyve" "8">}} utility now has increased the allowed size for 64bit BAR allocation below 4G from 32 to 128 MB. gitref:670b364b76d[repository=src] {{< sponsored "The FreeBSD Foundation" >}} - -The {{< manpage "bhyve" "8">}} utility now avoids allocating BARs above the end of supported physical addresses. gitref:9922872ba29[repository=src] {{< sponsored "The FreeBSD Foundation" >}} - -The {{< manpage "bhyve" "8">}} utility now no longer prints non-printable characters in the smbios.chassis.maker and smbios.system.maker OIDs. gitref:c4fd0cc9ee2[repository=src] {{< sponsored "Netflix" >}} - -The {{< manpage "bhyve" "8">}} utility now supports TRIM via the VirtIO block device. gitref:22769bbe30b[repository=src] {{< sponsored "Klara Inc." >}} - -The {{< manpage "bhyve" "8">}} utility now supports TRIM alignment requirements through VirtIO. gitref:cc3568c1d06[repository=src] {{< sponsored "vStack.com" >}} - -The {{< manpage "bhyve" "8">}} utility now supports virtio-9p (aka VirtFS) filesystem sharing. gitref:100353cfbf8[repository=src] {{< sponsored "Conclusive Engineering (development), vStack.com (funding)" >}} - -The {{< manpage "bhyve" "8">}} utility now reports nominal health values for NVMe. gitref:c4a86c1fc0d[repository=src] - -The {{< manpage "bhyve" "8">}} utility now supports LA57 guest mode. gitref:f3eb12e4a6d[repository=src] {{< sponsored "The FreeBSD Foundation" >}} - -The {{< manpage "bhyve" "8">}} utility now supports setting additional AHCI controller parameters like serial number, firmware revision, model number and NMRR. gitref:9af3bcd7c97[repository=src] - -The {{< manpage "bhyve" "8">}} utility now advertises 64-bit physical-address capability. gitref:fb5f5a17ef0[repository=src] - -The {{< manpage "bhyve" "8">}} utility no longer sends ACPI RTC errors/warnings in some guests. gitref:6a7ff0600bb[repository=src] - -The {{< manpage "bhyve" "8">}} utility now supports NVMe Feature Interrupt Vector Config, Firmware Commit, Asyncronous Event Requests, SMART data I/O statistics, NVMe Format NVM commands, NVMe Namespace Identification Descriptor, the NVMe deallocate command and the NVMe Flush command in a series of commits. - -The {{< manpage "bhyve" "8">}} utility now allows for automatic destruction on power-off. gitref:0a1016f9e8a[repository=src] {{< sponsored "Mysterious Code Ltd." >}} - -The {{< manpage "bhyve" "8">}} utility now exposes kernel-emulated special devices like LAPIC, IOAPIC, and HPET devices to userspace. gitref:8a68ae80f67[repository=src] - -The {{< manpage "bhyve" "8">}} utility now supports a new bhyve network backend that allow connecting the VM to the {{< manpage "netgraph" "4">}} network. gitref:2cd7735d920[repository=src] {{< sponsored "vStack.com" >}} - -The {{< manpage "bhyve" "8">}} utility now has initial support for bhyve save and restore. gitref:483d953a86a[repository=src] {{< sponsored "University Politehnica of Bucharest, Matthew Grooms (student scholarships), iXsystems" >}} - -The {{< manpage "bhyve" "8">}} utility now supports the VM Generation Counter ACPI device. gitref:9cb339cc7b8[repository=src] - -The {{< manpage "bhyve" "8">}} utility has had multiple changes done to the VirtIO network device, like adjustable MTU, mergeable rx buffers, rx backpressure and enabling/disabling VirtIO network device in a series of commits. - -The {{< manpage "bhyve" "8">}} utility now supports the Hygon Dhyana x86 CPU. gitref:5a6d45d0150[repository=src] - -The {{< manpage "bhyve" "8">}} utility now supports software breakpoints in the debug server on Intel CPUs. gitref:cbd03a9df2c[repository=src] - -The {{< manpage "bhyve" "8">}} utility now PCI HDAudio device. gitref:7e3c7420615[repository=src] - -The {{< manpage "bhyve" "8">}} utility now supports the PCIe Integrated Endpoint capability. gitref:129f93c5a76[repository=src] - -The {{< manpage "bhyve" "8">}} utility is now SMBIOS table topology aware. gitref:3facfc75607[repository=src] - -The {{< manpage "bhyve" "8">}} utility now supports CTL device specification via the VirtIO SCSI device. gitref:49f8782283d[repository=src] {{< sponsored "iXsystems, Inc." >}} - -The {{< manpage "bhyve" "8">}} utility now supports PS/2 scancodes for NumLock, ScrollLock and numerical keypad keys. gitref:6f2d76643e6[repository=src] {{< sponsored "iXsystems Inc." >}} - -The {{< manpage "bhyve" "8">}} utility now supports the VNC server to listen on IPv6 for incoming connections. gitref:8883128b8e9[repository=src] - -In addition to all of these, bhyve received an amount of minor changes, which are too numerous to mention, and which fixes a number of outstanding issues. - -Besides the VirtIO changes made for bhyve, there are numerous changes to the {{< manpage "virtio" "4">}} subsystems to make it compatible with the VirtIO V1 spec, which means that FreeBSD can -now run on the link:https://wiki.qemu.org/images/4/4e/Q35.pdf[Q35 chipset]. +The {{< manpage "bhyve" "8">}} utility now supports PCI HDAudio devices. gitref:7e3c7420615[repository=src] [[ports]] == Ports Collection and Package Infrastructure @@ -355,21 +314,21 @@ [[future-releases-cputype]] === Default `CPUTYPE` Change -Starting with FreeBSD-13.0, the default `CPUTYPE` for the i386 architecture will change from `486` to `686`. +Starting with FreeBSD-13.0, the default `CPUTYPE` for the i386 architecture has changed from `486` to `686`. -This means that, by default, binaries produced will require a 686-class CPU, including but not limited to binaries provided by the FreeBSD Release Engineering team. -The FreeBSD 13.0 code base will continue to support older CPUs. +This means that, by default, binaries require a 686-class CPU, including but not limited to binaries provided by the FreeBSD Release Engineering team. +The FreeBSD 13.0 code base continues to support older CPUs. Users needing this functionality, however, will need to build their own releases to obtain this support. As the embedded market is the primary user of cores based on i486 and i586, end-user impact is expected to be minimal. Most embedded systems have custom builds already. -Althought some minor adjust will be necessary, it will be on par with the effort required to move between major versions. +Although some minor adjustments will be necessary, it will be on par with the effort required to move between major versions. Server and desktop machines based on these CPU types are generally over 20 years old. Most have been retired or are too resource poor to make FreeBSD 13.0 an attractive upgrade. There were several factors taken into account for this change. Most applications need 64-bit atomics for proper operation. -While those operations can be emulated in the kernel on i486, they cannot be emulated in the userland. +While those operations can be emulated in the kernel on i486, they cannot be emulated in userland. Updating the default allows compiler generated code to select the right atomics in those cases, allow better optimizations and produce better error messages when necessary. The older library and/or include file approaches are much less optimal in resulting code and diagnostics. Current compiler technology produces better, faster, and/or smaller binaries for i686 than for i486.