Skip to content
HN On Hacker News ↗

OpenBSD 7.9

▲ 416 points 307 comments by bradley_taunt 5d ago HN discussion ↗

Pangram verdict · v3.3

We believe that this document is fully human-written

0 %

AI likelihood · overall

Human
100% human-written 0% AI-generated
SEGMENTS · HUMAN 6 of 6
SEGMENTS · AI 0 of 6
WORD COUNT 1,580
PEAK AI % 1% · §6
Analyzed
May 19
backend: pangram/v3.3
Segments scanned
6 windows
avg 263 words each
Distribution
100 / 0%
human / AI fraction
Verdict
Human
Pangram v3.3

Article text · 1,580 words · 6 segments analyzed

Human AI-generated
§1 Human · 0%

Released May 19, 2026. (60th OpenBSD release) Copyright 1997-2026, Theo de Raadt. 7.9 Song: "Diamond in the Rough" Artwork by Lyra Henderson. See the information on the FTP page for a list of mirror machines. Go to the pub/OpenBSD/7.9/ directory on one of the mirror sites. Have a look at the 7.9 errata page for a list of bugs and workarounds. See a detailed log of changes between the 7.8 and 7.9 releases. signify(1) pubkeys for this release: openbsd-79-base.pub: RWTSdNN9A3yvWNn7mUjXwv9DOCOUnyfuV+mq1iGPIfD+NhN8EYnEQ1at openbsd-79-fw.pub: RWQdmBb/OCe1hXE08xCj5VLnBpGpphy7kYPdU3oWyfnrwswjtl8K385E openbsd-79-pkg.pub: RWSw1kDLJJy6OYgnayEMReLV57z2rzx5jYNCghO+2ARwqd6KuwGFWSn7 openbsd-79-syspatch.pub: RWTJmz/ur68S9e26/JVRr7T88lAPZIF3YgZ3w2lDnf/frAxTerC/DrZ6 All applicable copyrights and credits are in the src.tar.gz, sys.tar.gz, xenocara.tar.gz, ports.tar.gz files, or in the files fetched via ports.tar.gz. What's New This is a partial list of new features and systems included in OpenBSD 7.9. For a comprehensive list, see the changelog leading to 7.9. Platform-specific improvements: arm64: Enabled ice(4) on arm64. Added support for the RK3588 and RK3576 SoCs with new or additions to existing drivers.

§2 Human · 0%

Added support for the Genesys Logic GL9755 SDHC controller (which includes the SDHC controller on some of the Apple Silicon laptops) to sdmmc(4). amd64: Added SMU support to amdpmc(4). The SMU is a microcontroller buried deep in the bowels of AMD SoCs and needs to be tickled in order to reach the lowest power states in suspend. Disabled Panel Self Refresh (PSR) in amdgpu to avoid a potential hang on a ThinkPad X13 gen 6. Increased MAXCPUs on amd64 to 255. On amd64, we now zero the DM PTE/PDE pages before use. This fixes a bug on machines with more than 512GB RAM. Mitigated floating point state leakage observed on AMD Zen/Zen+ (Zen 1). luna88k: Switched luna88k compiler to gcc4. Switched luna88k to PIE (Position Independent Executables) by default. riscv64: Systems with a SpacemiT K1 SoC gained support with the following (and more) changes: Added smtclock(4), a driver for the clock/reset controller on the SpacemiT K1 SoC. Added many more drivers to support the SpacemiT K1 SoC. Implemented support for the Zicbom (Cache-Block Management) and Svpbmt (Page-Based Memory Types) extensions. Added the SpacemiT K1 device trees onto the riscv64 miniroot making them accessible during installation. Made "Instruction access fault" (EXCP_FAULT_FETCH) traps being treated as PROT_EXEC. This fixes random SIGSEGV on the SpacemiT X60 cores. Added SpacemiT K1 support to dwpcie(4). Other architectures: Fixed various errors on big-endian systems in ice(4) to make it work on sparc64. Changed powerpc64 memory barriers to "sync". Reworked and improved TLB shootdown on alpha. Hoisted mips64 CPU accounting to get multiple softnet threads on MP systems. Made sure to initialize all FPU registers on sparc64 to all 1 (or -NaN), and not only the lower 32 registers.

§3 Human · 0%

Fixed parking mutex on sun4u sparc64 cpus. More platform-specific changes can be found in the hardware support section below. Various kernel improvements: Introduced a mechanism to manage CPU cores with different speeds in the scheduler. The sysctl(8) variable "hw.blockcpu" takes a sequence of 4 letters: S (for SMT), P (regular performance CPU), E (efficient CPU, generally 80% to 50% as fast), and L (lethargic CPU) which are even slower. Set this to select CPUs to kick out of the scheduler (SL by default). Currently works on amd64 and arm64. Replaced the cas spinlock in kernel mutexes with a "parking" lock. Stopped forcing the page daemon to sleep when there are outstanding paging requests. Implemented a ddb(4) stop command that sends a SIGSTOP to the specified pid. Made ddb(4) output visible when entering ddb from X on amdgpu. Added infrastructure to allow future support of up to 52 partitions per disk. Made changes to avoid memory allocation from within the swapencrypt path of the pagedaemon by pre-allocating 32 swapclusters up-front. Changed the strategy by which the pagedaemon creates free memory by overshooting the creation of inactive and free pages, in order to defragment memory. Refuse to load a binary without a PT_LOAD exec segment. Suspend/Hibernate Support: Implemented delayed hibernation: In order to prevent running out of battery while suspended, this feature wakes up a suspended system after a configurable time to then immediately perform a hibernation. The machdep.hibernatedelay sysctl(2) is used to configure the number of seconds after which the system will wake up from suspend and hibernate itself. SMP Improvements: Unlocked socket splicing. Unlocked icmp6_sysctl(). Unlocked the IGMP slow timeout. Enabled parallel fault handling on amd64 and arm64. Made bse(4) interrupts mp-safe. Protected the IGMP and MLD6 fast timers with an rwlock. Direct Rendering Manager and graphics drivers: Updated drm(4) to Linux 6.18.22.

§4 Human · 0%

VMM/VMD and virtualization improvements: Adopted PCI-based semantics for reading unsupported or invalid registers by returning all 1's. Newer Linux kernels have started using 128-bit feature spaces. Added sysctl(8) machdep.vmmode to indicate status as a host or guest (and SEV mode). Added vmboot, a tiny kernel that allows sysupgrade(8) to work for vmd(8) VMs. Allowed cd(4)/vioscsi(4) on a VM to use confidential computing methods, e.g. AMD SEV. Fixed a segfault in vmd(8) during vmmci timeout firing. Enabled 32-bit direct kernel launch for both amd64 and i386 in vmd(8). Fixed a race in vmd(8) vm pause barrier usage. Fixed a race in vmm(4) vm termination path. Added emulation of AMD SysCfg MSR in vmm(4). Made OpenBSD work on Apple Virtualization. Only expose pvclock(4) in vmm(4) if tsc frequency is known. Reduced vmd(8) lowmem area in the memory map to help Linux guest reboot issues. Prevented vmd(8) pause deadlock when vcpu doesn't halt. Fixed timer emulation-related OpenBSD-i386 VM hangs when using the i8254 hardware timecounter with vmm(4). Made vio(4) recover from missed RX interrupts. Fixed vmd(8) vionet reset race leading to broken networking. Various new userland features: Dynamically determine the possible partition names to show in the disklabel(8) editor a(dd) command help message. Allow the disklabel(8) 'd'elete editor command to zero out FS_UNUSED partitions despite current value of d_npartitions. Added display of the close-on-fork flag as 'f' in R/W column to fstat(1). Added support for the XDG_RUNTIME_DIR environment variable in login(1) and xenodm(1) via login_cap(3). Set it by default, pointing to /tmp/run/user/${uid} which gets created if needed. More bugfixes and tweaks in userland: Made libsndio restart the audio(4) device upon underrun.

§5 Human · 0%

Enable fall-back audio devices by default in sndiod(8). Simplified the Unix socket binding code in sndiod(8). Simplified cookie handling in libsndio. Enabled recording and monitoring at the same time in sndiod(8). In the LLVM compiler, fixed x86 frame lowering for -msave-args. Made pthread_set_name_np(3) succeed with long thread names instead of silently failing. Handle calls to libc's freeaddrinfo(3) function with a NULL argument, instead of crashing, and improve the manpage. Made pcidump(8) print PCI bridge windows when they are "open". Fixed an editline(3) bug that truncates completion candidates when the input wraps to a new line. Added file(1) support for PSF2 fonts detection. Added file(1) support for Web Open Font Format (WOFF) detection. Fixed mg(1) replace-regexp issues. Improved handling of strdup(3) failures in mg(1). Improved the "No changes need to be saved" check in mg(1). Dropped the initialization of curses when ksh(1) is not started interactively. This avoids opening and parsing of the terminfo(3) file. Added echo(1) -e to process escape sequences and support for multiple groups of dash args like ksh's echo. Increased the length of arguments that can be given to pkill(1). This allows matching of commands with longer command line arguments. Made the -0 option override -E in xargs(1). Set metaSendsEscape by default in xterm(1). Fixed leap year detection in newsyslog(8). Fixed less(1) crash on reading an invalid tags file. Fixed a memory leak on sensorsd(8) configuration reload. Improved hardware support and driver bugfixes, including: Tweaked PCI device power management such that drivers can change their own power state. Let xhci(4) power itself down such that its companion USB4 controller can go to sleep in its DVACT_POWERDOWN implementation. Added nhi(4), a driver for USB4 controllers. Added an audio(9) driver interface to expose the hardware's display name. Changed envy(4) and uaudio(4) devices to return the product name as the display name.

§6 Human · 1%

Handle uaudio(4) devices with a single clock exposed in multiple domains. Fixed unintended truncation of uaudio(4) device names when printing them in libsndio applications. Improved acpi(4) handling of PCI bridges. Implemented "StorageD3Enable" support in acpi(4). Stopped acpi(4) from calling the PCI function when an AML node has neither _ADR nor _HID, and avoid a panic on the ThinkPad X40. Added iasuskbd(4) support for special keys on the ASUS I2C laptop keyboards. Added sgmsi(4), a driver for the MSI controller implementation on Sophgo SG2042 SoCs. Added cdpcie(4), a driver for the Cadence PCIe controller, supporting the variant found on the Sophgo SG2042 SoC. Added dwpcie(4) Qualcomm SC7280 support. Added qcuart(4), a driver for Qualcomm GENI UART serial consoles. Added smtgpio(4), a driver for the GPIO controller found on SpacemiT K1 SoCs. Added rkusbdpphy(4), a driver for the USB DP Combo PHY on Rockchip SoCs. Added support for blocking reads to fuse(4). Added basic implementation of the low-level FUSE API sufficient to compile and run lowntfs-3g. Allowed uhidev(4) to attach to and work with devices that don't have an input interrupt endpoint. Added the ispi(4) driver for Intel LPSS SPI controller. Added an Apple variant to the "de" keyboard encoding for wskbd(4). Added acpihid(4), a driver for the Generic Buttons Device defined by the ACPI specification. Made viogpu(4) viogpu_wsmmap() return a physical address via bus_dmamem_mmap(9). Added support for "Apple Inc. Virtual USB Digitizer", to expose the touchpad on Apple Virtualization. Added support for the PSP found on the AMD EPYC 9005 to psp(4). Added support for the AlphaSmart Dana to uvisor(4) as a PALM4 device. Added support for more line speeds to uplcom(4).