1. 04 Oct, 2021 3 commits
  2. 03 Oct, 2021 15 commits
    • Kyle Evans's avatar
      cmp: add -b, --print-bytes · e6eed7d7
      Kyle Evans authored
      This is compatible with GNU cmp.
      
      Reviewed by:	bapt, markj (earlier version)
      Sponsored by:	Klara, Inc.
      
      (cherry picked from commit f66b9b40)
      e6eed7d7
    • Kyle Evans's avatar
      cmp: add -i, --ignore-initial, an alternative to skip1/skip2 args · b0f46c4b
      Kyle Evans authored
      This is compatible with GNU cmp.
      
      Reviewed by:	markj
      Sponsored by:	Klara, Inc.
      
      (cherry picked from commit 8d546b68)
      b0f46c4b
    • Kyle Evans's avatar
      cmp: add -n, --bytes to limit number of bytes to compare · a67180b4
      Kyle Evans authored
      This is compatible with GNU cmp.
      
      Reviewed by:	markj
      Sponsored by:	Klara, Inc.
      
      (cherry picked from commit 4e380e84)
      a67180b4
    • Kyle Evans's avatar
      cmp: accept SI suffixes for skip1 and skip2 · 66691176
      Kyle Evans authored
      This is compatible with GNU cmp.
      
      Reviewed by:	bapt (earlier version), markj, imp
      Sponsored by:	Klara, Inc.
      
      (cherry picked from commit f6787614)
      66691176
    • Kyle Evans's avatar
      hostname: avoid strcpy() overlap in -d flag handling · 47c84a0f
      Kyle Evans authored
      We don't need the strcpy() anyways, just use a pointer to the hostname
      buffer and move it forward for `hostname -d`.
      
      Sponsored by:	Klara, Inc.
      
      (cherry picked from commit 33c1e727)
      47c84a0f
    • Kyle Evans's avatar
      man: reset OPTIND before parsing args · 00d0f181
      Kyle Evans authored
      From jilles: POSIX requires that a script set `OPTIND=1` before using
      different sets of parameters with `getopts`, or the results will be
      unspecified.
      
      The specific problem observed here is that we would execute `man -f` or
      `man -k` without cleaning up state from man_parse_args()' `getopts`
      loop.  FreeBSD's /bin/sh seems to reset OPTIND to 1 after we hit the
      second getopts loop, rendering the following shift harmless; other
      /bin/sh implementations will leave it at what we came into the loop at
      (e.g., bash as /bin/sh), shifting off any keywords that we had.
      
      Input from:	jilles
      Reviewed by:	allanjude, bapt, imp
      Sponsored by:	Klara, Inc.
      
      (cherry picked from commit f555b39e)
      00d0f181
    • Fernando Apesteguía's avatar
      cmp(1): Add EXAMPLES section · ca052baa
      Fernando Apesteguía authored
      Add a small number of examples depicting the use of -l, -z and byte offsets
      
      (cherry picked from commit 18319935)
      ca052baa
    • Fernando Apesteguía's avatar
      cmp(1): Add EXAMPLES section · a19dcf58
      Fernando Apesteguía authored
      Add simple examples showing the use of -l, -z, stdin and offsets
      
      (cherry picked from commit 022ebaf5)
      a19dcf58
    • Matt Macy's avatar
      iflib: ensure that tx interrupts enabled and cleanups · a5a91bd2
      Matt Macy authored
      Doing a 'dd' over iscsi will reliably cause stalls. Tx
      cleaning _should_ reliably happen as data is sent.
      However, currently if the transmit queue fills it will
      wait until the iflib timer (hz/2) runs.
      
      This change causes the the tx taskq thread to be run
      if there are completed descriptors.
      
      While here:
      
      - make timer interrupt delay a sysctl
      
      - simplify txd_db_check handling
      
      - comment on INTR types
      
      Background on the change:
      
      Initially doorbell updates were minimized by only writing to the register
      on every fourth packet. If txq_drain would return without writing to the
      doorbell it scheduled a callout on the next tick to do the doorbell write
      to ensure that the write otherwise happened "soon". At that time a sysctl
      was added for users to avoid the potential added latency by simply writing
      to the doorbell register on every packet. This worked perfectly well for
      e1000 and ixgbe ... and appeared to work well on ixl. However, as it
      turned out there was a race to this approach that would lockup the ixl MAC.
      It was possible for a lower producer index to be written after a higher one.
      On e1000 and ixgbe this was harmless - on ixl it was fatal. My initial
      response was to add a lock around doorbell writes - fixing the problem but
      adding an unacceptable amount of lock contention.
      
      The next iteration was to use transmit interrupts to drive delayed doorbell
      writes. If there were no packets in the queue all doorbell writes would be
      immediate as the queue started to fill up we could delay doorbell writes
      further and further. At the start of drain if we've cleaned any packets we
      know we've moved the state machine along and we write the doorbell (an
      obvious missing optimization was to skip that doorbell write if db_pending
      is zero). This change required that tx interrupts be scheduled periodically
      as opposed to just when the hardware txq was full. However, that just leads
      to our next problem.
      
      Initially dedicated msix vectors were used for both tx and rx. However, it
      was often possible to use up all available vectors before we set up all the
      queues we wanted. By having rx and tx share a vector for a given queue we
      could halve the number of vectors used by a given configuration. The problem
      here is that with this change only e1000 passed the necessary value to have
      the fast interrupt drive tx when appropriate.
      
      Reported by: mav@
      Tested by: mav@
      Reviewed by:    gallatin@
      MFC after:      1 month
      Sponsored by:   iXsystems
      Differential Revision:  https://reviews.freebsd.org/D27683
      
      (cherry picked from commit 81be6552)
      a5a91bd2
    • Eric van Gyzen's avatar
      ixgbe: fix impossible condition · 660b6999
      Eric van Gyzen authored
      Coverity flagged this condition: The condition
          offset == 0 && offset == 65535
      can never be true because offset cannot be equal
      to two different values at the same time.
      
      Submitted by:	bret_ketchum@dell.com
      Reported by:	Coverity
      Reviewed by:	tsoome, cem
      MFC after:	2 weeks
      Sponsored by:	Dell EMC Isilon
      Differential Revision:	https://reviews.freebsd.org/D26144
      
      (cherry picked from commit ab1c54fe)
      660b6999
    • Kevin Bowling's avatar
      ixgbe: whitespace cleanup pass · 2b81559f
      Kevin Bowling authored
      Reviewed by:	markj
      MFC after:	1 week
      Differential Revision:	https://reviews.freebsd.org/D32131
      
      (cherry picked from commit 15d07799)
      2b81559f
    • Mark Johnston's avatar
      iflib: Make if_shared_ctx_t a pointer to const · 3a13449e
      Mark Johnston authored
      This structure is shared among multiple instances of a driver, so we
      should ensure that it doesn't somehow get treated as if there's a
      separate instance per interface.  This is especially important for
      software-only drivers like wg.
      
      DEVICE_REGISTER() still returns a void * and so the per-driver sctx
      structures are not yet defined with the const qualifier.
      
      Reviewed by:	gallatin, erj
      MFC after:	2 weeks
      Sponsored by:	The FreeBSD Foundation
      Differential Revision:	https://reviews.freebsd.org/D29102
      
      (cherry picked from commit ffe3def9)
      3a13449e
    • Conrad Meyer's avatar
      ixgbe(4): Eliminate bogus sizeof() expressions · 9c0707ed
      Conrad Meyer authored
      All of these uses of sizeof() were on the wrong type in relation to the pointer
      passed to SYSCTL_ADD_PROC as arg1.  Fortunately, none of the handlers actually
      use arg2.  So just don't pass a (non-zero) arg2.
      
      Reported by:	Coverity
      CID:		1007701
      
      (cherry picked from commit d09fbcd0)
      9c0707ed
    • Eric Joyner's avatar
      ixgbe(4): Fix enabling/disabling and reconfiguration of queues · cfb3a1de
      Eric Joyner authored
      - Wrong order of casting and bit shift caused that enabling and disabling
        queues didn't work properly for queues number larger than 32. Use literals
        with right suffix instead.
      
      - TX ring tail address was not updated during reinitiailzation of TX
        structures. It could block sending traffic.
      
      - Also remove unused variables 'eims' and 'active_queues'.
      
      Submitted by:	Krzysztof Galazka <krzysztof.galazka@intel.com>
      Reviewed by:	erj@
      Sponsored by:	Intel Corporation
      Differential Revision:	https://reviews.freebsd.org/D20826
      
      (cherry picked from commit 2dc2d580)
      cfb3a1de
    • Kevin Bowling's avatar
      ixgbe: Rename 'struct adapter' to 'struct ixgbe_softc' · 90e279ae
      Kevin Bowling authored
      Rename the 'struct adapter' to 'struct ixgbe_softc' to avoid type
      ambiguity in things like kgdb.
      
      Reviewed by:	markj
      MFC after:	1 week
      Differential Revision:	https://reviews.freebsd.org/D32131
      
      (cherry picked from commit b1d5caf3)
      90e279ae
  3. 02 Oct, 2021 5 commits
  4. 30 Sep, 2021 3 commits
  5. 29 Sep, 2021 7 commits
  6. 28 Sep, 2021 7 commits