1. 24 Jan, 2022 6 commits
    • Cy Schubert's avatar
      UPDATING: Sort by date · 8303b8ff
      Cy Schubert authored
      Sort unbound entry by date.
      8303b8ff
    • Cy Schubert's avatar
      UPDATING: Document unbound support of RFC8375 · 72d0d523
      Cy Schubert authored
      As of unbound 1.14.0rc1, as per RFC8375 unbound by default blocks
      'home.arpa'. Document this new behaviour and how to unblock it.
      
      Reported by:	avg
      Discussed with:	glebius, avg
      RFC:		8375, Section 6: Security Considerations
      72d0d523
    • Cy Schubert's avatar
      unbound: Vendor import 1.14.0 · 273016e8
      Cy Schubert authored
      Vendor import GA release of unbound 1.14.0.
      
      MFC after:      2 weeks
      
      Merge commit '9b87431a' into unbound/main
      273016e8
    • Kevin Lo's avatar
      modules: mgb: need opt_platform.h · dea952c3
      Kevin Lo authored
      This fixes the standalone build.
      dea952c3
    • Eugene Grosbein's avatar
      fetch(1): correct progress accounting after previous commit · a4efbe0d
      Eugene Grosbein authored
      MFC after:	1 month
      a4efbe0d
    • Eugene Grosbein's avatar
      fetch(1): process truncated transfer as soft failure · e3bad5f7
      Eugene Grosbein authored
      Let "fetch -a" resume truncated transfer automatically
      perform another attempt if it obtained some new data in previous one
      making progress.
      
      This makes it more robust against frequent but transient network failures.
      For example:
      
      => sqlite-src-3370200.zip doesn't seem to exist in /usr/ports/distfiles/.
      => Attempting to fetch https://www.sqlite.org/2022/sqlite-src-3370200.zip
      sqlite-src-3370200.zip                          3% of   12 MB   45 kBps 04m24s
      fetch: sqlite-src-3370200.zip appears to be truncated: 524288/13145234 bytes
      sqlite-src-3370200.zip                         10% of   12 MB   67 kBps 02m56s
      fetch: sqlite-src-3370200.zip appears to be truncated: 1327104/13145234 bytes
      sqlite-src-3370200.zip                         28% of   12 MB  123 kBps 01m14s
      fetch: sqlite-src-3370200.zip appears to be truncated: 3735552/13145234 bytes
      sqlite-src-3370200.zip                         54% of   12 MB  253 kBps    24s
      fetch: sqlite-src-3370200.zip appears to be truncated: 7176192/13145234 bytes
      sqlite-src-3370200.zip                         62% of   12 MB   90 kBps    55s
      fetch: sqlite-src-3370200.zip appears to be truncated: 8241152/13145234 bytes
      sqlite-src-3370200.zip                         82% of   12 MB  113 kBps    20s
      fetch: sqlite-src-3370200.zip appears to be truncated: 10862592/13145234 bytes
      sqlite-src-3370200.zip                                  12 MB  185 kBps    12s
      ===> Fetching all distfiles required by sqlite3-3.37.2,1 for building
      
      MFC after:	1 month
      e3bad5f7
  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 13 commits
  4. 21 Jan, 2022 11 commits
    • наб's avatar
      Fix test-runner on FreeBSD · 17b2ae0b
      наб authored
      
      
      CLOCK_MONOTONIC_RAW is only a thing on Linux and macOS. I'm not
      actually sure why the previous hardcoding of a constant didn't
      error out, but when we removed it, it sure does now.
      Reviewed-by: default avatarAlexander Motin <mav@FreeBSD.org>
      Reviewed-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      Co-authored-by: default avatarRich Ercolani <rincebrain@gmail.com>
      Signed-off-by: default avatarRich Ercolani <rincebrain@gmail.com>
      Closes #12995 
      17b2ae0b
    • Ka Ho Ng's avatar
      iscsi: Fix missing is_lock unlock after cam_simq_alloc() failed · fa669505
      Ka Ho Ng authored
      Sponsored by:	The FreeBSD Foundation
      MFC after:	3 days
      fa669505
    • Mark Johnston's avatar
      Fix handling of errors from dmu_write_uio_dbuf() on FreeBSD · 063daa83
      Mark Johnston authored
      
      
      FreeBSD's implementation of zfs_uio_fault_move() returns EFAULT when a
      page fault occurs while copying data in or out of user buffers.  The VFS
      treats such errors specially and will retry the I/O operation (which may
      have made some partial progress).
      
      When the FreeBSD and Linux implementations of zfs_write() were merged,
      the handling of errors from dmu_write_uio_dbuf() changed such that
      EFAULT is not handled as a partial write.  For example, when appending
      to a file, the z_size field of the znode is not updated after a partial
      write resulting in EFAULT.
      
      Restore the old handling of errors from dmu_write_uio_dbuf() to fix
      this.  This should have no impact on Linux, which has special handling
      for EFAULT already.
      Reviewed-by: default avatarAndriy Gapon <avg@FreeBSD.org>
      Reviewed-by: default avatarRyan Moeller <ryan@iXsystems.com>
      Signed-off-by: default avatarMark Johnston <markj@FreeBSD.org>
      Closes #12964 
      063daa83
    • George Amanakis's avatar
      Introduce a flag to skip comparing the local mac when raw sending · 63a26454
      George Amanakis authored
      
      
      Raw receiving a snapshot back to the originating dataset is currently
      impossible because of user accounting being present in the originating
      dataset.
      
      One solution would be resetting user accounting when raw receiving on
      the receiving dataset. However, to recalculate it we would have to dirty
      all dnodes, which may not be preferable on big datasets.
      
      Instead, we rely on the os_phys flag
      OBJSET_FLAG_USERACCOUNTING_COMPLETE to indicate that user accounting is
      incomplete when raw receiving. Thus, on the next mount of the receiving
      dataset the local mac protecting user accounting is zeroed out.
      The flag is then cleared when user accounting of the raw received
      snapshot is calculated.
      Reviewed-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      Signed-off-by: default avatarGeorge Amanakis <gamanakis@gmail.com>
      Closes #12981 
      Closes #10523
      Closes #11221
      Closes #11294
      Closes #12594
      Issue #11300
      63a26454
    • Artur Rojek's avatar
      ena-com: add NUMA allocations macros · 2530eb1f
      Artur Rojek authored
      Add implementation for the ENA_MEM_ALLOC_NODE and
      ENA_MEM_ALLOC_COHERENT_NODE_* macros. Also the signature of
      ena_dma_alloc() function was updated, for which the implementation
      will be updated in ENA driver's patch.
      
      Submitted by: Artur Rojek <ar@semihalf.com>
      Submitted by: Dawid Gorecki <dgr@semihalf.com>
      Submitted by: Michal Krawczyk <mk@semihalf.com>
      Obtained from: Semihalf
      Sponsored by: Amazon, Inc.
      2530eb1f
    • Michal Krawczyk's avatar
      ena-com: remove CSUM_OFFLOAD from the plat file · 41160c14
      Michal Krawczyk authored
      CSUM_OFFLOAD is a constant which is used only by the core driver code.
      Because of that it shouldn't be defined in the platform file, as it's
      not the platform specific code which is used only by the ena_com layer.
      
      Submitted by: Dawid Gorecki <dgr@semihalf.com>
      Submitted by: Michal Krawczyk <mk@semihalf.com>
      Obtained from: Semihalf
      Sponsored by: Amazon, Inc.
      41160c14
    • John Baldwin's avatar
      ena-com: remove redundant declaration of ena_log_level. · 32e1beb1
      John Baldwin authored
      GCC6 raises a -Wredundant-decl error due to duplicate declarations
      in ena_fbsd_log.h and ena_plat.h.
      
      Sponsored by:   Chelsio Communications
      32e1beb1
    • Mark Johnston's avatar
      Avoid memory allocations in the ARC eviction thread · 6e2a5918
      Mark Johnston authored
      
      
      When the eviction thread goes to shrink an ARC state, it allocates a set
      of marker buffers used to hold its place in the state's sublists.
      
      This can be problematic in low memory conditions, since
      1) the allocation can be substantial, as we allocate NCPU markers;
      2) on at least FreeBSD, page reclamation can block in
         arc_wait_for_eviction()
      
      In particular, in stress tests it's possible to hit a deadlock on
      FreeBSD when the number of free pages is very low, wherein the system is
      waiting for the page daemon to reclaim memory, the page daemon is
      waiting for the ARC eviction thread to finish, and the ARC eviction
      thread is blocked waiting for more memory.
      
      Try to reduce the likelihood of such deadlocks by pre-allocating markers
      for the eviction thread at ARC initialization time.  When evicting
      buffers from an ARC state, check to see if the current thread is the ARC
      eviction thread, and use the pre-allocated markers for that purpose
      rather than dynamically allocating them.
      Reviewed-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      Reviewed-by: default avatarAlexander Motin <mav@FreeBSD.org>
      Reviewed-by: default avatarGeorge Amanakis <gamanakis@gmail.com>
      Signed-off-by: default avatarMark Johnston <markj@FreeBSD.org>
      Closes #12985 
      6e2a5918
    • наб's avatar
      libspl: ASSERT*: !! for sizeof · bc40713a
      наб authored
      
      
      sizeof(bitfield.member) is invalid, and this shows up in some FreeBSD
      build configurations: work around this by !!ing ‒
      this makes the sizeof target the ! result type (_Bool), instead
      Reviewed-by: default avatarBrian Behlendorf <behlendorf1@llnl.gov>
      Signed-off-by: default avatarAhelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
      Fixes: 42aaf0e7 ("libspl: ASSERT*: mark arguments as used")
      Closes #12984
      Closes #12986
      bc40713a
    • Ryan Moeller's avatar
      bhyve: ahci: Fix regression with no ports · b252fb24
      Ryan Moeller authored
      An AHCI controller may be specified with no connected ports.  Avoid
      dumping core in this case for compatibility with existing VM configs.
      
      Reviewed by:	khng, jhb
      Fixes:		621b5090 Refactor configuration management in bhyve.
      MFC after:	1 week
      Sponsored by:	iXsystems, Inc.
      Differential Revision:	https://reviews.freebsd.org/D33969
      b252fb24
    • Takanori Watanabe's avatar
      atrtc: Install address space handler for \_SB and its descendant. · eb815a74
      Takanori Watanabe authored
      SystemCMOS address space is accessible for system wide.
       So install address handler in \_SB space.
      
      Reviewed by: jhb
      
      Differential Revision: https://reviews.freebsd.org/D33892
      eb815a74