nfscl: Yet more fixes for the NFS over RDMA client glue
This should be it for a while, but there will be another cycle
of "glue" updates. I just found out that I'll need to create
an alternate code path that uses a contigmalloc() blob instead
of scatter/gather of pages, since some NICs cannot do the
scatter/gather of pages well.
This commit should not affect non-RDMA behaviour.
MFC after: 3 months
Fixes: 884ee8d6c9b4 ("nfscl: Add some glue for client side NFS over RDMA")
aq(4): arm PHY thermal shutdown from the admin poll
move thermal shutdown arming to the admin poll
this gives a more reasonable delay prior to the first attempt, and also
allows us to retry and make the option runtime-tuneable via a new
disable_thermal_arm sysctl
Approved by: adrian (mentor)
Reviewed by: adrian
Differential Revision: https://reviews.freebsd.org/D59593
Signed-off-by: Nick Price <nprice at FreeBSD.org>
fdescfs: descend through /dev/fd/N when mounted linrdlnk
Linux resolves a path below /proc/self/fd/N in the directory the
descriptor names, and linprocfs makes /proc/<pid>/fd a symlink to
/dev/fd. Under linrdlnk the fdescfs node carries only VV_READLINK,
which namei will not walk through, so such a path fails with ENOTDIR.
Return the underlying vnode from fdesc_lookup for a non-final component,
or a trailing slash, reusing the machinery the nodup option already
uses. The last component is untouched, so open("/dev/fd/N") keeps its
dup(2) semantic; a descriptor with no vnode behind it, such as a pipe,
yields ENOTDIR.
Add ATF coverage for traversal, descriptor reuse, and preservation of
last-component and mount-option semantics.
Approved by: adrian (mentor)
Reviewed by: kib, adrian
Differential Revision: https://reviews.freebsd.org/D59393
[2 lines not shown]
amd64, powerpc: Enable tpm(4) in supported kernels
tpm(4) was removed from amd64 GENERIC because it broke suspend and
resume. The preceding lifecycle, state-save, interrupt, locality, and
teardown fixes address those failures for both TPM 1.2 and TPM 2.0.
Restore the driver to amd64 GENERIC and MINIMAL, where TPM entropy
harvesting remained enabled. Enable the driver and entropy harvesting
in the MPC85XX and QORIQ64 configurations, which already provide FDT,
spibus, and the platform SPI controller required by FDT-attached TPMs.
Leave the generic AIM and POWER configurations unchanged because they
have no TPM attachment bus.
The TPM 1.2 path completed repeated S3 cycles and command tests on
ThinkPad T430 and T440p systems. The TPM 2.0 path completed repeated
device and full-system suspend/resume cycles on a ThinkPad P51. The
PowerPC configuration matrix was checked to retain tpm(4) only where its
FDT SPI attachment path is present.
[8 lines not shown]
puc: add the WCH CH382 2S dual serial card
Two 16850 UARTs in the first I/O BAR at offset 0xc0, 8 bytes apart.
Approved by: adrian (mentor)
Reviewed by: imp, adrian
Differential Revision: https://reviews.freebsd.org/D59512
Signed-off-by: Nick Price <nprice at FreeBSD.org>
puc: be more careful about using MSI
puc has preferred MSI for every card since MSI support was added, with
only a global tunable to opt out. uart(4) makes the same decision for
the serial devices it attaches directly, and has since grown two
defences: it skips MSI unless the device advertises exactly one vector,
because attaching a single instance to a device offering many has caused
problems (PR 235016), and it lets individual devices be flagged when
they claim MSI support that does not work.
Adopt both.
Approved by: adrian (mentor)
Reviewed by: adrian
Differential Revision: https://reviews.freebsd.org/D59623
Signed-off-by: Nick Price <nprice at FreeBSD.org>
superio, ncthwm: add support for the Nuvoton NCT6798D
The ASUS PRIME X570-P carries a Nuvoton NCT6798D, Super I/O device ID 0xd42b. Add an exact-match entry to both. Exact rather than masked: the neighboring 0xd42a entries are deliberately exact with an extid because that ID is claimed by both NCT6796D-E and NCT5585D, and widening the family would make them collide.
The NCT6798D has seven tachometers, so raise NCTHWM_FAN_MAX to seven and describe the two extra ones; existing entries keep fan_count = 5 and are unaffected. Fan names follow the NCT6779 convention and do not map to any board's physical headers.
Tested on: ASUS PRIME X570-P, Ryzen 9 5950X, FreeBSD 16.0-CURRENT.
Approved by: adrian
Reviewed by: stephane.rochoy_stormshield.eu, adrian
Differential Revision: https://reviews.freebsd.org/D58291
Signed-off-by: Nick Price <nprice at FreeBSD.org>
x11/nvidia-driver-devel, x11/nvidia-kmod-devel, x11/linux-nvidia-libs-devel, graphics/nvidia-drm*-kmod-devel: Update to 615.71.09
Update to latest New Feature Branch of drivers 615.71.09:
https://www.nvidia.com/en-us/drivers/details/278452/
Linux counterparts for x11/linux-nvidia-libs:
https://www.nvidia.com/en-us/drivers/details/278450/
Additional note:
Possibly vtys before invoking whichever of X11 or Wayland shifts
screen downward with about half character-based line, causing
command prompt at the bottom become hard to read.
Once X11 (tested only for xorg) or Wayland starts, it would be
fixed (on exitting X11 / Wayland or switching to vty from X11/
Wayland) until next restart of the computer.
This doesn't happen for everyone (among maintainance team of
NVIDIA GPU driver ports, only I myself am bitten).
[14 lines not shown]
bsdinstall: allow ZFS root on GPT under UEFI (amd64)
GPT+ZFS+UEFI boots fine, but the manual guided
wizard prevented it.
MFC after: 3 days
Reviewed by: imp, adrian
Differential Revision: https://reviews.freebsd.org/D59603
image: Use msg_n/done idiom for ESP image creation status
make_esp_file() reported "Creating ESP image" and "ESP Image created"
as two separate complete lines via msg(), even though makefs's own
output is redirected to /dev/null and the operation can take a
noticeable amount of time. Use the msg_n "...done" idiom used
elsewhere for silent, potentially slow operations (e.g. jail removal)
so it reads as a single in-progress status line instead of two
disconnected facts.
Add missing FLAVOR to stage-qa and check-plist calls
For example, `poudriere testport -NNi devel/freebsd-gcc15 at amd64`
will correctly build the amd64 flavor, but will attempt to
stage-qa and check-plist for the aarch64 flavor because it
becomes the default flavor through alphabetic sorting.
testport/bulk -i: Pass FLAVOR when looking up WRKDIR in interactive motd
The WRKDIR line queried `make -V WRKDIR` without FLAVOR, so a flavored
port always reported its default flavor's work directory instead of
the one actually built and installed -- e.g. audio/baresip built with
FLAVOR=nox11 showed work-default. run-depends and install-package
already pass ${flavor:+FLAVOR=${flavor}} a few lines above; do the
same here.
Reproduced on misc/py-polars-runtime (FLAVOR=64 showing work-compat)
and audio/baresip (FLAVOR=nox11 showing work-default); a port whose
single auto-generated flavor happens to match the default (e.g.
security/py-biscuit-python) masks the bug, which is likely why it
went unnoticed.
Co-Authored-By: Claude Sonnet 5 <noreply at anthropic.com>
lib/googletest: also use -O0 for internal tests with GCC
This fixes the build with gcc 16's aggressive inlining.
Reviewed by: ngie
MFC after: 3 days
Sponsored by: The FreeBSD Foundation
Differential Revision: https://reviews.freebsd.org/D59538