FreeBSD/src 62fb72bshare/man/man4 Makefile ixv.4

ixv(4): Add a manual page

Document supported virtual-function families, driver features, queue
negotiation, PF-controlled policy, and media limitations.

Sponsored by:   BBOX.io

(cherry picked from commit 1391e272de36f7aae2c800d96cc06762553d5027)
DeltaFile
+98-0share/man/man4/ixv.4
+2-0share/man/man4/Makefile
+100-02 files

FreeBSD/src ffb83a7sys/dev/ixgbe if_ix.c

ixgbe: Enable per-pool RSS on X550 family devices

X550 family devices provide a separate RSS key, redirection table,
and MRQC register for every VMDq pool.  With SR-IOV enabled, the
driver continued programming only the global RSS state and never
selected MRQC.MULTIPLE_RSS.  VF-local RSS programming was therefore
ineffective.

Enable multiple-RSS mode for X550, X552, X553, and E610.  Initialize
the PF pool's 64-entry key, redirection table, and RSS hash controls.
Leave each VF pool untouched so its driver retains ownership of its
RSS key and mapping.

E610 folds IPv6 extension-header traffic into its base RSS selectors
and reserves the legacy EX selector bits.  Translate those requested
hash types rather than programming reserved bits.

With two E610 VFs active and four PF queue sets, eight fixed TCP flows
distributed across all four PF receive queues.

    [8 lines not shown]
DeltaFile
+69-20sys/dev/ixgbe/if_ix.c
+69-201 files

FreeBSD/src 8d39b5csys/dev/ixgbe ixgbe_vf.h if_ixv.c

ixv: Preserve statistics across resets

The VF statistics registers are free running and are not cleared on
read.  The existing code records attach time bases and pre-reset totals,
but never uses either when publishing counters.  It instead replaces
the low hardware bits directly, so counters can inherit pre-attach
traffic or jump backward after a reset.

Accumulate modular 32- and 36-bit deltas, following DPDK, while keeping
the software totals across planned resets.  Establish a fresh hardware
baseline after each successful reset and invalidate the sampling epoch
when mailbox state is lost.  Detect unsolicited PF resets explicitly so
a reset while link is down cannot be mistaken for counter wrap.

Remove the unused base and saved-reset bookkeeping.

On E610, packet and octet counters remained monotonic across a VF FLR
and a PF down/up cycle.  Traffic after each reset advanced both RX and
TX counters.

    [4 lines not shown]
DeltaFile
+49-66sys/dev/ixgbe/if_ixv.c
+1-12sys/dev/ixgbe/ixgbe_vf.h
+50-782 files

FreeBSD/src 09a1acfshare/man/man4 ix.4, sys/dev/ixgbe ixgbe_sriov.h if_ix.c

ixgbe: Enable SR-IOV on E610 PFs

E610 inherits the X550-family virtualization registers, anti-spoofing
controls, and malicious-driver operations, but the frontend does not
advertise SR-IOV and cannot negotiate the mailbox revision needed by
E610 VFs.

Initialize the X550-family PF/VF mailbox registers for E610 and use
PFVFLREC for its VF reset events, following DPDK shared ixgbe code.
Advertise the E610 SR-IOV capability, accept API 1.6 only on E610, carry
the existing xcast and queue operations forward to that revision, and
return the cached physical link speed and state with the three-dword
E610 operation.  Unsupported RSS and optional feature requests continue
to receive explicit failures.

SR-IOV activation also enables the existing X550-derived per-pool MDD
recovery path on E610.  Document the expanded protection and link-state
coverage.


    [11 lines not shown]
DeltaFile
+58-3sys/dev/ixgbe/if_sriov.c
+4-1share/man/man4/ix.4
+3-0sys/dev/ixgbe/ixgbe_mbx.c
+1-0sys/dev/ixgbe/ixgbe_sriov.h
+1-0sys/dev/ixgbe/if_ix.c
+67-45 files

FreeBSD/src b36753dsys/dev/ixgbe ixgbe_vf.h ixgbe_mbx.h

ixv: Support E610 mailbox API 1.6

E610 VFs no longer report the actual PF link state and speed through
VFLINKS.  They can consequently report the default 10 Gb/s speed even
when the physical link uses another rate.

Negotiate mailbox API 1.6 on E610 and request the PF link state with its
three-dword operation.  Retain VFLINKS as the fallback when an older PF
rejects API 1.6.  Permit API 1.6 in the inherited xcast and queue
discovery helpers so negotiating the newer revision does not disable
existing operations.

Use GET_QUEUES to replace E610's one-queue fallback with the grant from
the PF.  The common path continues to use one iflib queue set per data
MSI-X vector and caps the result at two queue pairs.

Preserve mailbox transport errors so the driver can distinguish an
explicit PF NACK from a transient timeout.  A NACK means clear-to-send
state was lost and requires a VF reset.  Preserve the last confirmed

    [22 lines not shown]
DeltaFile
+59-5sys/dev/ixgbe/if_ixv.c
+60-0sys/dev/ixgbe/ixgbe_vf.c
+3-0sys/dev/ixgbe/ixgbe_mbx.h
+3-0sys/dev/ixgbe/ixgbe.h
+2-0sys/dev/ixgbe/ixgbe_vf.h
+127-55 files

FreeBSD/src 12b31dashare/man/man9 pci.9, sys/dev/pci pcivar.h pci.c

pci: Export pcie_flr_supported()

Move the capability and quirk checks used by pcie_flr() into a public
side effect free helper.  This lets callers determine whether an FLR
can be attempted before quiescing a device or saving state.

The helper considers the advertised PCIe FLR capability and both the
enable and disable FLR quirks.

Sponsored by:   BBOX.io

(cherry picked from commit 5b48968c1a57bd1a7f086d7e09add59afa158340)
DeltaFile
+24-7sys/dev/pci/pci.c
+14-1share/man/man9/pci.9
+1-0sys/dev/pci/pcivar.h
+39-83 files

FreeBSD/src 35b0fc1share/man/man4 Makefile ixv.4

ixv(4): Add a manual page

Document supported virtual-function families, driver features, queue
negotiation, PF-controlled policy, and media limitations.

Sponsored by:   BBOX.io

(cherry picked from commit 1391e272de36f7aae2c800d96cc06762553d5027)
DeltaFile
+98-0share/man/man4/ixv.4
+2-0share/man/man4/Makefile
+100-02 files

FreeBSD/src 4f44e80sys/dev/ixgbe if_ix.c

ixgbe: Enable per-pool RSS on X550 family devices

X550 family devices provide a separate RSS key, redirection table,
and MRQC register for every VMDq pool.  With SR-IOV enabled, the
driver continued programming only the global RSS state and never
selected MRQC.MULTIPLE_RSS.  VF-local RSS programming was therefore
ineffective.

Enable multiple-RSS mode for X550, X552, X553, and E610.  Initialize
the PF pool's 64-entry key, redirection table, and RSS hash controls.
Leave each VF pool untouched so its driver retains ownership of its
RSS key and mapping.

E610 folds IPv6 extension-header traffic into its base RSS selectors
and reserves the legacy EX selector bits.  Translate those requested
hash types rather than programming reserved bits.

With two E610 VFs active and four PF queue sets, eight fixed TCP flows
distributed across all four PF receive queues.

    [8 lines not shown]
DeltaFile
+69-20sys/dev/ixgbe/if_ix.c
+69-201 files

FreeBSD/src 1b9749asys/dev/ixgbe ixgbe_vf.h if_ixv.c

ixv: Preserve statistics across resets

The VF statistics registers are free running and are not cleared on
read.  The existing code records attach time bases and pre-reset totals,
but never uses either when publishing counters.  It instead replaces
the low hardware bits directly, so counters can inherit pre-attach
traffic or jump backward after a reset.

Accumulate modular 32- and 36-bit deltas, following DPDK, while keeping
the software totals across planned resets.  Establish a fresh hardware
baseline after each successful reset and invalidate the sampling epoch
when mailbox state is lost.  Detect unsolicited PF resets explicitly so
a reset while link is down cannot be mistaken for counter wrap.

Remove the unused base and saved-reset bookkeeping.

On E610, packet and octet counters remained monotonic across a VF FLR
and a PF down/up cycle.  Traffic after each reset advanced both RX and
TX counters.

    [4 lines not shown]
DeltaFile
+49-66sys/dev/ixgbe/if_ixv.c
+1-12sys/dev/ixgbe/ixgbe_vf.h
+50-782 files

FreeBSD/src 34208cbshare/man/man4 ix.4, sys/dev/ixgbe ixgbe_sriov.h if_ix.c

ixgbe: Enable SR-IOV on E610 PFs

E610 inherits the X550-family virtualization registers, anti-spoofing
controls, and malicious-driver operations, but the frontend does not
advertise SR-IOV and cannot negotiate the mailbox revision needed by
E610 VFs.

Initialize the X550-family PF/VF mailbox registers for E610 and use
PFVFLREC for its VF reset events, following DPDK shared ixgbe code.
Advertise the E610 SR-IOV capability, accept API 1.6 only on E610, carry
the existing xcast and queue operations forward to that revision, and
return the cached physical link speed and state with the three-dword
E610 operation.  Unsupported RSS and optional feature requests continue
to receive explicit failures.

SR-IOV activation also enables the existing X550-derived per-pool MDD
recovery path on E610.  Document the expanded protection and link-state
coverage.


    [11 lines not shown]
DeltaFile
+58-3sys/dev/ixgbe/if_sriov.c
+4-1share/man/man4/ix.4
+3-0sys/dev/ixgbe/ixgbe_mbx.c
+1-0sys/dev/ixgbe/ixgbe_sriov.h
+1-0sys/dev/ixgbe/if_ix.c
+67-45 files

FreeBSD/src 8386691sys/dev/ixgbe ixgbe_vf.h ixgbe_mbx.h

ixv: Support E610 mailbox API 1.6

E610 VFs no longer report the actual PF link state and speed through
VFLINKS.  They can consequently report the default 10 Gb/s speed even
when the physical link uses another rate.

Negotiate mailbox API 1.6 on E610 and request the PF link state with its
three-dword operation.  Retain VFLINKS as the fallback when an older PF
rejects API 1.6.  Permit API 1.6 in the inherited xcast and queue
discovery helpers so negotiating the newer revision does not disable
existing operations.

Use GET_QUEUES to replace E610's one-queue fallback with the grant from
the PF.  The common path continues to use one iflib queue set per data
MSI-X vector and caps the result at two queue pairs.

Preserve mailbox transport errors so the driver can distinguish an
explicit PF NACK from a transient timeout.  A NACK means clear-to-send
state was lost and requires a VF reset.  Preserve the last confirmed

    [22 lines not shown]
DeltaFile
+59-5sys/dev/ixgbe/if_ixv.c
+60-0sys/dev/ixgbe/ixgbe_vf.c
+3-0sys/dev/ixgbe/ixgbe_mbx.h
+3-0sys/dev/ixgbe/ixgbe.h
+2-0sys/dev/ixgbe/ixgbe_vf.h
+127-55 files

FreeBSD/src c4fe384share/man/man9 pci.9, sys/dev/pci pcivar.h pci.c

pci: Export pcie_flr_supported()

Move the capability and quirk checks used by pcie_flr() into a public
side effect free helper.  This lets callers determine whether an FLR
can be attempted before quiescing a device or saving state.

The helper considers the advertised PCIe FLR capability and both the
enable and disable FLR quirks.

Sponsored by:   BBOX.io

(cherry picked from commit 5b48968c1a57bd1a7f086d7e09add59afa158340)
DeltaFile
+24-7sys/dev/pci/pci.c
+14-1share/man/man9/pci.9
+1-0sys/dev/pci/pcivar.h
+39-83 files

FreeBSD/src 4674cc8sys/dev/e1000 if_em.h e1000_82575.h

e1000: Recover from igb(4) controller DEV_RST

CTRL.DEV_RST resets every port on an 82580 and newer igb device.
Hardware reports the event to each affected function through ICR.DRSTA
and requires software to reinitialize the port registers and descriptor
rings.  The driver neither enabled nor handled this cause, so a reset
initiated by another function could leave a running interface using
stale state.

In FreeBSD, we do not currently send this, but other OSes including
Linux do, so a PF passed through to such a guest or FreeBSD as a guest
running with a passthrough PF on the same controller can be wedged.

Enable DRSTA for 82580 and newer PFs in both MSI-X and shared MSI/legacy
modes.  Bit 30 is reserved on 82575 and is the TCP timer on 82576, so
leave it masked on those parts.  Latch the event without programming
port registers from the interrupt filter.  Defer the iflib reset request
to admin-task context because the request takes STATE_LOCK.  Use IAM to
auto-mask shared interrupts on the first ICR read.  Keep admin,

    [40 lines not shown]
DeltaFile
+281-18sys/dev/e1000/if_em.c
+1-0sys/dev/e1000/if_em.h
+1-0sys/dev/e1000/e1000_82575.h
+283-183 files

FreeBSD/src 3c6ea45usr.sbin/makefs/tests makefs_msdos_tests.sh

makefs: Fix atime tests on MS-DOS (FAT) file systems

On FAT file systems, access time has a resolution of 1 day, so it is
really the access date.

Strip the time component from the epoch timestamp in order to check the
access time.

Reference: https://learn.microsoft.com/en-us/windows/win32/sysinfo/file-times

Reviewed by:    ngie
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D54584

(cherry picked from commit 2916ae647303e3bd92e533002a8e6c476417fe7f)
DeltaFile
+10-6usr.sbin/makefs/tests/makefs_msdos_tests.sh
+10-61 files

FreeBSD/src 019d13dusr.sbin/makefs zfs.c makefs.8, usr.sbin/makefs/tests makefs_zfs_tests.sh

makefs: zfs: Allow the path vdev property to be set

This allows specifying custom vdev paths (such as GPT labels like
/dev/gpt/...) when creating ZFS filesystem images via makefs(8), rather
than defaulting to /dev/null.

Reviewed by:    markj
MFC after:      1 week
Differential Revision:  https://reviews.freebsd.org/D59031

(cherry picked from commit 5fece2484324be52737e4cea86658a4b8d3107fc)
DeltaFile
+45-0usr.sbin/makefs/tests/makefs_zfs_tests.sh
+21-17usr.sbin/makefs/makefs.8
+9-1usr.sbin/makefs/zfs.c
+1-0usr.sbin/makefs/zfs/zfs.h
+76-184 files

FreeBSD/src 70ca3c6share/man/man4 vge.4

vge.4: Canonicalize SYNOPSIS + Nit Nd quotes

MFC after:      3 days
DeltaFile
+14-13share/man/man4/vge.4
+14-131 files

FreeBSD/src 70f0d78share/man/man4 viawd.4

viawd.4: Canonicalize SYNOPSIS + tag SPDX

MFC after:      3 days
DeltaFile
+6-12share/man/man4/viawd.4
+6-121 files

FreeBSD/src 400cc89share/man/man4 virtio_random.4

virtio_random.4: Canonicalize SYNOPSIS + AUTHORS

Also tag SPDX

MFC after:      3 days
DeltaFile
+8-16share/man/man4/virtio_random.4
+8-161 files

FreeBSD/src 87909fdshare/man/man4 virtio_gpu.4

virtio_gpu.4: Canonicalize SYNOPSIS

MFC after:      3 days
DeltaFile
+1-6share/man/man4/virtio_gpu.4
+1-61 files

FreeBSD/src d9cb19cshare/man/man4 virtio_console.4

virtio_console.4: Canonicalize SYNOPSIS + AUTHORS

Also tag SPDX.

MFC after:      3 days
DeltaFile
+9-17share/man/man4/virtio_console.4
+9-171 files

FreeBSD/src 937e641share/man/man4 virtio_balloon.4

virtio_balloon.4: Canonicalise SYNOPSIS + AUTHORS

Also tag SPDX.

MFC after:      3 days
DeltaFile
+9-14share/man/man4/virtio_balloon.4
+9-141 files

FreeBSD/src 9d65dc4share/man/man4 virtio.4

virtio.4: Canonicalize SYNOPSIS + tag SPDX

MFC after:      3 days
DeltaFile
+10-12share/man/man4/virtio.4
+10-121 files

FreeBSD/src 46c1651share/man/man4 rl.4

rl.4: Canonicalize SYNOPSIS + HARDWARE + nits

While here, remove superflouous Nd quotes and canonicalize %unit to %d.

MFC after:      3 days
DeltaFile
+13-18share/man/man4/rl.4
+13-181 files

FreeBSD/src 098adfcshare/man/man4 virtio_blk.4

virtio_blk.4: Canonicalize SYNOPSIS and HARDWARE

Also tag SPDX, and switch X to %d for consistency/clarity.

MFC after:      3 days
DeltaFile
+20-15share/man/man4/virtio_blk.4
+20-151 files

FreeBSD/src 746b910share/man/man4 virtio_scsi.4

virtio_scsi.4: Canonicalize

+ Tag SPDX
+ Canonicalize SYNOPSIS and HARDWARE
+ Canonicalize SYSCTL VARIABLES, adding the sysctl to apropos
+ Canonicalize AUTHORS and HISTORY, which were combined
+ Use more traditional and consistent %d instead of less clear X

MFC after:      3 days
DeltaFile
+31-29share/man/man4/virtio_scsi.4
+31-291 files

FreeBSD/src 7eaf7b2share/man/man4 vlan.4

vlan.4: Canonicalize SYNOPSIS + tag SPDX

MFC after:      3 days
DeltaFile
+6-12share/man/man4/vlan.4
+6-121 files

FreeBSD/src 02f59bashare/man/man4 vmci.4

vmci.4: Canonicalize SYNOPSIS

MFC after:      3 days
DeltaFile
+3-11share/man/man4/vmci.4
+3-111 files

FreeBSD/src 84b4054share/man/man4 vmd.4

vmd.4: Canonicalize SYNOPSIS + fix linter errors

MFC after:      3 days
DeltaFile
+10-12share/man/man4/vmd.4
+10-121 files

FreeBSD/src 581c5d4share/man/man4 vtnet.4

vtnet.4: Add a HARDWARE section

For inclusion in the hardware release notes.

MFC after:      3 days
DeltaFile
+4-0share/man/man4/vtnet.4
+4-01 files

FreeBSD/src 2bea9dbshare/man/man4 vmm.4

vmm.4: Canonicalize SYNOPSIS + minor nits

+ Tag SPDX
+ Remove superflouous Nd quotes
+ Add "The" and "module" to introductory sentence
+ Remove a malformed "compact" specifier from a list
+ Add a missing list ending block

MFC after:      3 days
DeltaFile
+11-13share/man/man4/vmm.4
+11-131 files