1. 25 Jan, 2022 3 commits
    • Eric Joyner's avatar
      ice_ddp: Update to 1.3.27.0 · e438f0a9
      Eric Joyner authored
      
      
      This is intended to be used with forthcoming ice(4) driver version 1.34.2.
      Signed-off-by: default avatarEric Joyner <erj@FreeBSD.org>
      
      Sponsored by:	Intel Corporation
      e438f0a9
    • Eric Joyner's avatar
      iflib: Allow drivers to determine which queue to TX on · 213e9139
      Eric Joyner authored
      
      
      Adds a new function pointer to struct if_txrx in order to allow
      drivers to set their own function that will determine which queue
      a packet should be sent on.
      
      Since this includes a kernel ABI change, bump the __FreeBSD_version
      as well.
      
      (This motivation behind this is to allow the driver to examine the
      UP in the VLAN tag and determine which queue to TX on based on
      that, in support of HW TX traffic shaping.)
      Signed-off-by: default avatarEric Joyner <erj@FreeBSD.org>
      
      Reviewed by:	kbowling@, stallamr@netapp.com
      Tested by:	jeffrey.e.pieper@intel.com
      Sponsored by:	Intel Corporation
      Differential Revision:	https://reviews.freebsd.org/D31485
      213e9139
    • John Baldwin's avatar
      atsectl: Remove. · 4f0e50b2
      John Baldwin authored
      This was used in the BERI Altera DE4 that ran CHERI MIPS.
      
      Approved by:	brooks
      4f0e50b2
  2. 24 Jan, 2022 25 commits
  3. 23 Jan, 2022 10 commits
    • Rick Macklem's avatar
      mountd: Delay starting mountd until after mountlate · f72926ea
      Rick Macklem authored
      PR#254282 reports a problem where nullfs mounts cannot be
      exported via mountd for FreeBSD 13.0.
      
      The problem seems to be that, to do the nullfs mounts in
      /etc/fstab, they require the "late" mount option, so that the
      underlying filesystem is mounted (ZFS for the PR).
      
      Adding "mountlate" to the REQUIRE list in /etc/rc.d/mountd
      fixes the problem, but that results in a dependency cycle
      because /etc/rc.d/lockd specifies:
      
      REQUIRE: nfsd
      BEFORE: DAEMON
      --> which forces mountd to preceed DAEMON.
      
      This patch removes "nfsd" from REQUIRE for lockd and statd,
      then adds mountlate to REQUIRE for mountd, to fix this
      problem.  Having lockd REQUIRE nfsd was done in the NetBSD
      code when it was pulled into FreeBSD and there does not
      seem to be a need for this.
      
      In case this causes problems, a long MFC has been specified.
      
      PR:	254282
      Differential Revision:	https://reviews.freebsd.org/D33256
      MFC after:	3 months
      f72926ea
    • Philippe Michaud-Boudreault's avatar
      sound: add patch for Lenovo Legion 5 AMD · 45f0e571
      Philippe Michaud-Boudreault authored
      MFC after:	1 week
      Differential Revision:	https://reviews.freebsd.org/D30333
      45f0e571
    • Michal Krawczyk's avatar
      ena: update ENA version to v2.5.0 · 8a5b4859
      Michal Krawczyk authored
      Some of the changes in this release:
      - IPv6 L4 checksum offload fixes.
      - Optimization of the Tx req_id validation.
      - Timer service adjustments.
      - NUMA awareness for the kernel RSS mode.
      
      Submitted by: Michal Krawczyk <mk@semihalf.com>
      Obtained from: Semihalf
      MFC after: 2 weeks
      Sponsored by: Amazon, Inc.
      8a5b4859
    • Michal Krawczyk's avatar
      ena: fix man page typos and update contact section · 95161adf
      Michal Krawczyk authored
      Verified spelling in the README and fixed the typos.
      
      Also updated the contact section by removing Artur and adding Dawid
      Gorecki who is now the second ENA FreeBSD driver developer.
      
      Submitted by: Michal Krawczyk <mk@semihalf.com>
      Obtained from: Semihalf
      MFC after: 2 weeks
      Sponsored by: Amazon, Inc.
      95161adf
    • Dawid Gorecki's avatar
      ena: do not call reset if device is unresponsive · d10ec3ad
      Dawid Gorecki authored
      If the device becomes unresponsive, the driver will not be able to
      finish the reset process correctly. Timeout during version validation
      indicates that the device is currently not responding. In that case
      do not perform the reset and instead reschedule timer service. Because
      of that the driver will continue trying to reset the device until it
      succeeds or is detached.
      
      Submitted by: Dawid Gorecki <dgr@semihalf.com>
      Obtained from: Semihalf
      MFC after: 2 weeks
      Sponsored by: Amazon, Inc.
      d10ec3ad
    • Dawid Gorecki's avatar
      ena: start timer service on attach · 78554d0c
      Dawid Gorecki authored
      The timer service was started when the interface was brought up and it
      was stopped when it was brought down. Since ena_up requires the device
      to be responsive, triggering the reset would become impossible if the
      device became unresponsive with the interface down.
      
      Since most of the functions in timer service already perform the check
      to see if the device is running, this only requires starting the callout
      in attach and stopping it when bringing the interface up or down to
      avoid race between different admin queue calls.
      
      Since callout functions for timer service are always called with the
      same arguments, replace callout_{init,reset,drain} calls with
      ENA_TIMER_{INIT,RESET,DRAIN} macros.
      
      Submitted by: Dawid Gorecki <dgr@semihalf.com>
      Obtained from: Semihalf
      MFC after: 2 weeks
      Sponsored by: Amazon, Inc.
      78554d0c
    • Artur Rojek's avatar
      ena: rework tx req_id validation logic · b168d0c8
      Artur Rojek authored
      Since `ena_com_tx_comp_req_id_get` already checks for `req_id` validity,
      the logic was exiting early, never giving `validate_tx_req_id` a chance
      to trigger device reset.
      Rewrite the logic so that device reset is called based on return value
      of `ena_com_tx_comp_req_id_get` instead.
      
      Submitted by: Artur Rojek <ar@semihalf.com>
      Obtained from: Semihalf
      MFC after: 2 weeks
      Sponsored by: Amazon, Inc.
      b168d0c8
    • Dawid Gorecki's avatar
      ena: properly handle IPv6 L4 checksum offload · 2bbef9d9
      Dawid Gorecki authored
      ena_tx_csum function did not check if IPv6 checksum offload was
      requested it only checked checksum offloading flags for IPv4 packets.
      Because of that, when encountering CSUM_IP6_* flags, the function simply
      returned without actually setting checksum offloading in ena_ctx.
      Check CUSM_IP6_* flags to enable IPv6 checksum offload.
      
      Additionally, only IPv4 header was being parsed regardless of EtherType
      field, because of that, value of L4 protocol read when actually trying
      to send IPv6 packets was wrong. Use ip6_lasthdr function to get length
      of all IPv6 headers and payload protocol.
      
      Set the DF flag to 1 in order to allow the device to offload the IPv6
      checksum calculation and achieve optimal performance.
      
      Add CSUM6_OFFLOAD and CSUM_OFFLOAD definitions into ena_datapath.h.
      
      Submitted by: Dawid Gorecki <dgr@semihalf.com>
      Obtained from: Semihalf
      MFC after: 2 weeks
      Sponsored by: Amazon, Inc.
      2bbef9d9
    • Marcin Wojtas's avatar
      ena: merge ena-com v2.5.0 upgrade · eb4c4f4a
      Marcin Wojtas authored
      Merge commit '2530eb1f'
      
      Adjust the driver to the upgraded ena-com part twofold:
      
      First update is related to the driver's NUMA awareness.
      
      Allocate I/O queue memory in NUMA domain local to the CPU bound to the
      given queue, improving data access time. Since this can result in
      performance hit for unaware users, this is done only when RSS
      option is enabled, for other cases the driver relies on kernel to
      allocate memory by itself.
      
      Information about first CPU bound is saved in adapter structure, so
      the binding persists after bringing the interface down and up again.
      
      If there are more buckets than interface queues, the driver will try to
      bind different interfaces to different CPUs using round-robin algorithm
      (but it will not bind queues to CPUs which do not have any RSS buckets
      associated with them). This is done to better utilize hardware
      resources by spreading the load.
      
      Add (read-only) per-queue sysctls in order to provide the following
      information:
      - queueN.domain: NUMA domain associated with the queue
      - queueN.cpu:    CPU affinity of the queue
      
      The second change is for the CSUM_OFFLOAD constant, as ENA platform
      file has removed its definition. To align to that change, it has been
      added to the ena_datapath.h file.
      
      Submitted by: Artur Rojek <ar@semihalf.com>
      Submitted by: Dawid Gorecki <dgr@semihalf.com>
      Obtained from: Semihalf
      MFC after: 2 weeks
      Sponsored by: Amazon, Inc.
      eb4c4f4a
    • Martin Matuska's avatar
      zfs: fix kernel build after e92ffd9b if ZFS is compiled in · 5025e850
      Martin Matuska authored
      Add missing source file lz4_zfs.c to sys/conf/files
      5025e850
  4. 22 Jan, 2022 2 commits
    • Martin Matuska's avatar
      zfs: merge openzfs/zfs@17b2ae0b2 (master) into main · e92ffd9b
      Martin Matuska authored
      Notable upstream pull request merges:
        #12766 Fix error propagation from lzc_send_redacted
        #12805 Updated the lz4 decompressor
        #12851 FreeBSD: Provide correct file generation number
        #12857 Verify dRAID empty sectors
        #12874 FreeBSD: Update argument types for VOP_READDIR
        #12896 Reduce number of arc_prune threads
        #12934 FreeBSD: Fix zvol_*_open() locking
        #12947 lz4: Cherrypick fix for CVE-2021-3520
        #12961 FreeBSD: Fix leaked strings in libspl mnttab
        #12964 Fix handling of errors from dmu_write_uio_dbuf() on FreeBSD
        #12981 Introduce a flag to skip comparing the local mac when raw sending
        #12985 Avoid memory allocations in the ARC eviction thread
      
      Obtained from:	OpenZFS
      OpenZFS commit:	17b2ae0b
      e92ffd9b
    • Dimitry Andric's avatar
      Sort SRCS in libcxxrt's Makefile, and use += to list sources · 3c3df366
      Dimitry Andric authored
      No functional change intended.
      
      MFC after:	3 days
      3c3df366