FreeBSD/src 545cef1sys/dev/ena ena.h

ena: Update driver version to v2.8.3

Features:
* Report RX overrun errors via sysctl hw stats

Bug Fixes:
* Budget rx descriptors, not packets, to fix jumbo frame throughput

Minor Changes:
* Adjust ena_[rt]x_cleanup to return bool

MFC after: 2 weeks
Sponsored by: Amazon, Inc.
Differential Revision: https://reviews.freebsd.org/D56641

(cherry picked from commit af7911d3b732b8e0d4254c5d0bf60d74ced89157)
DeltaFile
+1-1sys/dev/ena/ena.h
+1-11 files

FreeBSD/src 109ee0asys/dev/ena ena_datapath.c ena.h

ena: Budget rx descriptors, not packets

We had ENA_RX_BUDGET = 256 in order to allow up to 256 received
packets to be processed before we do other cleanups (handling tx
packets and, critically, refilling the rx buffer ring).  Since the
ring holds 1024 buffers by default, this was fine for normal packets:
We refill the ring when it falls below 7/8 full, and even with a large
burst of incoming packets allowing it to fall by another 1/4 before we
consider refilling the ring still leaves it at 7/8 - 1/4 = 5/8 full.

With jumbos, the story is different: A 9k jumbo (as is used by default
within the EC2 network) consumes 3 descriptors, so a single rx cleanup
pass can consume 3/4 of the default-sized rx ring; if the rx buffer
ring wasn't completely full before a packet burst arrives, this puts
us perilously close to running out of rx buffers.

This precise failure mode has been observed on some EC2 instance types
within a Cluster Placement Group, resulting in the nominal 10 Gbps
single-flow throughput between instances dropping to ~100 Mbps as a

    [21 lines not shown]
DeltaFile
+10-3sys/dev/ena/ena_datapath.c
+2-2sys/dev/ena/ena.h
+12-52 files

FreeBSD/src 94659fcsys/dev/ena ena_datapath.c

ena: Adjust ena_[rt]x_cleanup to return bool

The ena_[rt]x_cleanup functions are limited internally to a maximum
number of packets; this ensures that TX doesn't starve RX (or vice
versa) and also attempts to ensure that we get a chance to refill
the RX buffer ring before the device runs out of buffers and starts
dropping packets.

Historically these functions have returned the number of packets which
they processed which ena_cleanup compares to their respective budgets
to decide whether to reinvoke them.  This is unnecessary complication;
since the precise number of packets processed is never used, adjust
the APIs of those functions to return a bool indicating if they want
to be reinvoked (aka if they hit their limits).

Since ena_tx_cleanup now only uses work_done if diagnostics are
enabled (ena_log_io macros to nothing otherwise) eliminate that
variable and pass its value (ENA_TX_BUDGET - budget) to ena_log_io
directly.

    [9 lines not shown]
DeltaFile
+12-14sys/dev/ena/ena_datapath.c
+12-141 files

FreeBSD/src 77876ebsys/dev/ena ena.c ena.h

ena: Report RX overrun errors

Extract rx_overruns from the keep alive descriptor reported by
the device and expose it via sysctl hw stats.

RX overrun errors occur when a packet arrives but there are not
enough free buffers in the RX ring to receive it.

MFC after: 2 weeks
Sponsored by: Amazon, Inc.
Differential Revision: https://reviews.freebsd.org/D56640

(cherry picked from commit e3f4a63af63bea70bc86b6c790b14aa5ee99fcd0)
DeltaFile
+4-0sys/dev/ena/ena.c
+2-0sys/dev/ena/ena.h
+2-0sys/dev/ena/ena_sysctl.c
+8-03 files

FreeBSD/src b49021busr.bin/xinstall install.1

install.1: Document options incompatible with -s

Reported by:    des
Reviewed by:    ziaee
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57409
DeltaFile
+5-1usr.bin/xinstall/install.1
+5-11 files

FreeBSD/src 303df71sys/rpc svc_vc.c rpcsec_tls.h, sys/rpc/rpcsec_tls rpctls_impl.c

krpc: Get rid of KRPC_VNET macros

When the krpc was vnet'd, the VNET macros were hidden
behind macros that had the KRPC_ prefix on them.
This was done because, at the time, it was thought
that something other than vnet might be used for this.
That has not happened and probably will not happen,
so this patch replaces these obscuring macros with
the regular vnet ones.

There should be no semantics change caused by
this commit.

(cherry picked from commit d8d9e1cf5e055433565a7e686bc096a8494d2bb8)
DeltaFile
+45-45sys/rpc/svc_vc.c
+15-15sys/rpc/rpcsec_tls/rpctls_impl.c
+0-15sys/rpc/rpcsec_tls.h
+60-753 files

FreeBSD/src fcc7609sys/fs/nfs nfs_commonport.c nfs_commonsubs.c, sys/fs/nfsserver nfs_nfsdport.c nfs_nfsdstate.c

nfsd: Get rid of NFSD_VNET macros

When the nfsd was vnet'd, the VNET macros were hidden
behind macros that had the NFSD_ prefix on them.
This was done because, at the time, it was thought
that something other than vnet might be used for this.
That has not happened and probably will not happen,
so this patch replaces these obscuring macros with
the regular vnet ones.

There should be no semantics change caused by
this commit.

(cherry picked from commit 821976facf746ef241e1524b44bb1de0af98fdc0)
DeltaFile
+147-147sys/fs/nfs/nfs_commonport.c
+147-147sys/fs/nfs/nfs_commonsubs.c
+89-89sys/fs/nfsserver/nfs_nfsdport.c
+80-80sys/fs/nfsserver/nfs_nfsdstate.c
+67-67sys/fs/nfsserver/nfs_nfsdcache.c
+42-42sys/fs/nfsserver/nfs_fha_new.c
+572-5727 files not shown
+671-68513 files

FreeBSD/src ce77cd3sys/fs/nfs nfs_commonkrpc.c, sys/fs/nfsserver nfs_nfsdserv.c

nfscl: Fix handling of gssd upcalls for the NFS client

Without this patch, all upcalls to the gssd daemon are
done in vnet0 (outside of any vnet jail).  This does
not work well, because a user principal's credential
cache can be within the jail (/tmp/krb5cc_NNN in the
jail's namespace).

This patch modifies the client so that RPCs done
from within vnet jails does an upcall to a gssd
daemon running within the vnet jail.  It required
that the cache of uid->credential shorthands in
the rpcsec_gss be vnet'd.

The situation is still less than ideal and sec=krb5[ip]
mounts that are visible within vnet jails is still
not something I would recommend, but it can work ok
with this patch.


    [5 lines not shown]
DeltaFile
+59-52sys/rpc/rpcsec_gss/rpcsec_gss.c
+21-2sys/fs/nfs/nfs_commonkrpc.c
+6-2sys/fs/nfsserver/nfs_nfsdserv.c
+6-1sys/rpc/clnt_vc.c
+6-1sys/rpc/clnt_bck.c
+6-1sys/rpc/clnt_dg.c
+104-592 files not shown
+107-608 files

FreeBSD/src 07d7339sys/fs/nfsclient nfs_clrpcops.c

nfs_clrpcops.c: Change initial layout type to flex files

Since the File 4.1 layout is only supported by some
large configurations of Netapp Filers, switch the client
pNFS code to attempting to use Flexible File Format first.

File 4.1 Layout should still work for any servers that do
no support Flexible File Layout.
DeltaFile
+5-5sys/fs/nfsclient/nfs_clrpcops.c
+5-51 files

FreeBSD/src 9a133eesys/dev/thunderbolt nhi.c router.c

thunderbolt: Fix INVARIANTS compilation

The problem is that THUNDERBOLT_DEBUG triggers the use of some
variables, but it is independent of INVARIANTS and the variables it uses
were tagged with '__diagused'.

Fix this by using '__maybe_unused' in those places.

Fixes:          183633079178 ("thunderbolt: make code -Wunused clean")
Fixes:          886164895f3f ("amd64: complete thunderbolt KERNCONF integration")
Sponsored by:   The FreeBSD Foundation
DeltaFile
+3-3sys/dev/thunderbolt/nhi.c
+2-2sys/dev/thunderbolt/router.c
+1-1sys/dev/thunderbolt/tb_acpi_pcib.c
+1-1sys/dev/thunderbolt/tb_pcib.c
+7-74 files

FreeBSD/src 521afceusr.bin/xinstall xinstall.c, usr.bin/xinstall/tests install_test.sh

xinstall: Do not allow -l and -s together

Cannot strip the target if creating a link.

Reviewed by:    des
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57398
DeltaFile
+6-0usr.bin/xinstall/xinstall.c
+3-0usr.bin/xinstall/tests/install_test.sh
+9-02 files

FreeBSD/src 4908beausr.bin/xinstall/tests install_test.sh

xinstall: Add test for -d -s not allowed together

Reviewed by:    des
Sponsored by:   The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D57403
DeltaFile
+7-0usr.bin/xinstall/tests/install_test.sh
+7-01 files

FreeBSD/src ce243dfsys/conf kern.post.mk, sys/i386/i386 genassym.c

i386: Fix build (of 'genassym.o')

i386's genassym.c needs to define some assembly symbols holding the size
of NFS structures to support NFS_ROOT while booting with a nfs_diskless
structure.  For this, it needs to include a few NFS headers, which
require definitions from <sys/mount.h> (fhandle_t, vfs_init_t), which
was removed by commit 72ab129799a2 ("x86: remove sys/mount.h from
genassym.c").

Since recently, <sys/mount.h> has been including <sys/vnode.h>, so needs
"vnode_if.h" to have been generated for the compilation of 'genassym.o'
not to fail.  Make sure this is the case (for all architectures for
simplicity) by tweaking the rule for 'genassym.o' in
'sys/conf/kern.post.mk', leaving a comment there so that it can be
removed when i386 is dropped (or if the above-mentioned dependency is
broken).

Fixes:          72ab129799a2 ("x86: remove sys/mount.h from genassym.c")
Sponsored by:   The FreeBSD Foundation
DeltaFile
+4-1sys/conf/kern.post.mk
+1-0sys/i386/i386/genassym.c
+5-12 files

FreeBSD/src 017690elib/libsysdecode flags.c mktables, sys/netpfil/pf pf_nl.h

netpfil: add PF netlink command decoding support

Convert PFNL_CMD values in pf_nl.h from an enum to #define constants,
add a pfnl_cmd table definition for mktable, and implement the
corresponding command decoding helpers in libsysdecode.

This allows mktable to generate PF netlink command lookup tables and
enables symbolic decoding of PF netlink commands.

Reviewed by:    kp
Signed-off-by:  Ishan Agrawal <iagrawal9990 at gmail.com>
Sponsored by:   Google LLC (GSoC 2026)
DeltaFile
+51-52sys/netpfil/pf/pf_nl.h
+8-0lib/libsysdecode/flags.c
+1-0lib/libsysdecode/mktables
+1-0lib/libsysdecode/sysdecode.h
+61-524 files

FreeBSD/src 3d9cd10usr.sbin/periodic/etc/security 520.pfdenied

pfdenied: fix checking root anchor

pfctl doesn't like empty anchors (-a ''), but we can specify the root
anchor as '/' too, so do that instead.

PR:             295324
Tested by:      Paweł Krawczyk
MFC after:      1 week
Sponsored by:   Rubicon Communications, LLC ("Netgate")
DeltaFile
+1-1usr.sbin/periodic/etc/security/520.pfdenied
+1-11 files

FreeBSD/src a22f7e4sys/dev/sound/pcm mixer.c

sound: Retire snd_mixer->enuminfo

Instead of caching this when mix_setrecdevs() is called (which many
drivers never call), calculate it when we need it. After all, it is
quite rare that this structure is used by applications.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Pull Request:   https://ron-dev.freebsd.org/FreeBSD/src/pulls/18

(cherry picked from commit 5589a7499add5912a88e9424b0aec843e099fb60)
DeltaFile
+23-55sys/dev/sound/pcm/mixer.c
+23-551 files

FreeBSD/src 70f6823sys/dev/sound/pcm mixer.h mixer.c

sound: Update mixer.c LICENSE header

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Pull Request:   https://ron-dev.freebsd.org/FreeBSD/src/pulls/18

(cherry picked from commit 773bbfc57328f0a7947f2ad9a30de6a45ccce758)
DeltaFile
+4-0sys/dev/sound/pcm/mixer.h
+4-0sys/dev/sound/pcm/mixer.c
+8-02 files

FreeBSD/src 1ed4817sys/arm/allwinner/a64 sun50i_a64_acodec.c, sys/arm64/rockchip rk3328_codec.c

sound: Remove all remaining uses of mixer_get_lock()

These functions are called from sound(4) through MIXER_SET() in
mixer_set(), but nothing mixer-related is used or needs to be locked in
these cases.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Pull Request:   https://ron-dev.freebsd.org/FreeBSD/src/pulls/18

(cherry picked from commit 1e72608a3c6a60b76938c5ded2a290d0b9ff6456)
DeltaFile
+0-17sys/dev/sound/macio/onyx.c
+0-17sys/dev/sound/macio/tumbler.c
+0-17sys/dev/sound/macio/snapper.c
+0-14sys/arm64/rockchip/rk3328_codec.c
+0-14sys/arm/allwinner/a64/sun50i_a64_acodec.c
+0-795 files

FreeBSD/src 323e28esys/dev/sound/pcm mixer.h mixer.c

sound: Retire MIXER_SIZE and use correct size in DEFINE_CLASS

I am not sure why this hack was needed, but the size should be
sizeof(struct snd_mixer). Unfortunately, we have to expose snd_mixer,
but it should be better than relying on a hack.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Pull Request:   https://ron-dev.freebsd.org/FreeBSD/src/pulls/18

(cherry picked from commit 64ebbb1d74415cb93445cc625da63449f01ac8c5)
DeltaFile
+24-8sys/dev/sound/pcm/mixer.h
+0-22sys/dev/sound/pcm/mixer.c
+24-302 files

FreeBSD/src da80fa2sys/dev/sound/pcm mixer.c mixer.h

sound: Retire unused mixer_get_lock()

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Pull Request:   https://ron-dev.freebsd.org/FreeBSD/src/pulls/18

(cherry picked from commit 6a3a42c57cf45874294105419f5c5de6602db3f8)
DeltaFile
+0-10sys/dev/sound/pcm/mixer.c
+0-1sys/dev/sound/pcm/mixer.h
+0-112 files

FreeBSD/src d80356bsys/dev/sound/usb uaudio_pcm.c

snd_uaudio: Stop using mixer_get_lock()

There is no reason to lock snd_mixer->lock here, since the only thing we
are doing with snd_mixer is to call mix_getdevinfo() and mix_get_dev(),
which are one-line getters, which are needed to eventually call
uaudio_get_child_index_by_dev().

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Pull Request:   https://ron-dev.freebsd.org/FreeBSD/src/pulls/18

(cherry picked from commit e87654db5a0923856afbaace9bd0975331782044)
DeltaFile
+2-23sys/dev/sound/usb/uaudio_pcm.c
+2-231 files

FreeBSD/src b8d119csys/dev/sound/pcm mixer.c

sound: Do not lock before destroying snd_mixer->lock

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Pull Request:   https://ron-dev.freebsd.org/FreeBSD/src/pulls/18

(cherry picked from commit 7485519d56346909c4db595ab0342128353d5b8d)
DeltaFile
+0-1sys/dev/sound/pcm/mixer.c
+0-11 files

FreeBSD/src d608731sys/dev/sound/usb uaudio.c

snd_uaudio: Do not use snd_mixer->lock as mixer_lock

In similar fashion to c234740c9d34 ("snd_uaudio: Do not use
pcm_channel->lock to protect uaudio_chan"), stop this layering
violation, and introduce a snd_uaudio(4)-internal mixer_lock.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Pull Request:   https://ron-dev.freebsd.org/FreeBSD/src/pulls/18

(cherry picked from commit 9a00e0b8ca566b6942874eb08c03baf035a17702)
(cherry picked from commit fc9dc848239652ec1e4135adb4833a5f002cef0f)
DeltaFile
+17-24sys/dev/sound/usb/uaudio.c
+17-241 files

FreeBSD/src f94bb91share/man/man4 pcm.4, sys/dev/sound/pcm mixer.c

sound: Retire unused hw.snd.vpc_mixer_bypass

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Pull Request:   https://ron-dev.freebsd.org/FreeBSD/src/pulls/18

(cherry picked from commit 8e804f3dd6298d6aa8cbaf0f2a0267c6207ac8f7)
DeltaFile
+0-9share/man/man4/pcm.4
+0-5sys/dev/sound/pcm/mixer.c
+0-142 files

FreeBSD/src 3693f44sys/dev/sound/pcm mixer.c

sound: Retire mixer_ioctl_channel()

This function never succeeds when it is not called from the same process
that has opened the file descriptor (e.g., mixer(8)). The reason is that
the CHN_FOREACH() loop tries to match the pid of each channel with the
pid of the process performing the ioctl, which will not be the same,
unless it's the same process that both opened the channel and performed
the ioctl.

In the case that the same process opens the channels and performs the
ioctl, however, we still do not need to worry, because mixer_ioctl_cmd()
essentially does the same thing anyway. Additionally, this scenario
should be quite rare, given that most applications do not open both
/dev/dsp* and /dev/mixer*, and in fact, it is actively encouraged by the
official OSSv4 specification not to do that.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Pull Request:   https://ron-dev.freebsd.org/FreeBSD/src/pulls/18

    [2 lines not shown]
DeltaFile
+1-116sys/dev/sound/pcm/mixer.c
+1-1161 files

FreeBSD/src de5502esys/dev/sound/pcm dsp.c mixer.h

sound: Remove unused "from" mixer_ioctl_cmd() argument

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Pull Request:   https://ron-dev.freebsd.org/FreeBSD/src/pulls/18

(cherry picked from commit 22730c4b10ba391859a06966ea3e429aaf43cd09)
DeltaFile
+3-6sys/dev/sound/pcm/dsp.c
+1-4sys/dev/sound/pcm/mixer.h
+2-2sys/dev/sound/pcm/mixer.c
+6-123 files

FreeBSD/src 52536dbsys/dev/sound/pcm channel.c feeder_eq.c

sound: Retire FEEDEQ_DISABLE

We can do this more efficiently by just using the SD_F_EQ* flags. In
fact, the dev.pcm.%d.eq handler will (un)set SD_F_EQ_ENABLED and this is
what we actually test with when choosing to creating the EQ feeder or
not, so setting the state to FEEDEQ_DISABLE does not really an effect in
the first place.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Pull Request:   https://ron-dev.freebsd.org/FreeBSD/src/pulls/15

(cherry picked from commit f5d6e5cb5c3e0593d24c90671d72654aa59cdd1a)
DeltaFile
+4-8sys/dev/sound/pcm/channel.c
+2-3sys/dev/sound/pcm/feeder_eq.c
+0-1sys/dev/sound/pcm/feeder.h
+6-123 files

FreeBSD/src 9060512share/man/man4 pcm.4

pcm.4: Document dev.pcm.%d.eq*

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Pull Request:   https://ron-dev.freebsd.org/FreeBSD/src/pulls/15

(cherry picked from commit 98a62ccab6ac30d13c2dbcdc7468af8f87df4ec9)
DeltaFile
+11-0share/man/man4/pcm.4
+11-01 files

FreeBSD/src 82dcd57sys/dev/sound/pcm feeder_eq.c

sound: Remove dead EQ FEEDEQ_DISABLE code

If EQ is disabled, we never reach those code paths in the first place.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Pull Request:   https://ron-dev.freebsd.org/FreeBSD/src/pulls/15

(cherry picked from commit 6f130b220d7ce64ce65f076a21edea034d14482b)
DeltaFile
+0-16sys/dev/sound/pcm/feeder_eq.c
+0-161 files

FreeBSD/src 3c49470sys/dev/sound/pcm mixer.c

sound: Retire M_MIXER

Even though harmless, it is not really useful, as there is essentially
only one allocation with M_MIXER.

Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Pull Request:   https://ron-dev.freebsd.org/FreeBSD/src/pulls/18

(cherry picked from commit e8ea97602ca97166a0729fdc32c84c9016fe7b0c)
DeltaFile
+4-6sys/dev/sound/pcm/mixer.c
+4-61 files