This is a display of mostly-automatically-classified git commits from 2026-10-01 to 2026-12-31.
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) | |
| 6 | 7.7% | Userland programs |
| 4 | 5.1% | Documentation |
| 19 | 24.4% | Hardware support |
| 8 | 10.3% | Networking |
| 13 | 16.7% | System administration |
| 2 | 2.6% | Libraries |
| 3 | 3.8% | Filesystems |
| 11 | 14.1% | Kernel |
| 5 | 6.4% | Build system |
| 0 | 0.0% | Internal organizational stuff |
| 4 | 5.1% | Testing |
| 0 | 0.0% | Style, typos, and comments |
| 3 | 3.8% | Contrib code |
| 0 | 0.0% | Reverted commits |
| 0 | 0.0% | Unclassified commits |
| 78 | 100% | total |
| Technical notes about this page |
debug: info about the automatic classification
| num | % | num changed | stage |
|---|---|---|---|
| 7 | 9.0% | 0 | 02-filenames_wildcards |
| 2 | 2.6% | 0 | 02b-filenames_wildcards2 |
| 46 | 59.0% | 0 | 03-filenames_plain1 |
| 20 | 25.6% | 0 | 04-filenames_plain2 |
| 2 | 2.6% | 0 | 05-summary-prefix |
| 1 | 1.3% | 0 | Manually-classified commits |
| 0 | 0.0% | 0 | Unclassified commits |
debug: more stats
| num | % | stage |
|---|---|---|
| 0 | 0.0% | Misclassified commits |
| 77 | 98.7% | Classified commits, no corrections |
debug: groups
| 0 | 0.0% | num in revert |
| 0 | 0.0% | num in fixes |
| 15 | 19.2% | num in consecutive |
| 15 | 19.2% | Commits in groups |
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 --
Commits about commands found in man section 1 (other than networking).
Add mountpoint(1), a simple utility to tell whether the file pointed to by the argument is a mount point. It prints whether it is, unless -q is given, and exits 0 if it is, 1 if it is not, and 2 on error. The answer comes from the kernel with a single stat(2): the root vnode of a mounted file system is reported with SFBSD_MNTPOINT in st_bsdflags. Unlike comparing realpath(3) of the argument with that of statfs(2)'s f_mntonname, this works for arbitrarily deep hierarchies, and after chroot(2) or inside a jail. A chroot or jail root is reported as a mount point only if it is one. The argument does not have to be a directory: file systems such as nullfs(5) can be mounted over regular files and sockets, and stat(2) reports those mount points as well. Since all that is needed is one stat(2) call, make mountpoint a hardlink to stat(1), the same way readlink(1) is, and document it in stat.1. Add ATF tests, including chroot(8) and jail(8) roots that are and are not mount points, nullfs roots, file systems mounted inside the root, both from the host and from within the jail, and a nullfs mount of a file over a file. Suggested by: kib Differential revision: https://reviews.freebsd.org/D59906 Sponsored by: Sippy Software, Inc. MFC after: 2 weeks
debug: classified in
04-filenames_plain2 by
'usr.bin/'
If realloc fails, clean up and return ENOMEM; don't just copy data into NULL. Reviewed by: emaste Reported by: Claude Opus 5.5 MFC after: 2 weeks Sponsored by: Amazon Differential Revision: https://reviews.freebsd.org/D60147
debug: classified in
04-filenames_plain2 by
'usr.bin/'
The image_file_map function adjusts the provided file offset to be page-aligned, with a resulting increase in the size of the mapped region; the increased size needs to be used when unmapping as well. Reported by: Claude Opus 5.5 Fixes: https://cgit.freebsd.org/src/commit/?id=baf4abfc39b2 ("Allow building mkimg as cross-tool") MFC after: 2 weeks Sponsored by: Amazon Differential Revision: https://reviews.freebsd.org/D60148
debug: classified in
04-filenames_plain2 by
'usr.bin/'
This is like image_copyout_region, but copies into a buffer rather than writing out to a file; it will be used by future support for compressed images (and potentially other circumstances where image data must be manipulated before being written out to disk). Reviewed by: jrm No objection from: Christos Komis (author) MFC after: 2 weeks Sponsored by: Google LLC (GSoC 2025) Differential Revision: https://reviews.freebsd.org/D60149
debug: classified in
04-filenames_plain2 by
'usr.bin/'
This will allow it to be reused in upcoming work. Suggested by: Claude Opus 5.5 MFC after: 2 weeks Sponsored by: Amazon Differential Revision: https://reviews.freebsd.org/D60150
debug: classified in
04-filenames_plain2 by
'usr.bin/'
FreeBSD VM/cloud images tend to be highly compressible: The generic VM images compress roughly 3.5:1, and cloud images typically even more since they have significant unused space in their virtual disks. This generally doesn't matter for users who can download compressed release images and extract them locally, but for EC2 in particular relying on uncompressed image formats is painful: We now upload over 500 GB/week to AWS. This commit adds the "stream-optimized" version of the VMDK format, which compresses each 64 kB "grain" individually (and omits grains which are all zeroes). Compared to uncompressed formats, this can produce much smaller images; experiments indicate that using this format for EC2 image uploads will reduce the weekly traffic to under 100 GB/week. Co-authored-by: Claude Opus 5.5 MFC after: 2 weeks Sponsored by: Amazon Differential Revision: https://reviews.freebsd.org/D60151
debug: classified in
04-filenames_plain2 by
'usr.bin/'
Man pages, release notes, etc.
MFC after: 1 week
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
MFC after: 1 week
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Add a note that UEFI VMs using TPM devices should be configured to use a varfile. Some UEFI boot loaders, such as shim, update persistent boot variables and then reset the system when a TPM is present. Without a writable varfile, the VM may be reset repeatedly. Add a TPM device example to the examples list. While here, add a missing "\" to the "uefivm" example, and add ".Pp" before the vCPU pinning examples for consistency with other examples. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=287326 Reviewed by: michaelo, ziaee Sponsored by: The FreeBSD Foundation MFC after: 3 days Differential Revision: https://reviews.freebsd.org/D60181
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Reviewed by: ziaee Co-authored-by: Claude Opus 5.5 MFC after: 2 weeks Sponsored by: Amazon Differential Revision: https://reviews.freebsd.org/D60152
debug: classified in
02-filenames_wildcards by
'.*\.[1-9]'
Hardware drivers and architecture-specific code.
While here, make each <machine/ifunc.h> header include <sys/types.h> so that it can be included standalone. Reviewed by: kib MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D60167
debug: classified in
03-filenames_plain1 by '['sys/arm/',
'sys/arm64/', 'sys/powerpc/', 'sys/riscv/',
'sys/x86/']'
MFC after: 2 weeks Sponsored by: Chelsio Communications
debug: classified in
03-filenames_plain1 by
'sys/dev/'
No functional change (intended). Reviewed by: markj, emaste Fixes: https://cgit.freebsd.org/src/commit/?id=3a12982962ce ("random: add RDSEED as a provably unique entropy source") MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D60193
debug: classified in
03-filenames_plain1 by
'sys/dev/'
PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=299002 Reviewed by: jhb MFC after: 1 week Sponsored by: Chelsio Communications Differential Revision: https://reviews.freebsd.org/D60203
debug: classified in
03-filenames_plain1 by
'sys/dev/'
Current code leads to console text being drawn over the splash image. vt_flush() draws while holding the vtbuf lock. Have it check VDF_SPLASH under it too, and make vtterm_splash() take the vtbuf lock when setting it, before drawing the splash. Sponsored by: Defenso Signed-off-by: Quentin Thébault <quentin.thebault@defenso.fr> Reviewed by: vexeduxr Differential Revision: https://reviews.freebsd.org/D59928
debug: classified in
03-filenames_plain1 by
'sys/dev/'
amd_intr() and amd_intr_v2() call pmc_ibs_intr() and then update kern.hwpmc.stats.intr_processed or intr_ignored. pmc_ibs_intr() also updated them. So each core PMC NMI was also counted as ignored, and each IBS NMI was counted as processed two times. Update the statistics only in the caller. Similarly, drop duplicate PMCDBG messages. Reviewed by: mhorne, Ali Mashtizadeh <ali@mashtizadeh.com> Fixes: https://cgit.freebsd.org/src/commit/?id=e51ef8ae490f ("hwpmc: Initial support for AMD IBS") Sponsored by: AMD Differential Revision: https://reviews.freebsd.org/D60185
debug: classified in
03-filenames_plain1 by
'sys/dev/'
hwpmc: fix stopping process PMCs on exit with PerfMonV2 Since 9d3064010590, pmc_process_exit() calls pmc_process_csw_stop_all() first. That clears pps_cpustate for every virtual PMC on the CPU, so the exit loop then skips the stop and the final read. On AMD PerfMonV2 this has two effects: - The count from the last time slice is lost. A process that never switches out before exit reports 0 with pmcstat -p. - The EVSEL enable bit stays set. After kldunload, the next kldload sees it and says "PMCs maybe in use by firmware!". It is not required that pmc_process_csw_stop_all() should touch the ppc_cpustate field at all; remove this to fix the issues. Reviewed by: mhorne Fixes: https://cgit.freebsd.org/src/commit/?id=9d3064010590 ("hwpmc_amd: add PerfMonV2 global-control path") Sponsored by: AMD Differential Revision: https://reviews.freebsd.org/D60141
debug: classified in
03-filenames_plain1 by
'sys/dev/'
After 40c20fc29cad it is done by vt_core as soon as vt lock is dropped after vd_init() has been executed to avoid sleeping with non-sleepable lock held. Reviewed by: quentin.thebault_defenso.fr, vexeduxr Differential Revision: https://reviews.freebsd.org/D59632
debug: classified in
03-filenames_plain1 by
'sys/dev/'
The driver reads cols/rows and sets the tty window size but never offered the feature, so that code has been dead since the very beginning; also read size under the configuration generation count. Reviewed by: markj Approved by: fuz (mentor) Differential Revision: https://reviews.freebsd.org/D60089
debug: classified in
03-filenames_plain1 by
'sys/dev/'
virtio_console used the host-supplied used lengths without validation, so a host could report a length larger than the buffer, causing the receive and control paths to read past the end of it. Clamp to the buffer size. vtnet already rejected used lengths larger than the buffer, but performed the check after converting the length to an int, so a length larger than INT_MAX would become negative and bypass the check. Reject such frames early before the conversion, and count them in ierrors and rx_frame_too_large. Reviewed by: markj Approved by: fuz (mentor) Differential Revision: https://reviews.freebsd.org/D60092
debug: classified in
03-filenames_plain1 by
'sys/dev/'
Multiport devices report console size per port by control event, which was ignored and hence their ttys could never have a window size. Reviewed by: markj Approved by: fuz (mentor) Differential Revision: https://reviews.freebsd.org/D60094
debug: classified in
03-filenames_plain1 by
'sys/dev/'
rss_gethashconfig() is available without options RSS since d9c55b2e8cd6. Use it to program MRQC, as ixl(4), ice(4) and iavf(4) do, instead of a fixed field set that included UDP 4-tuple, which the configuration excludes unless net.inet.rss.udp_4tuple is set. UDP is now hashed on addresses only by default. Also report the UDP hash types on receive; they were passed up as M_HASHTYPE_NONE. Reviewed by: kbowling Fixes: https://cgit.freebsd.org/src/commit/?id=517904de5cca ("igc(4): Introduce new driver for the Intel I225 Ethernet controller.") Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D60284
debug: classified in
03-filenames_plain1 by
'sys/dev/'
nvme: delete the I/O queues in the system shutdown path A normal shutdown deletes all I/O submission and completion queues before setting CC.SHN, as the suspend path already does. The device_shutdown path went straight to the shutdown notification with the queues live, which some drives take slowly or record as an unclean stop. Skipped the deletion for failed, removed, or never-initialized controllers. Reviewed by: imp, adrian Differential Revision: https://reviews.freebsd.org/D59633
debug: classified in
03-filenames_plain1 by
'sys/dev/'
nvme: do not complete a command when its Abort is not performed An Abort completion with cdw0 bit 0 set means the controller did not abort the command; the command can still complete later. The driver treated this as aborted anyway: it completed the command itself and freed the CID. When the controller completed the command later, the CID may already belong to a new command, so the new command finished with the old command's status, or the unknown-cid assertion fired on INVARIANTS kernels. The watchdog also kept sending a new Abort for the same command every half second while the first one was still pending. Reviewed by: imp, adrian Differential Revision: https://reviews.freebsd.org/D59634
debug: classified in
03-filenames_plain1 by
'sys/dev/'
nvme: set the controller Timestamp feature Controllers that report ONCS.TIMESTAMP keep a millisecond clock that the host is expected to seed Reviewed by: imp, adrian Differential Revision: https://reviews.freebsd.org/D59997
debug: classified in
03-filenames_plain1 by
'sys/dev/'
trap() and set_mcontext() change the FP/VMX/VSX ownership state in several steps with preemption enabled. A context switch in between leaves the thread computing with another thread's register contents: - enable_fpu()/enable_vec() set PCB_FPU/PCB_VEC before loading the registers, so a switch mid-load saves a half-loaded unit over the PCB. - set_mcontext() clears the frame's MSR bits and then the PCB flags; a switch in between re-enables the unit, and the thread returns to user space with it enabled but not owned, so it is neither saved nor restored until the next signal. Both paths run after every sigreturn(2), setcontext(2) and swapcontext(3). A POWER9 test that keeps f14-f31 live across a signal, with other threads using the FPU on the same CPU, saw 283 corrupted round trips out of 882000; none after this change. Hold a critical section around both, as amd64 and arm64 do. Reviewed by: jhibbits MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D60054
debug: classified in
03-filenames_plain1 by
'sys/powerpc/'
dev.igc.N.fc read and wrote a function-static variable shared by every igc device, so a read returned the last value written to any of them (3 until the first write), not the state of the device. The softc value started as 0, which is also the value of "no flow control", while the hardware was set up for full flow control. As a result: - Writing 0 was taken for no change and did nothing, unless another value had been written to that device before. - igc_reset() took a softc value of 0 for "not set", so a device set to 0 went back to full flow control on the next init. - With more than one receive queue the driver enabled per-queue drop (SRRCTL.DROP_EN), which is meant for a MAC that does not send pause frames, although the MAC was told to send them. - Values out of range were accepted and ignored. A write only forced the MAC's flow control bits. The pause bits advertised to the link partner, the pause thresholds and DROP_EN stayed as the last init had set them, and the next link event resolved flow control from the stale advertisement again: a port set to 0 came back honoring pause frames, for example. Start the softc value as full, report it, use it as it is in igc_reset(), reject invalid values, and apply a change by reinitializing the interface, as the dmac and eee_control sysctls do. Two things behave differently now. Changing the mode of a running interface takes the link down to renegotiate. And with the default mode and more than one receive queue DROP_EN is no longer set: a full receive ring makes the MAC send pause frames, and holds up the other queues, where it used to drop that queue's packets. Setting fc to 0 or 1 selects per-queue drop. Tested on I226-V ports with four receive queues: for each mode, the flow control bits in CTRL, the pause thresholds and DROP_EN were read back, and the mode the link partner resolved, also after a down/up. Reviewed by: gallatin Fixes: https://cgit.freebsd.org/src/commit/?id=517904de5cca ("igc(4): Introduce new driver for the Intel I225 Ethernet controller.") MFC after: 2 weeks Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D60363
debug: classified in
03-filenames_plain1 by
'sys/dev/'
The GICv5 ACPI code uses CpuInterfaceNumber to as the CPU ID. This a GICv5 CPU ID and may not be the same as the appropriate FreeBSD value. It is also possible the target CPU is disabled, e.g. when the hw.ncpu tunable is uses to limit CPUs. If this is the case we don't want to enable the CPU in the cpu set as it is offline so cannot handle interrupts. Switch to use ArmMpidr to find which pcpu to use when finding which CPUs the IRS is attached to. Fixes: https://cgit.freebsd.org/src/commit/?id=9556306213e1 ("arm64: Add ACPI support to GICv5 driver") Differential Revision: https://reviews.freebsd.org/D59993 Sponsored by: Arm Ltd
debug: classified in
03-filenames_plain1 by
'sys/arm64/'
Avoid allocating per-transfer maps for coherent tags that cannot bounce. Retain maps for cache synchronization, CCA realms, and KMSAN. These un-used maps carry with them memory and cache miss overheads. Reviewed by: andrew Differential Revision: https://reviews.freebsd.org/D60098 Sponsored by: Netflix
debug: classified in
03-filenames_plain1 by
'sys/arm64/'
Network-related commands, library, and kernel.
pf: free the packet rate counter of a rule pf_ioctl_addrule() allocates a counter_rate for every rule, whether it has a max-pkt-rate or not, and pf_krule_free() never frees it. Free it with the rest of the rule. Reviewed by: kp Approved by: kp (mentor) Fixes: https://cgit.freebsd.org/src/commit/?id=ff11f1c8c76c ("pf: add a generic packet rate matching filter") MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D60190
debug: classified in
03-filenames_plain1 by
'sys/netpfil/'
pf: remove a source limiter from the id tree if its name is taken When pf_sourcelim_add() finds the name of the new limiter taken, it undoes the insertion into the id tree with RB_REMOVE() on the name tree, which the limiter is not in, and then frees the limiter. The freed limiter stays in the inactive id tree, and RB_REMOVE() of an element with no links clears the root of the name tree, which loses every other inactive limiter from it. pf_statelim_add() gets this right. parse.y refuses duplicate names, so pfctl does not get here, but any netlink client can. Reviewed by: kp Approved by: kp (mentor) Fixes: https://cgit.freebsd.org/src/commit/?id=461648121230 ("pf: introduce source and state limiters") Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D60189
debug: classified in
03-filenames_plain1 by
'sys/netpfil/'
pf: return per-address feedback from netlink table test The PFNL_CMD_TABLE_TEST_ADDRS reply carries only the match count, so the per-address feedback from pfr_tst_addrs() is lost: "pfctl -v -T test" lists nothing and "pfctl -vv -T test" reports every address as "nomatch". Return each address, as updated by pfr_tst_addrs(), in a nested PF_TAS_ADDR attribute, and decode them into the caller's array in libpfctl. PF_TA_ADDR is not reused: it shares its value with PF_TAS_ASTATS, which older libpfctl would decode into an uninitialised target. That target was also read when no reply was parsed, so the match count could be garbage; initialise it. Add a regression test. Reviewed by: kp Approved by: kp (mentor) Fixes: https://cgit.freebsd.org/src/commit/?id=281282e9357b ("pf: convert DIOCRTSTADDRS to netlink") See also: https://redmine.pfsense.org/issues/17135 Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D60146
debug: classified in
05-summary-prefix by 'pf:'
The check against V_tcp_sendspace is not a correct one, as a buffer may grow larger than the initial value. The conjunction was always false up until 587c6c121504, and only after it the bug surfaced. If we already grow our buffer past the value stored in the hostcache, prefer our value. Reviewed by: tuexen Differential Revision: https://reviews.freebsd.org/D60105
debug: classified in
03-filenames_plain1 by
'sys/netinet/'
pf_handle_get_srcnodes() returns with the lock of a source hash row held when it cannot start the message for a source node. Unlock the row there, as the other error exit of the loop does. Reviewed by: kp Approved by: kp (mentor) Fixes: https://cgit.freebsd.org/src/commit/?id=9c125336727b ("pf: convert DIOCGETSRCNODES to netlink") MFC after: 1 week Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D60251
debug: classified in
03-filenames_plain1 by
'sys/netpfil/'
We cannot simply treat a pointer to struct oin6_aliasreq as a pointer to struct in6_aliasreq: the latter is larger. In particular, the store to ifra->ifra_vhid is out of bounds. Since OSIOCAIFADDR_IN6 does not need to copy data back out, it can simply use a struct in6_ifaliasreq on the stack. Reported by: Andrew <xxx.sys@protonmail.com> Reviewed by: pouria MFC after: 1 week Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D60184
debug: classified in
03-filenames_plain1 by
'sys/netinet6/'
The TCP-over-UDP ICMP callback receives ip6c_m as a borrowed chain owned by icmp6_notify_error. It used m_pulldown() to obtain a contiguous UDP header even though that API frees the complete chain when the requested range is unavailable. The callback could then return without propagating the lost ownership, leaving raw ICMP delivery to read and free a stale head. Validate that the complete UDP header was quoted, copy it through the chain with m_copydata(), and temporarily advance the parser offset instead of consuming bytes from the caller-owned packet. A remote sender can reach the old path when TCP UDP tunneling is enabled by quoting the configured local UDP source port in an ICMPv6 error and including only four through seven UDP-header bytes. Signed-off-by: Andrew Griffiths <andrew@calif.io> Reviewed by: pouria, tuexen, markj MFC after: 1 week Differential Revision: https://reviews.freebsd.org/D60143
debug: classified in
03-filenames_plain1 by
'sys/netinet/'
For a lightly used ring iflib_txd_db_check() may defer zero descriptors,
so its "pending >= limit" test is true even when nothing has been queued
since the last doorbell. iflib_txq_drain() calls it before, inside and
after its loop, so a sender that drains its own packet wrote the tail
register three times per packet, twice with the value the hardware
already had.
The log of 81be655266fa ("iflib: ensure that tx interrupts enabled and
cleanups") calls skipping the doorbell when db_pending is zero "an
obvious missing optimization"; the comparison against a limit of zero
defeated it. vmx(4) and mgb(4) have dropped such repeated requests in
the driver since 2019. Return early when nothing is pending.
Reviewed by: gallatin
MFC after: 2 weeks
Sponsored by: Rubicon Communications, LLC ("Netgate")
Differential Revision: https://reviews.freebsd.org/D60290
debug: classified in
03-filenames_plain1 by
'sys/net/'
Stuff in man section 8 (other than networking).
Handle empty strings for -Cand -S correctly. Reported by: maxim Reviewed by: maxim MFC after: 1 week MFC to: stable/14 MFC to: stable/15 Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D60210
debug: classified in
04-filenames_plain2 by
'usr.sbin/'
Remove semi-transparent pixels around the orb. These become more pronounced when the orb is used as the spash screen image. While here also strip metadata. MFC after: 3 days Reviewed by: tsoome Differential Revision: https://reviews.freebsd.org/D60163
debug: classified in
03-filenames_plain1 by 'stand/'
stand: Remove const from zfs_lookup's zfsmount argument Dynamic system attribute layout can require modifications to the mount structure on lookup. Drop the const to allow that. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D60260
debug: classified in
03-filenames_plain1 by 'stand/'
stand: zfs_dnode_stat move from spa to mount argument When reading dynamic system attributes, we'll need the mount argument since we can no longer hard-code the offsets. Adjust zfs_dnode_stat to take it. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D60261
debug: classified in
03-filenames_plain1 by 'stand/'
stand: zfs_dnode_readlink move from spa to mount argument For the dynamic system attributes, we'll need the mount argument. Adjust zfs_dnode_readlink to take that argument. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D60262
debug: classified in
03-filenames_plain1 by 'stand/'
stand: Load dynamic system attribute offsets zfs_sa_load looks up all the system attribute offsets and stores them in the mountpoint. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D60264
debug: classified in
03-filenames_plain1 by 'stand/'
stand: Lookup the offsets for this SA bundle Compute the offset for the data for this bundle and the requested data type. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D60265
debug: classified in
03-filenames_plain1 by 'stand/'
stand: Lookup specific SA value in a dnode zfs_dnode_sa_lookup will look in the bonus part of the dnode for the requested SA values, and fall back to the spill as if it's not there. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D60266
debug: classified in
03-filenames_plain1 by 'stand/'
stand: update zfs_dnode_stat to use zfs_dnode_sa_lookup Find the SA values with the zfs_dnode_sa_lookup and read out the relevant bits for the stat buffer. Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D60267
debug: classified in
03-filenames_plain1 by 'stand/'
stand: Implement zfs_dnode_readlink in terms of zfs_dnode_sa_lookup
Get the link offset using the zfs_dnode_sa_lookup helper now.
Recently, the symbolic links we rely on in the boot loader have stopped
working.
Prior to OpenZFS commit e90badec11d3 ("Inherit the project ID for every
object type", Matt Turner, 2026-08-14), symbolic link information was
written at a fixed offset in the SA data. Since that commit, the
inherited PROJIDs mean that all pools with quota enabled have started
writing symbolic links with a new, non-fixed offset. Old symbolic links
remained unchanged, but new ones were written with a different
offset. At work, we have all these things: rewritten BEs, quotas, and a
dependence on symbolic links in our boot path.
This came in on 2026-08-24 OpenZFS merge (22649d4dba73). This was 12
hours after stab week for August, so we didn't hit this until the
September stab week. Since the new kernel has to write links at the new
offset, the initial tests worked, but the second ones didn't.
Sponsored by: Netflix
Differential Revision: https://reviews.freebsd.org/D60268
debug: classified in
03-filenames_plain1 by 'stand/'
Tested by: adam.mizerski@ovhcloud.com Sponsored by: OVHcloud Pull Request: https://github.com/freebsd/freebsd-src/pull/2446
debug: classified in
03-filenames_plain1 by
'libexec/'
Sponsored by: Netflix
debug: classified in
03-filenames_plain1 by 'stand/'
debug: classified in
03-filenames_plain1 by 'sbin/'
in particular, if the old environment is NULL. Among making it less surprising for userspace to observe NULL environ, the change also prevents NULL deref in __rebuild_environ() when terminating the empty as NULL environment with the NULL pointer. Reported by: Leo Bicknell <bicknell@ufp.org> PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=298747 Reviewed by: emaste, markj Sponsored by: The FreeBSD Foundation MFC after: 1 week Differential revision: https://reviews.freebsd.org/D59996
debug: classified in
04-filenames_plain2 by 'lib/'
Nothing in the tree calls any of the three. Remove them rather than fix them: pfctl_get_states_h() does the same with the handle that the caller has. pfctl_free_states(), struct pfctl_states and the list entry in struct pfctl_state were there for pfctl_get_states() alone, and go with it. Reviewed by: kp Approved by: kp (mentor) Fixes: https://cgit.freebsd.org/src/commit/?id=2a478dfc7f9c ("libpfctl: retrieve family id only once") Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D60248
debug: classified in
04-filenames_plain2 by 'lib/'
zpool: Add zpool status -vv error ranges (#17864) Add necessery change to libzfs/Makefile (cherry picked from commit e903655c50fe2e710a4cdfe6e638454012ef6324)
debug: classified in
05-summary-prefix by 'zfs:'
flush_pagedep_deps() drops the soft updates lock while obtaining the vnode of a newly created directory with get_parent_vp(). The MKDIR_BODY dependency may complete during this interval, invalidating the diradd selected before the lock was dropped. Once the directory's allocdirect is retired, the lookup of its first block by block number in flush_newblk_dep() can find an older dependency for a previous use of the same physical block. The newblk hash is not unique by block number: when ffs_reallocblks() relocates a cluster, the completed allocindirs of the old blocks stay on the indirdep's ir_completehd until the indirect block pointer in the inode is written, while the old blocks are already free and may be allocated to a new directory. flush_newblk_dep() then finds a D_ALLOCINDIR where it expects a D_ALLOCDIRECT and panics with "flush_newblk_dep: Bad newblk". Retain the vnode returned by get_parent_vp(), reacquire the soft updates lock, and restart dependency selection. Use the retained vnode only when the newly selected MKDIR_BODY dependency refers to the same inode. Enter flush_newblk_dep() with the soft updates lock held and pass it the associated diradd. Recheck MKDIR_BODY after every operation that may drop the lock, so that completion during the helper's retry loop cannot result in another lookup of the retired allocation. Keep the vnode handling in flush_pagedep_deps(), which owns the retained vnode and the list of unfinished diradds, and move the dependency selection into flush_pagedep_deps1(). The latter never acquires or releases a vnode: it returns EJUSTRETURN with the inode number when it needs one, or with 0 when the retained vnode must be released first, and every call restarts the selection, so a vnode is only used for a diradd found while it was held. This also merges the two get_parent_vp() call sites. Every restart goes through that return: obtaining or releasing a vnode, and continuing after jwait() or getdirtybuf() had to wait with the softdep lock dropped. The diradds deferred on the unfinished list are put back on the pagedep's list before the lock is dropped for a restart, so that none are kept off it while other threads can run. Assert that flush_newblk_dep() is called with the vnode exclusively locked. This preserves the original newblk dependency ordering and retains the existing assertion for an active MKDIR_BODY dependency that resolves to an unexpected dependency type. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=297976 Reviewed by: kib Tested by: pho Sponsored by: Sippy Software, Inc. Differential revision: https://reviews.freebsd.org/D59356
debug: classified in
03-filenames_plain1 by
'sys/ufs/'
I do not think that xp_p2 can be NULL at this point, but add an extra safety belt, just in case. Reviewed by: rmacklem MFC after: 1 week Sponsored by: VersatusHPC
debug: classified in
03-filenames_plain1 by
'sys/fs/'
Kernel stuff (other than networking, filesystems, and drivers).
All architectures have been providing an 'ifunc.h' header with
DEFINE_IFUNC() et alter working both in kernel and userland since commit
cf41d1113377 ("riscv: implement kernel ifunc resolution"), and separate
<i386/ifunc.h> and <amd64/ifunc.h> headers were introduced in commit
2b1db07bec92 ("x86: add machine/ifunc.h"), so stop including
<x86/ifunc.h> directly and use the common <machine/ifunc.h> idiom.
While here, re-order includes in the blocks featuring <x86/ifunc.h>,
which requires fixing <x86/apicvar.h> so that it can be included before
<machine/intr_machdep.h>.
Reviewed by: kib
MFC after: 3 days
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D60194
debug: classified in
04-filenames_plain2 by 'sys/'
First, record the original lowat value and later in the wait/EAGAIN loop look at the original value, rather than on the value that we just faked. This eliminates some blank syscalls, where socket was reported as writable and immediate write instantly fails. In my testing the ratio of such syscalls was really small, under 2%, however in a different scenario this negative effect can be more profound. Second, cap the lowat growth to 1/2 of original socket buffer size, rather than to current size. The problem was there before, but it became more profound after 587c6c121504. Note: we are considering to evaluate if the lowat hack is needed at all. Reviewed by: tuexen Differential Revision: https://reviews.freebsd.org/D60106
debug: classified in
04-filenames_plain2 by 'sys/'
"stack overflow detected" sounds like the thread faulted because it ran out of stack space. Reported by: Andrew <xxx.sys@protonmail.com> MFC after: 1 week Sponsored by: The FreeBSD Foundation
debug: classified in
04-filenames_plain2 by 'sys/'
debug: classified in
04-filenames_plain2 by 'sys/'
When softclock_call_cc() fails to acquire the lock of a CALLOUT_TRYLOCK callout, it reschedules the callout half its precision after cc_lastscan and halves the precision. Repeated failures shrink the delay toward zero, and once the precision reaches 1 the callout is due immediately: the timer fires again at once and softclock retries the lock in a tight loop for as long as the lock is held. If the lock owner runs on the callout's CPU and no other CPU is idle, the softclock thread preempts it on every attempt, starving the thread it is waiting on. On an 8-CPU arm64 VM, a test module holding the lock saw 760,000 attempts per second, each with its own timer interrupt, and progressed at 38% of its normal rate. On a 4-core amd64 system under loopback TCP load, a netisr thread holding an inpcb lock made no progress for 12 minutes while the TCP timer callout was retried 830,000 times per second. Keep the half-precision retry, but never schedule it less than one tick from now. Base the deadline on sbinuptime() rather than cc_lastscan: cc_lastscan is the time of the last callout_process() scan, which can be a tick or more in the past by the time softclock runs the callout, leaving cc_lastscan + tick_sbt already expired. Floor the precision at a tick as well. With a precision of 1 the retries of many contended callouts cannot share a timer interrupt: the timer is armed for the earliest retry, each interrupt collects only those already due, and every callout_process() call walks all the contended callouts in the callwheel bucket. On the same VM, with 10,000 callouts on one lock, the owner took 5.0 to 5.8 s to finish 1 s of work with a precision of 1 and 1.3 s with the floor, and callout_process() ran about 58,000 times against about 900. A single contended callout is now retried about every two ticks. Reviewed by: kib Fixes: https://cgit.freebsd.org/src/commit/?id=efcb2ec8cb81 ("callout: provide CALLOUT_TRYLOCK flag") MFC after: 2 weeks Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D60246
debug: classified in
04-filenames_plain2 by 'sys/'
This patch updates the NFS client RDMA glue so that I/O can be done directly to/from b_pages for buffer cache blocks. It also adds a flag to disable read reduction, that might be needed against some non-FreeBSD servers and sets readahead to 8 for RDMA unless the "readahead" option has been specified. This commit should not affect non-RDMA behaviour. MFC after: 3 months Fixes: https://cgit.freebsd.org/src/commit/?id=884ee8d6c9b4 ("nfscl: Add some glue for client side NFS over RDMA")
debug: classified in
04-filenames_plain2 by 'sys/'
This patch does not fix any semantics issue. MFC after: 3 months Fixes: https://cgit.freebsd.org/src/commit/?id=884ee8d6c9b4 ("nfscl: Add some glue for client side NFS over RDMA")
debug: classified in
04-filenames_plain2 by 'sys/'
So if one inserts a USB drive with a GPT that doesn't match the media size, a resize is initiated, so gpart takes g_access(cp, 1, 1, 1) on the disk and holds it until the resize is accepted or rejected. The orphan path releases it, but the spoil path does not. So if the drive is ejected while the resize is in flight, we call spoil directly, without releasing the access. Since gpt_opened is not cleared for the spoil path, this causes several different process to hang in the open path waiting for the leaked access. Move the release into the wither function when gpt_opened is set, and remove the release elsewhere. Since all paths to destroy the geom pass through wither, this ensure that access is always released when we've taken the access for resize. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=297777 Reported by: Rick Richard MFC After: 1 week Sponsored by: Netflix Differential Revision: https://reviews.freebsd.org/D59138
debug: classified in
04-filenames_plain2 by 'sys/'
When clnt_vc_destroy() is called, it might not be the current connection. Without this patch, if it is not the current connection, xp_p2 is set NULL and xprt is released when it should not be released. This patch adds a check for "current connection" to fix the problem. Found during testing to the client RDMA code, but could happen for TCP as well. MFC after: 1 week
debug: classified in
04-filenames_plain2 by 'sys/'
After more than, I don't know, maybe 10k operations: mount, copy, remove, verify and unmount cycles, one cp command hung in close() / ncl_flush and never recovered. The machine and the mount continued to work normally through a new connection, but the writes using the old connection stayed frozen. I did not understand exactly what happened. I traced what appears to be the issue in the code. My current understanding is that clnt_vc_soupcall() saw the EOF and woke the caller waiting for RPC replies, but one caller remained blocked in sosend(). That thread continued holding a reference to the old client, preventing it from being completely cleaned up. The attached patch calls socantsendmore() when EOF is received, which should wake the blocked sender and let the normal reconnect code replace the connection. Reviewed by: rmacklem MFC after: 1 week Sponsored by: VersatusHPC
debug: classified in
04-filenames_plain2 by 'sys/'
Reviewed by: wulf Differential Revision: https://reviews.freebsd.org/D60275
debug: classified in
04-filenames_plain2 by 'sys/'
For consistency, create a symbolic link from ena.4 to also if_ena.4 Reviewed by: #manpages, ziaee Differential Revision: https://reviews.freebsd.org/D60191 MFC after: 3 days
debug: classified in
02-filenames_wildcards by
'.*Makefile'
Also, adjust bootstrap tools code in Makefile.inc1 to reflect this; in addition to rebuilding mkimg if it is out of date, we now need to build libz, which was not previously needed by mkimg. Reviewed by: kevans MFC after: 2 weeks Sponsored by: Amazon Differential Revision: https://reviews.freebsd.org/D60153
debug: Commit manually moved from "unknown" to "build".
Starting with version 1.5.0, bsdec2-image-upload supports uploading stream-optimized VMDK files. If we build images in that format, we need to upload them appropriately. MFC after: 2 weeks Sponsored by: Amazon
debug: classified in
02-filenames_wildcards by
'.*Makefile'
Once enabled on all of the branches, this will reduce bandwidth consumption from uploading weekly snapshot builds from ~500 GB to ~100 GB, as well as significantly speeding up the process. MFC after: 2 months Sponsored by: Amazon
debug: classified in
02-filenames_wildcards by
'.*Makefile'
PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=299013 Reported by: Trond.Endrestol@ximalas.info Reviewed by: emaste Fixes: https://cgit.freebsd.org/src/commit/?id=222210c6a822 ("libgcc_s: add libgcc_s_asneeded.so wrapper for gcc 16") MFC after: 3 days Sponsored by: The FreeBSD Foundation Differential Revision: https://reviews.freebsd.org/D60252
debug: classified in
03-filenames_plain1 by
'share/mk/'
-- no commits in this category this week --
linux and linux64 are file names, not module names. The corresponding module names are linuxelf and linux64elf, respectively, so these tests were always being skipped. Fixes: https://cgit.freebsd.org/src/commit/?id=b98d169d1f91 ("tests/sys/vfs: add ABI-root absolute symlink tests") Sponsored by: The FreeBSD Foundation
debug: classified in
02b-filenames_wildcards2 by
'tests\/.*'
gnop6.sh recorded the checkfs result with "checkfs ... || s=1 && s=0", which the shell parses as "(checkfs || s=1) && s=0", so the test passed even when the file system check failed. gnop7.sh only sets s when unmount or fsck_ffs fails and ends with "exit $s". On a clean run s is unset, and the script exits with the status of the preceding "[ $notloaded ] && gnop unload", which is 1 whenever geom_nop was already loaded, for instance by an earlier test. fdatasync.sh and fdatasync2.sh ran "df -i $RUNDIR" before creating the directory. With a RUNDIR that does not exist yet, df failed, the test printed "[: -lt: unexpected operator" and the free inode check was skipped. Reviewed by: pho Differential Revision: https://reviews.freebsd.org/D60136 Sponsored by: Sippy Software, Inc. MFC after: 2 weeks
debug: classified in
03-filenames_plain1 by
'tools/test/'
This is the 'stream-optimized' version of the VMDK format. MFC after: 2 weeks Sponsored by: Amazon Differential Revision: https://reviews.freebsd.org/D60154
debug: classified in
02b-filenames_wildcards2 by
'usr.bin/.*/tests/.*'
flush_pagedep_deps() drops the soft updates lock to obtain the vnode of a new directory. If its MKDIR_BODY dependency completes in that window, the lookup of the directory's first block in flush_newblk_dep() can find a stale allocindir left behind by a previous owner of the same block, relocated by ffs_reallocblks() and freed, and panic. The test grows interleaved files past UFS_NDADDR to keep clusters being relocated, while other workers create subdirectories in a parent with IN_ENDOFF set, so that ffs_vput_pair() syncs it, and fsync() them to complete the mkdir dependencies. The file system layout and the way the writers put their blocks on disk are arranged so that a new directory takes over a freed block whose dependency is still retained; the details are in the script. With dtrace=1, the test also counts how often this precondition is met, which works on a fixed kernel too. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=297976 Reviewed by: kib, pho Tested by: pho Sponsored by: Sippy Software, Inc. Differential revision: https://reviews.freebsd.org/D59356
debug: classified in
03-filenames_plain1 by
'tools/test/'
These could go in other categories, but it's more clear if they're here instead.
-- no commits in this category this week --
[DebugInfo] Fill Column 0 if Line is not found (#227559) It is possible that user specified line 0 as the start of the line in C language (using `# 0`). However, it is rejected by the Lexer as we have no line but still carries column information. As a result, we fill column to 0 if we cannot find line. Assisted-by: Claude # Test Fixes: #56186 This fixes a fatal error when building the textproc/peg port. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=264853 MFC after: 3 days
debug: classified in
03-filenames_plain1 by
'contrib/'
In the event `NDEBUG` was defined, `assert` would become a no-op, breaking some of the expectations in `assert_test` around `assert(..)` failing generating a coredump. This is a better approach than the previous one committed in 6f3445006a as it continues to test the `assert(..)` function instead of just skipping it if `NDEBUG` was defined. Suggested by: kevans MFC after: 4 days MFC with: 6f3445006a Fixes: https://cgit.freebsd.org/src/commit/?id=6f3445006a Differential Revision: https://reviews.freebsd.org/D60253
debug: classified in
03-filenames_plain1 by
'contrib/'
[Clang][Sema] Create LocalScope for Variable Template (#228280) A variable template should create its own LocalScope, as it should be opaque to other instantiations. This can occur when there are multiple instantiations in the same lexical scope. The correct behavior is that these instantiations should not be chained together. Assisted-by: Claude # Test ReleaseNote Fixes: #134148 This fixes an assertion while building the devel/glaze port. PR: https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=276265 MFC after: 3 days
debug: classified in
03-filenames_plain1 by
'contrib/'
-- no commits in this category this week --
Not classified automatically, and waiting for manual attention.
-- no commits in this category this week --
Dates:
cgit.freebsd.org/src. Git accurately records the
order of commits, but not their dates.Automatic grouping:
This reverts commit \\b([0-9a-fA-F]{40})\\b
and the hash was found in this week's commits.
Automatic categories:
Source code:
Generated with commits-periodical 0.21 at 2026-10-05 16:55:07+00:00.
This work is supported by Tarsnap Backup Inc.
Alternate version: 2026-10-01 (release)