1. 24 Jan, 2022 23 commits
  2. 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
  3. 22 Jan, 2022 7 commits