FreeBSD git weekly: 2026-10-19 to 2026-10-25

Introduction

This is a display of mostly-automatically-classified git commits from 2026-10-19 to 2026-10-25.

This report is still in progress.

DEBUG: This version of the report is primarily for checking the classifiers, and therefore contains extra information (in this colour).

Table of contents and commits per category:

(0) Highlighted commits (these are copies, not in stats)
0 0.0% Userland programs
0 0.0% Documentation
11 40.7% Hardware support
1 3.7% Networking
7 25.9% System administration
1 3.7% Libraries
0 0.0% Filesystems
6 22.2% Kernel
0 0.0% Build system
0 0.0% Internal organizational stuff
0 0.0% Testing
1 3.7% Style, typos, and comments
0 0.0% Contrib code
0 0.0% Reverted commits
0 0.0% Unclassified commits
27 100% total
Technical notes about this page

debug: info about the automatic classification

num % num changed stage
1 3.7% 0 01-style
15 55.6% 0 03-filenames_plain1
9 33.3% 0 04-filenames_plain2
1 3.7% 0 05-summary-prefix
1 3.7% 0 Manually-classified commits
0 0.0% 0 Unclassified commits

debug: more stats

num % stage
0 0.0% Misclassified commits
26 96.3% Classified commits, no corrections

debug: groups

0 0.0% num in revert
0 0.0% num in fixes
10 37.0% num in consecutive
10 37.0% Commits in groups

Highlighted commits

For extra visibility, these are copies of commits found in other sections. Most (if not all) come from the commit message containing "Relnotes:", or commits modifying UPDATING.

-- no commits in this category this week --

Userland programs

Commits about commands found in man section 1 (other than networking).

-- no commits in this category this week --

Documentation

Man pages, release notes, etc.

-- no commits in this category this week --

Hardware support

Hardware drivers and architecture-specific code.

iwn: fix TX QoS AC -> TID mapping for A-MPDU selection
Map the packet QoS value to a TID before looking it up in the
per node + TID AMPDU state array.

The TX A-MPDU state used to be per-AC, but I changed it to be
per-TID because it /is/ negotiated per-TID.  However this is
not aligned correctly and A-MPDU on eg the voice queue would
cause a mismatch and thus packets to get dropped.

(TIDs 8..15 are special and session based, not traffic QoS based.)

I noticed this because "ssh host" failed after a while, but
"telnet host 22" succeeded.  It turned out that frames weren't
making it to the driver transmit path and I traced it
back to being dropped here.  Traffic worked for a while until
A-MPDU TX was negotiated, and then all traffic on a TID
would fail until the 802.11 association was re-established.

Locally tested:

* iwn 6205, STA mode - forced traffic into VO AC/TID

MFC after: 1 week

Differential Revision:  https://reviews.freebsd.org/D60848
c78d70298edef4c599b503536d193caeb8204784 Adrian Chadd 2026-10-19 00:34:46

debug: classified in 03-filenames_plain1 by 'sys/dev/'

Commit group #0: nvme
nvme: add a timeout for Format NVM commands

Format commands need a longer timeout.

Reviewed by:            seuros, chuck
Differential Revision:  https://reviews.freebsd.org/D59827
5258b44e845a7ccdc3e07a9244e77dc100feedca Warner Losh 2026-10-19 04:38:14

debug: classified in 03-filenames_plain1 by 'sys/dev/'


nvme: support per-request timeouts

Allow different timeouts per command.

Reviewed by:            seuros, chuck
Differential Revision:  https://reviews.freebsd.org/D59828
1c31ef40e185a09c030d53640f6ebc71bb0c830f Warner Losh 2026-10-19 04:38:45

debug: classified in 03-filenames_plain1 by 'sys/dev/'


nvme: honor Linux passthrough command timeouts

Now that we have per-command timeouts, allow linux-compat ioctls to have
a passed-in timeout.

Reviewed by:            seuros, chuck
Differential Revision:  https://reviews.freebsd.org/D59829
15cd8528b1964e646ed8d2282c42f5fe00b72ed2 Warner Losh 2026-10-19 04:39:16

debug: classified in 03-filenames_plain1 by 'sys/dev/'


nvme: Refactor namespace notifications for additions

When we add a namespace, we have the code inline to do the
notifications. Refactor ahead or reuse.

Reviewed by:            seuros
Differential Revision:  https://reviews.freebsd.org/D59831
66c24c94323ae36f2132c60bc2788ab70b60f224 Warner Losh 2026-10-19 04:40:45

debug: classified in 03-filenames_plain1 by 'sys/dev/'


nvme: Notify namespaces on reset sometimes

When we're resetting after a controller failure, and we fix the failure,
and we've not resetting as part of initialization, notify the all the
children devices of new namespaces. When we failed the controller
before, we removed all the namespaces.

Reviewed by:            seuros
Differential Revision:  https://reviews.freebsd.org/D59832
e65ccec8c0e359f584b2948c100ee3012e43c6e7 Warner Losh 2026-10-19 04:41:00

debug: classified in 03-filenames_plain1 by 'sys/dev/'

Add loongarch64 as an optional boot-test.sh arch
D59889 brings up a FreeBSD/loongarch64 EFI loader, none of it in
this tree yet. Add a disabled config entry (excluded from -A, usable
via -a once the port lands) using the confirmed QEMU virt/la464
recipe; hw/loongarch/virt.c defaults to virtio-blk/net, so the
existing generic EFI+GPT builder needs no arch-specific QEMU code.

loongarch64 has never had a FreeBSD release, so
install_minimal_userland's ISO extraction can never find one. Split
it into ISO and installworld-cross-build paths, selected by a new
no_release capability, so archs without a release can still get a
minimal userland.

Differential Revision:  https://reviews.freebsd.org/D59923
041802b362aab8786419618ead6e50c389eb875a Warner Losh 2026-10-19 07:03:19

debug: Commit manually moved from "unknown" to "hardware".

sound examples: trigger dsp devices via syncgroup
Triggering is only needed if device is in mmap mode, and in mmap example
the device is triggered as part of syncgroup. For non-mmap mode,
triggering is not needed at all. Triggering mmap'ed device too early
would start the IPTR/OPTR counters and that would cause those pointers
to be out of sync, so let syncgroup do the triggering once the device is
fully configured and ready for capture and playback.

MFC after:      1 week
Reviewed by:    christos
Differential Revision:  https://reviews.freebsd.org/D60839
d3aa926bffd20e4ef0e12e3ee9af1707ad234cda Goran Mekić 2026-10-19 08:59:36

debug: classified in 05-summary-prefix by 'sound examples:'

uart: support Meteor Lake-P LPSS UART 0
Recognize Intel 8086:7e25 using 32-bit MMIO with a four-byte register
stride. Deassert the LPSS functional resets and program the 100 MHz
reference clock divider for a 44.2368 MHz UART clock before the UART
core claims the register window, and reprogram both on resume.

Reviewed by:    imp, adrian
Differential Revision:  https://reviews.freebsd.org/D60858
b37e8ffbd9d4c46c4dc36842a9721fa766e0e61e Abdelkader Boudih 2026-10-19 15:14:58

debug: classified in 03-filenames_plain1 by 'sys/dev/'

intel: add a shared header for the LPSS private registers
The Intel Low Power Subsystem wraps its I2C, SPI and UART functions in a
block of private registers that control the functional clock and the
function and DMA resets.

Refactored to use a single header

Reviewed by:    imp, adrian
Differential Revision:  https://reviews.freebsd.org/D60859
6690cbdc649e7d0b23d96e1490b72068fc791a95 Abdelkader Boudih 2026-10-19 15:15:09

debug: classified in 03-filenames_plain1 by 'sys/dev/'

amd64: Don't probe MSR_IRPERF when running under bhyve
vmm doesn't implement it, and bhyve simply aborts.  I fixed this in
commit c83e075d72f6, but it'll still be impossible to boot newer FreeBSD
guests on older hosts without this workaround.

Reviewed by:    adrian
Fixes:          https://cgit.freebsd.org/src/commit/?id=2272fac218a8 ("hwpmc: Add support for AMD-only IRPERF in hwpmc PERF class")
Differential Revision:  https://reviews.freebsd.org/D60730
32f7bddb443ad7ddc72fa65ab0eb3a3658703cc7 Mark Johnston 2026-10-19 13:59:41

debug: classified in 03-filenames_plain1 by 'sys/amd64/'

Networking

Network-related commands, library, and kernel.

iflib: Pass up the frames received before a descriptor error
When the driver's isc_rxd_pkt_get() fails part way through a receive
pass, iflib_rxeof() jumps straight to the reset request.  The frames it
already took off the ring and chained for if_input() are neither passed
up nor freed, so up to budget - 1 frames are lost and their mbufs and
clusters leak on every such error, and the frames queued to LRO in the
pass wait for the next one.  Leave the loop instead, pass the chain up
and flush LRO as on the normal exit, then request the reset as before,
without refilling.

The path is reachable from several drivers: igc, em, igb and ixgbe
return EBADMSG for frames received with errors, which the hardware
passes up only with store-bad-packets enabled; ixl, iavf and ice for
every descriptor flagged RXE; aq, enetc, mgb and enic for descriptors
they cannot use.

Reviewed by:            gallatin
Sponsored by:           Rubicon Communications, LLC ("Netgate")
Differential Revision:  https://reviews.freebsd.org/D60805
bdaddb76ef1b9d5537f4a76cff01cdb4795804a4 R. Christian McDonald 2026-10-19 01:06:41

debug: classified in 03-filenames_plain1 by 'sys/net/'

System administration

Stuff in man section 8 (other than networking).

Commit group #1: nvmecontrol
nvmecontrol: select format by sector size

Add automatic selection of lbaf value based on a single sector size. The
lbas (the data sector size) is selected based on the power of 2 in the
sector size, and the metadata size is selected by the remainder. If an
lbaf matches these values is used, otherwise we exit with an error.
When there's a tie, we prefer the higher performance.

Manual selection of these values remains as well for times when we
select incorrectly.

Reviewed by:            seuros, chuck
Differential Revision:  https://reviews.freebsd.org/D59833
4623bbfe7bfc81d2626a5c2a7a5cfb2ff15c0360 Warner Losh 2026-10-19 04:42:12

debug: classified in 03-filenames_plain1 by 'sbin/'


nvmecontrol: support controller-wide sector sizes

Extend sector-size selection to controller-wide formats when every
namespace has one compatible format index and matching effective
metadata and protection settings. Reject ambiguous or inconsistent
layouts so heterogeneous fleets can request a sector size without
risking an unintended controller-wide format.

Reviewed by:            seuros, chuck
Differential Revision:  https://reviews.freebsd.org/D59834
b991e2dd824cc6a120a346a183837875ff75b66d Warner Losh 2026-10-19 04:42:43

debug: classified in 03-filenames_plain1 by 'sbin/'


nvmecontrol: add format dry-run support

Add -n/--dry-run to resolve and print the Format NVM command without
submitting it. This lets users verify namespace selection and format
parameters before making destructive media changes.

Reviewed by:            seuros, chuck
Differential Revision:  https://reviews.freebsd.org/D59835
3b66efc6e9b8999053f11a449056fad5ebc1c1ac Warner Losh 2026-10-19 04:43:00

debug: classified in 03-filenames_plain1 by 'sbin/'


nvmecontrol: Use admin device for admin-passthru

When we're doing admin-passhtru, we need to use the admin device, not
the namespace device. So when we're passed in ndaX or nvdX, we need to
translate that to nvmeY for this command for the admin-passthru command,
but not the io-passthru command. Note namespace nuance in man page.

Differential Revision:  https://reviews.freebsd.org/D59878
bf3726998fc7655fa116dd99be24842407d8263b Warner Losh 2026-10-19 04:43:09

debug: classified in 03-filenames_plain1 by 'sbin/'


nvmecontrol: Fix mixup between pi and pil

pi and pil were extracted from the incorrect place. Swap how we get/set
there to be correct. However, since these are always 0, this is a nop.
ee96770ee37591d5fc9f7ee39aa1386636e8dc8d Warner Losh 2026-10-19 06:19:17

debug: classified in 03-filenames_plain1 by 'sbin/'

bhyveload: Factor global variables into a software context
This will make it easier to port bhyveload's functionality into the main
bhyve executable.

No functional change intended.

Reviewed by:    novel
MFC after:      2 weeks
Differential Revision:  https://reviews.freebsd.org/D60481
55d0e022fbcd83ec5a29fe5751af85e2c3ebf19b Mark Johnston 2026-10-19 13:45:36

debug: classified in 04-filenames_plain2 by 'usr.sbin/'

bhyve: Fix virtio-input event array resizing
Use the new array size when calling realloc().  Note that this queue
stores events read from a host evdev device, i.e., it is not
guest-controlled.

While here, use the cdefs.h __unused macro and use them correctly, i.e.,
don't mark "arg" as unused when it isn't.

Reported by:    Brian Delgado from Intel using Anthropic Opus 4.8
Fixes:          https://cgit.freebsd.org/src/commit/?id=054accac71e0 ("Add a virtio-input device emulation.")
MFC after:      2 weeks
Sponsored by:   The FreeBSD Foundation
Differential Revision:  https://reviews.freebsd.org/D60679
f1986e5b88630b1404a202251499bca0f97f5f06 Mark Johnston 2026-10-19 13:54:33

debug: classified in 04-filenames_plain2 by 'usr.sbin/'

Libraries

libthr: drop use of try_gc in the end of thr_join
thr_try_gc unlock and lock again to make sure the lock order. However,
there is no reason for such roundtrip if the caller holds the correct
oder. As a result, we create a new helper function to add the thread
to gc list without unlock + lock and wire the join_common to this new helper.

Reviewed by:    kib
MFC after:      2 weeks
Differential Revision: https://reviews.freebsd.org/D60717
894f70a2bd8c7f67f131b76b9ce122a752818af3 ShengYi Hung 2026-10-13 22:40:05

debug: classified in 04-filenames_plain2 by 'lib/'

Filesystems

-- no commits in this category this week --

Kernel

Kernel stuff (other than networking, filesystems, and drivers).

sched_ule: tdq_runq_add(): Scope variables, delineate the different steps
For better readability.

No functional change (intended).

MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
d5e9c642307c13b8058609f421b63e2c72bab45f Olivier Certner 2026-10-09 09:19:58

debug: classified in 04-filenames_plain2 by 'sys/'

sched_ule: sched_affinity(): Delineate steps
No functional change (intended).

MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
a1fe7f00bc452653426493c511d288e5a4e7862d Olivier Certner 2026-10-09 14:50:59

debug: classified in 04-filenames_plain2 by 'sys/'

sched_ule: Use TDQ_CPU() macro instead of fiddling with DPCPU
No functional change (intended).

MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
79ca9f787ca92018a1374242bb77252af6fce0d0 Olivier Certner 2026-10-13 08:28:18

debug: classified in 04-filenames_plain2 by 'sys/'

sched: INVARIANTS: Check sched_preempt() is called on 'curthread'
sched_preempt() does not support operating on a remote thread.  If you
are looking to influence CPU allocation on another thread, see, e.g.,
cpuset_setthread(), which in the end calls sched_affinity().

MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
f19009020a33d07d7cad9393b4bf0a36f267cd07 Olivier Certner 2026-10-13 08:31:36

debug: classified in 04-filenames_plain2 by 'sys/'

kmsan: Add a required forward type declaration
MFC after:    1 week
ad37abf653f77c59ce6c296eda9976c74c905d2e Mark Johnston 2026-10-16 14:11:03

debug: classified in 04-filenames_plain2 by 'sys/'

inotify: Open target the directory when adding a watch
When an application uses inotify to watch a directory,
vn_inotify_add_watch() reads the directory entries and does a name
lookup so as to induce the filesystem to create namecache entries.
Some filesystems expect the directory to be opened before VOP_READDIR
can be called, so do that.

PR:             https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=299239
Reviewed by:    kib
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D60782
de80428118101624aaeaae02d59665d1027ff10e Mark Johnston 2026-10-19 13:44:41

debug: classified in 04-filenames_plain2 by 'sys/'

Build system

-- no commits in this category this week --

Internal organizational stuff

-- no commits in this category this week --

Testing

-- no commits in this category this week --

Style, typos, and comments

These could go in other categories, but it's more clear if they're here instead.

sched_ule: tdq_notify(): Fix a typo in a comment
MFC after:      3 days
Sponsored by:   The FreeBSD Foundation
ea1da6a51a5aa0c949fc125aece6b88a68e67a3a Olivier Certner 2026-10-09 09:22:31

debug: classified in 01-style by '[tT]ypo'

Contrib code

-- no commits in this category this week --

Reverted commits

-- no commits in this category this week --

Unclassified commits

Not classified automatically, and waiting for manual attention.

-- no commits in this category this week --

Technical notes

Dates:

Automatic grouping:

Automatic categories:

Source code:


Generated with commits-periodical 0.21 at 2026-10-19 17:00:59+00:00.

This work is supported by Tarsnap Backup Inc.

Alternate version: 2026-10-19 (release)