FreeBSD/src 2947a48sys/amd64/amd64 exception.S

amd64: try to fix the build with old clang that does not know about FRED

(cherry picked from commit 72952bf6a307391e127d3ab4a6f073664ce62d89)
DeltaFile
+17-0sys/amd64/amd64/exception.S
+17-01 files

FreeBSD/src 408031fsys/amd64/include md_var.h

amd64: Remove a prototype for an unimplemented function

(cherry picked from commit f42c68291d6803abc404fa8d6915a9f5de3a3448)
DeltaFile
+0-1sys/amd64/include/md_var.h
+0-11 files

FreeBSD/src 5e1fdbdsys/amd64/amd64 initcpu.c cpu_switch.S

amd64: FRED support

(cherry picked from commit 6e93f5e4d6932c423b89dff8fc08d86f8bdeb7b9)
DeltaFile
+554-0sys/amd64/amd64/trap.c
+282-0sys/amd64/amd64/exception.S
+73-31sys/amd64/amd64/machdep.c
+55-21sys/amd64/amd64/mp_machdep.c
+68-5sys/amd64/amd64/cpu_switch.S
+43-0sys/amd64/amd64/initcpu.c
+1,075-5716 files not shown
+1,160-8522 files

FreeBSD/src 9076627sys/x86/x86 local_apic.c

amd64: Fix an off-by-one in the fred_ipi_handlers definition

(cherry picked from commit 55c240eada966b4595cbf93bf0641073713c5b99)
DeltaFile
+1-1sys/x86/x86/local_apic.c
+1-11 files

FreeBSD/src ef225a9sys/kern kern_exit.c

proc_realparent(): do not mark the child as orphan when reparenting to p_opptr pid

(cherry picked from commit 833bdae6c58bcede4d9d5e64612b34295558de0b)
DeltaFile
+1-2sys/kern/kern_exit.c
+1-21 files

FreeBSD/src 1203141sys/kern sys_procdesc.c

procdesc_exit(): assert that _exit() was called

(cherry picked from commit aa1694e23401762c661da11bbf9016a368d37fbe)
DeltaFile
+1-0sys/kern/sys_procdesc.c
+1-01 files

FreeBSD/src af495adsys/kern kern_exit.c

proc_realparent(): assert that an orphaned child has real parent != parent

(cherry picked from commit 8cef3c9b768a4a6d63a7754f6a46315532687305)
DeltaFile
+3-0sys/kern/kern_exit.c
+3-01 files

FreeBSD/src 1d97ad6sys/kern kern_lock.c, sys/sys lockmgr.h vnode.h

lockmgr(9): add lockcanrecurse(9)

Also add vnode locking wrappers for lockcanrecurse(9) and
lockdisablerecurse(9).

Reviewed by:    jah
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D58567
DeltaFile
+7-0sys/kern/kern_lock.c
+2-0sys/sys/vnode.h
+1-0sys/sys/lockmgr.h
+10-03 files

FreeBSD/src 9f5c4efsys/kern vfs_mount.c

dounmount(9): temporarily enable recursion for the covered vnode lock

For some complex nullfs mount configurations, it is possible to get the
covered vnode lock for the mount shared with some inside-mount vnode
lock.  Then at unmount time, vflush() would recurse on the covered vnode
lock when reclaiming the vnode.

Work around it, by temprorarily allowing recursion on the covered vnode
lock.  Disable recursion after the unmount if it was not enabled before.

PR:     297174
Reviewed by:    jah
Sponsored by:   The FreeBSD Foundation
MFC after:      1 week
Differential revision:  https://reviews.freebsd.org/D58567
DeltaFile
+26-3sys/kern/vfs_mount.c
+26-31 files

FreeBSD/src 703c756sys/dev/ixgbe ixgbe_sriov.h if_ix.c

ixgbe: Validate SR-IOV before restarting the PF

A deterministic IOV configuration error currently reaches the driver
only after iflib has stopped the PF. The required cleanup restart then
causes an avoidable carrier flap.

Follow the igb pattern and validate the request in the PCI IOV method
before entering the restart transaction. Reject queue layouts wider
than the selected virtualization pool before they can alias unrelated
82599 registers.

MFC after:      2 weeks
DeltaFile
+50-17sys/dev/ixgbe/if_sriov.c
+22-1sys/dev/ixgbe/if_ix.c
+1-0sys/dev/ixgbe/ixgbe_sriov.h
+73-183 files

FreeBSD/src 86199f1sys/dev/ixgbe ixgbe_sriov.h if_ix.c

ixgbe: restart iflib around SR-IOV reconfiguration

The IOV callback changes the PF pool, virtualization mode, and hardware
queue indices while iflib still considers the old queue layout live.
Teardown likewise leaves the software pool and mode at their SR-IOV
values.

Use iflib stop/mutate/restart transactions for both transitions.
Disable VF DMA and PCI VF Enable before queue reuse, let outstanding
transactions drain, and restore the non-IOV pool and queue indices on
teardown.

Remove the redundant driver-local pci_iov_detach() wrapper; iflib
already performs that check centrally before the driver detach
callback.

It may be possible to avoid some restart in the future on this hardware
pausing DMA and remapping rings but not pursued yet.

MFC after:      2 weeks
DeltaFile
+25-11sys/dev/ixgbe/if_sriov.c
+2-8sys/dev/ixgbe/if_ix.c
+0-2sys/dev/ixgbe/ixgbe_sriov.h
+27-213 files

FreeBSD/src 2cf580cshare/man/man4 em.4, sys/dev/e1000 if_igb_iov.c

iflib: Permit SR-IOV configuration on a down interface

Drivers which remap PF queues need a stop/mutate/restart transaction
only when the interface has live queues. Permit their IOV
initialization callback while the interface is administratively down
and leave it down afterward.

This restores the standard boot-time iovctl.conf workflow for igb and
lets other opt-in drivers configure VFs before netif brings the PF up.

MFC after:      1 week
DeltaFile
+11-11sys/net/iflib.c
+5-3share/man/man4/em.4
+4-0sys/dev/e1000/if_igb_iov.c
+20-143 files

FreeBSD/src ee776a8sys/dev/pci pci.c

pci: Permit function-level reset of 82599 VFs

Intel 82599 supports FLR on VFs but reports FLR support only in the PF
Device Capabilities register.  The VF register therefore leaves the FLR
Capable bit clear, and pcie_flr() rejects the reset.

Intel documents the zeroed VF PCIe capability structure as erratum 35
in the 82599 Specification Update (B0=Yes; NoFix).

Add a positive FLR quirk for the 82599 VF.  Keep the capability check
for every other function, so an unknown nonconforming VF cannot make
pcie_flr() report success when its reset request was ignored.

SR-IOV requires VFs to support FLR, but a clear capability bit cannot
distinguish the 82599's misadvertisement from a VF that fails to
implement it.

MFC after:      1 week
DeltaFile
+11-3sys/dev/pci/pci.c
+11-31 files

FreeBSD/src 114f4a6share/man/man4 pci.4, sys/dev/pci pci.c

pci: Optionally disable endpoints with unsafe MPS

Keep warn-only behavior as the default. Add an opt-in policy that
clears endpoint decoding and bus mastering when a newly discovered
function cannot match its active path, while never disabling bridge
functions and their subtrees.

MFC after:      2 weeks
DeltaFile
+41-2sys/dev/pci/pci.c
+13-0share/man/man4/pci.4
+54-22 files

FreeBSD/src 673cb52share/man/man4 pci.4, sys/dev/pci pci.c

pci: Add a hierarchy-wide MPS limit

Add a boot-time ceiling for MPS reconciliation. Apply it only while an
entire cold-enumerated link can be configured consistently, and leave
an established active path unchanged.

MFC after:      2 weeks
DeltaFile
+44-7sys/dev/pci/pci.c
+15-0share/man/man4/pci.4
+59-72 files

FreeBSD/src 8e9fe99share/man/man4 pci.4, sys/dev/pci pci_private.h pcivar.h

pci: Reconcile MPS before attaching PCIe devices

Reconcile each newly enumerated link as a unit before child drivers
attach. Firmware may leave Bus Master Enable set after handoff, so use
the bus attachment state rather than that bit to identify the cold
phase.

Preserve an established hierarchy during rescan and hot-add. Refuse a
reduction below a switch because recursive enumeration may already have
made a sibling subtree live; lowering only the local port or Root Port
would produce an inconsistent path. Report capability and active-use
conflicts distinctly.

Handle OFW PCI buses that clone the generic enumeration path.

MFC after:      2 weeks
DeltaFile
+271-24sys/dev/pci/pci.c
+3-1sys/dev/pci/pcivar.h
+3-0share/man/man4/pci.4
+2-0sys/dev/pci/pci_private.h
+1-0sys/powerpc/ofw/ofw_pcibus.c
+280-255 files

FreeBSD/src a9752e9share/man/man9 pci.9, sys/dev/pci pci.c

pci: Preserve adjusted PCIe control state

The PCI bus changes live capability registers after the initial
configuration snapshot has been saved. A later driver reprobe restores
that snapshot and can silently undo the adjustment.

Update the cached Device Control and Root Control bits together with
pcie_adjust_config() writes. Route the persistent Maximum Read Request
setter and the bus-owned AER control changes through that helper as
well, so they share the same restore semantics as MPS reconciliation.

Document the persistent-write contract. Merge only explicitly adjusted
bits into the saved image so unrelated or transient bits observed during
the hardware read-modify-write cannot become persistent.

MFC after:      2 weeks
DeltaFile
+25-16sys/dev/pci/pci.c
+10-1share/man/man9/pci.9
+35-172 files

FreeBSD/src 5aab616share/man/man4 pci.4, sys/dev/pci pci.c

pci: Ignore SR-IOV VFs when tuning MPS

The VF Device Control MPS and MRRS fields are reserved and preserved.
VF transactions use the PF MPS, so a hardwired VF value must not be
used to retune the shared PCIe hierarchy.

Document the previously undocumented tuning knob and clarify why a VF
may continue to display its reserved hardwired value.

This fixes an instant crash/reboot on my Zen3 system with 82599 VFs.

MFC after:      1 week
DeltaFile
+12-1share/man/man4/pci.4
+7-0sys/dev/pci/pci.c
+19-12 files

FreeBSD/src 9d871fasys/dev/ixgbe ixgbe.h if_ixv.c

ixv: reconcile VLAN filters through the mailbox

VLAN registration callbacks only update the software shadow, leaving
the PF unaware until a later full initialization.  Initialization then
retries each failed request in a tight loop, while skipping replay
entirely when local hardware filtering is disabled.

Send additions and removals as soon as the desired state changes,
independent of the VF local-filter capability.  Replay the desired
memberships after reset and retry a bounded batch per timer tick.  Stop
after the first failure so a silent PF can consume only one mailbox
timeout per pass, while a responsive PF can drain several requests.
Treat the retry window as a no-progress deadline: advance it when
pending work succeeds so a large backlog can drain, but leave entries
dormant after a sustained failure.

A successful mailbox request wakes a dormant backlog.  Dispatch
timer-driven retries only while iflib marks the VF running, so a stale
timer tick cannot restore PF VLAN state after the stop path resets the

    [14 lines not shown]
DeltaFile
+210-54sys/dev/ixgbe/if_ixv.c
+4-0sys/dev/ixgbe/ixgbe.h
+214-542 files

FreeBSD/src a668903sys/powerpc/include vmparam.h

powerpc64: Bump KVA to 2TB

This reflects what amd64 has, and is needed for using GPUs with large
VRAM.
DeltaFile
+1-1sys/powerpc/include/vmparam.h
+1-11 files

FreeBSD/src 7bc0655tools/tools/crypto cryptocheck.c

tools/cryptocheck: Fix allow_soft sysctl name
DeltaFile
+2-2tools/tools/crypto/cryptocheck.c
+2-21 files

FreeBSD/src b83204esys/powerpc/booke pmap.c pmap_64.c

powerpc/pmap: Support booke64 kernel pmap growing

In preparation of increasing the KVA on powerpc64 to 2TB to mirror
amd64's, rework the 64-bit Book-E pmap to not allocate all page table
pages at boot time, since that would be a waste of a lot of memory.
Instead, allocate all page table pages for the higher levels, leaving
the leaves (page directories) for dynamic allocation.  This cuts the
boot-time page table size down from ~64MB to ~8MB with the current 32GB
KVA size, and bumping to 2TB KVA the boot-time page table is still ~8MB
instead of ballooning to ~4GB of mostly wasted space.
DeltaFile
+86-9sys/powerpc/booke/pmap_64.c
+15-3sys/powerpc/booke/pmap.c
+101-122 files

FreeBSD/src 4f42ec2usr.sbin/prometheus_sysctl_exporter prometheus_sysctl_exporter.8 prometheus_sysctl_exporter.c

prometheus_sysctl_exporter: don't abort on bad labels

We can probaby consider these kernel bugs, in which case asserting is
not the most helpful thing we can do.  Let's emit the necessary details
to stderr and exit non-zero to aid debugging these without completely
blocking the ability to export all of the well-formed metrics.

Reviewed by:    rew
Differential Revision:  https://reviews.freebsd.org/D57983
DeltaFile
+40-14usr.sbin/prometheus_sysctl_exporter/prometheus_sysctl_exporter.c
+6-1usr.sbin/prometheus_sysctl_exporter/prometheus_sysctl_exporter.8
+46-152 files

FreeBSD/src 6404ef1share/man/man4 ix.4, sys/dev/ixgbe ixgbe_sriov.h ixgbe.h

ixgbe: implement VF secondary MAC filters

The PF advertises the legacy SET_MACVLAN mailbox request but always
rejects it. The request installs secondary unicast addresses.

Allocate an owned RAR pool for VF secondary addresses, reserve low
entries for PF filters, and place VF-primary addresses at the top of
the usable RAR range. Reject address collisions and cap each VF at
three secondary filters so one guest cannot exhaust the shared table.

Clear secondary filters on VF or PF reset and on SR-IOV teardown. This
hardware can anti-spoof only the VF primary source address. Reject
secondary filters while MAC anti-spoofing is configured, so installing
them requires an explicit administrative policy choice. Report optional
filter-table allocation failure without disabling SR-IOV.

Adapt the owned-RAR allocation and reset-cleanup model from igb(4) in
a2ed165f0049 to DPDK's ixgbe SET_MACVLAN mailbox semantics.


    [2 lines not shown]
DeltaFile
+149-5sys/dev/ixgbe/if_sriov.c
+10-0sys/dev/ixgbe/ixgbe.h
+10-0share/man/man4/ix.4
+2-0sys/dev/ixgbe/ixgbe_sriov.h
+171-54 files

FreeBSD/src 660ea2csys/dev/ixgbe ixgbe_vf.c ixgbe.h

ixgbe: enforce VF promiscuity and multicast policy

The allow-promisc IOV property is advertised but ignored, and the PF
rejects the xcast request used by modern VFs. Negotiate mailbox APIs
1.2 and 1.3, implement pool-scoped xcast modes, and require
allow-promisc for requested all-multicast or unicast-promiscuous modes.

The VF mailbox can carry only 30 multicast hashes. When ixv has a
larger list, request the API 1.2 all-multicast xcast mode instead of
extending the legacy SET_MULTICAST message. The PF grants that fallback
only to VFs configured with allow-promisc; otherwise ixv reports that
only the first 30 addresses are active.

Reset xcast state with the VF and have ixv replay the mode implied by
its interface flags after multicast updates.

Follow DPDK's ixgbe API 1.2/1.3 xcast contract, with allow-promisc
policy adapted from igb(4) in a2ed165f0049.


    [2 lines not shown]
DeltaFile
+90-26sys/dev/ixgbe/if_sriov.c
+48-1sys/dev/ixgbe/if_ixv.c
+3-0sys/dev/ixgbe/ixgbe_sriov.h
+1-1sys/dev/ixgbe/ixgbe_vf.c
+2-0sys/dev/ixgbe/ixgbe.h
+144-285 files

FreeBSD/src caa08edsys/dev/ixgbe ix_txrx.c if_sriov.c

ixgbe: Preserve priority-tagged traffic with SR-IOV

VID 0 carries only 802.1p priority and does not identify VLAN
membership. Keep VFTA bit zero in the persistent PF shadow table so
reset and SR-IOV replay admit priority-tagged frames while VLAN
filtering is enabled.

In virtualization mode, also reserve VLVF slot zero and restore PF and
eligible VF pool memberships. A VFTA hit alone admits the tag globally
but does not deliver it to the correct pools.

This matches the priority-tag treatment in em/igb.

MFC after:      1 week
DeltaFile
+10-1sys/dev/ixgbe/if_ix.c
+4-2sys/dev/ixgbe/if_sriov.c
+3-2sys/dev/ixgbe/ix_txrx.c
+17-53 files

FreeBSD/src a81f97ashare/man/man4 ix.4, sys/dev/ixgbe ixgbe.h ix_txrx.c

ixgbe: preserve VLAN ownership with SR-IOV

The VF VLAN capability is checked but never granted, and no SR-IOV
configuration property exposes the existing default-VLAN support. PF
VLAN updates also replace VFTA registers from a PF-only shadow, erasing
live VF filters.

Expose access VLAN and trunk policy through the IOV schema. Track each
VF VLAN as desired state, restore the administrative VLAN after reset,
and use the native VLVF helper for incremental PF and VF ownership
changes.

Keep VLAN filtering enabled while SR-IOV is active. When PF hardware
filtering is disabled, admit every VLAN to the PF without bypassing
per-pool VF isolation. Reconstruct VLVF and the shared VFTA from PF and
VF desired state after reset or a filtering-mode transition, and
restore PF-only state on teardown.

When the last VF leaves a VLAN still owned by the PF, free its VLVF

    [14 lines not shown]
DeltaFile
+201-21sys/dev/ixgbe/if_sriov.c
+149-69sys/dev/ixgbe/if_ix.c
+23-1share/man/man4/ix.4
+15-3sys/dev/ixgbe/ix_txrx.c
+5-1sys/dev/ixgbe/ixgbe.h
+393-955 files

FreeBSD/src 7d3d630sys/dev/ixgbe ixgbe_sriov.h if_sriov.c

ixgbe: enforce configured VF anti-spoofing

The SR-IOV schema advertises MAC anti-spoofing and enables it by
default, but the VF configuration was never consumed and the hardware
policy remained disabled.

Record the configured policy and apply MAC and VLAN anti-spoofing
throughout VF initialization and reset. On X550-family devices, also
protect the LLDP and flow-control Ethertypes and enable per-VF
spoof-event accounting. Remove the driver-owned state during SR-IOV
teardown.

Adapt the anti-spoof configuration lifecycle used by igb(4) in
a2ed165f0049 to the ixgbe hardware controls.

MFC after:      1 week
Relnotes:       yes
DeltaFile
+50-0sys/dev/ixgbe/if_sriov.c
+1-0sys/dev/ixgbe/ixgbe_sriov.h
+51-02 files

FreeBSD/src 187da13release/pkg_repos release-dvd.conf, sys/conf newvers.sh

14.5: create releng/14.5 branch

Update from PRERELEASE to BETA1
Switch pkg(8) configuration to use the quarterly repositories
Bump __FreeBSD_version to 1405000

Approved by:    re (implicit)
Sponsored by:   OpenSats Initiative
DeltaFile
+2-2release/pkg_repos/release-dvd.conf
+1-1sys/sys/param.h
+1-1sys/conf/newvers.sh
+4-43 files

FreeBSD/src 4abf6e7sys/conf newvers.sh, sys/sys param.h

Post-14.5-branch updates

Rename stable/14 to -STABLE

Bump __FreeBSD_version to 1405500

Approved by:    re (implicit)
Sponsored by:   OpenSats Initiative
DeltaFile
+1-1sys/sys/param.h
+1-1sys/conf/newvers.sh
+2-22 files