1. 10 Mar, 2021 2 commits
  2. 09 Mar, 2021 14 commits
    • Kyle Evans's avatar
      wg(4): note the persistent-keepalive ifconfig(8) option · ce53f92e
      Kyle Evans authored
      MFC after:	3 days
      Fixes:	b3dac391
      ce53f92e
    • Hans Petter Selasky's avatar
      Implement basic support for allocating memory from a specific numa node · ebe5cf35
      Hans Petter Selasky authored
      in the LinuxKPI.
      
      Differential Revision:	https://reviews.freebsd.org/D29077
      Reviewed by:	markj@ and kib@
      MFC after:	1 week
      Sponsored by:	Mellanox Technologies // NVIDIA Networking
      ebe5cf35
    • Kyle Evans's avatar
      if_wg: export tx_bytes, rx_bytes, and last_handshake · 94dddbfd
      Kyle Evans authored
      The names are self-explanatory; these are currently only used by the
      wg(8) tool, but they are handy data points to have.
      
      Reviewed by:	grehan
      MFC after:	3 days
      Discussed with:	decke
      Differential Revision:	https://reviews.freebsd.org/D29143
      94dddbfd
    • Kyle Evans's avatar
      iflib: allow clone detach if not yet init · 0dd691b4
      Kyle Evans authored
      If we hit an error during init, then we'll unwind our state and attempt
      to detach the device -- don't block it.
      
      This was discovered by creating a wg0 with missing parameters; said
      failure ended up leaving this orphaned device in place and ended up
      panicking the system upon enumeration of the dev.* sysctl space.
      
      Reviewed by:	gallatin, markj
      MFC after:	3 days
      Differential Revision:	https://reviews.freebsd.org/D29145
      0dd691b4
    • Kyle Evans's avatar
      if_wg: wg_input: remove a couple locals (NFC) · 299f8977
      Kyle Evans authored
      We have no use for the udphdr or this hlen local, just spell out the
      addition inline.
      
      MFC after:	3 days
      Reviewed by:	grehan, markj
      Differential Revision:	https://reviews.freebsd.org/D29142
      299f8977
    • Jason A. Harmening's avatar
      amd64 pmap: convert to counter(9), add PV and pagetable page counts · e4b8deb2
      Jason A. Harmening authored
      This change converts most of the counters in the amd64 pmap from
      global atomics to scalable counter(9) counters.  Per discussion
      with kib@, it also removes the handrolled per-CPU PCID save count
      as it isn't considered generally useful.
      
      The bulk of these counters remain guarded by PV_STATS, as it seems
      unlikely that they will be useful outside of very specific debugging
      scenarios.  However, this change does add two new counters that
      are available without PV_STATS.  pt_page_count and pv_page_count
      track the number of active physical-to-virtual list pages and page
      table pages, respectively.  These will be useful in evaluating
      the memory footprint of pmap structures under various workloads,
      which will help to guide future changes in this area.
      
      Reviewed by:	kib
      Differential Revision:	https://reviews.freebsd.org/D28923
      e4b8deb2
    • Leandro Lupori's avatar
      ofwfb: fix boot on LE · 043577b7
      Leandro Lupori authored
      Some framebuffer properties obtained from the device tree were not being
      properly converted to host endian.
      Replace OF_getprop calls by OF_getencprop where needed to fix this.
      
      This fixes boot on PowerPC64 LE, when using ofwfb as the system console.
      
      Reviewed by:    bdragon
      Sponsored by:   Eldorado Research Institute (eldorado.org.br)
      MFC after:      1 week
      Differential Revision:  https://reviews.freebsd.org/D27475
      043577b7
    • Baptiste Daroussin's avatar
      Revert "rc: implement parallel boot" · f61831d2
      Baptiste Daroussin authored
      This is not ready yet for prime time
      
      This reverts commit 763db589.
      This reverts commit f1ab7999.
      This reverts commit 6e822e99.
      This reverts commit 77e1ccbe.
      f61831d2
    • Kyle Evans's avatar
      ifconfig: allow displaying/setting persistent-keepalive · b3dac391
      Kyle Evans authored
      The kernel-side already accepted a persistent-keepalive-interval, so
      just add a verb to ifconfig(8) for it and start exporting it so that
      ifconfig(8) can view it.
      
      PR:		253790
      MFC after:	3 days
      Discussed with:	decke
      b3dac391
    • Kyle Evans's avatar
      ifconfig: wg: stop requiring peer endpoints · 172a8241
      Kyle Evans authored
      The way that wireguard is designed does not actually require all peers
      to have endpoints. In an architecture that might mimic a traditional
      VPN server <-> client, the wg interface on a server would have a number
      of peers without set endpoints -- the expectation is that the "clients"
      will connect to the "server" peer, which will authenticate the
      connection as a known peer and learn the endpoint from there.
      
      MFC after:	3 days
      Discussed with:	decke, grehan (independently)
      172a8241
    • Kyle Evans's avatar
      kern: malloc: fix panic on M_WAITOK during THREAD_NO_SLEEPING() · 1ae20f7c
      Kyle Evans authored
      Simple condition flip; we wanted to panic here after epoch_trace_list().
      
      Reviewed by:	glebius, markj
      MFC after:	3 days
      Differential Revision:	https://reviews.freebsd.org/D29125
      1ae20f7c
    • Kyle Evans's avatar
      if_wg: avoid sleeping under the net epoch · e80e371d
      Kyle Evans authored
      No sleeping allowed here, so avoid it.  Collect the subset of data we
      want inside of the epoch, as we'll need extra allocations when we add
      items to the nvlist.
      
      Reviewed by:	grehan (earlier version), markj
      MFC after:	3 days
      Differential Revision:	https://reviews.freebsd.org/D29124
      e80e371d
    • Kyle Evans's avatar
      if_wg: return to m_defrag() of incoming mbuf, sans leak · bae59285
      Kyle Evans authored
      This partially reverts df554850 but still fixes the leak. It was
      overlooked (sigh) that some packets will exceed MHLEN and cannot be
      physically contiguous without clustering, but we don't actually need
      it to be. m_defrag() should pull up enough for any of the headers that
      we do need to be accessible.
      
      Fixes:	df554850
      Pointy hat;	kevans
      bae59285
    • Rick Macklem's avatar
      mountd(8): generate a syslog message when the "V4:" line is missing · 09673fc0
      Rick Macklem authored
      Daniel reported that NFSv4 mounts were not working despite having
      set "nfsv4_server_enable=YES" in /etc/rc.conf.  Mountd was logging a
      message that there was no /etc/exports file.
      He noted that creating a /etc/exports file with a "V4:" line in it
      was needed make NFSv4 mounts work.
      At least one "V4:" line in one of the exports(5) file(s) is needed to
      make NFSv4 mounts work. This patch fixes mountd.c so that it logs a
      message indicting that there is no "V4:" line in any exports(5)
      file when NFSv4 mounts are enabled.
      To avoid this message being generated erroneously, /etc/rc.d/mountd
      is updated to make sure vfs.nfsd.server_max_nfsvers is properly set
      before mountd(8) is started.
      
      Reported by:	debdrup
      PR:	253901
      MFC after:	2 weeks
      09673fc0
  3. 08 Mar, 2021 24 commits
    • Alexander Motin's avatar
      Do not read timer extra time when MWAIT is used. · 075e4807
      Alexander Motin authored
      When we enter C2+ state via memory read, it may take chipset some
      time to stop CPU.  Extra register read covers that time.  But MWAIT
      makes CPU stop immediately, so we don't need to waste time after
      wakeup with interrupts still disabled, increasing latency.
      
      On my system it reduces ping localhost latency, waking up all CPUs
      once a second, from 277us to 242us.
      
      MFC after:	1 month
      075e4807
    • Alexander Motin's avatar
      Change mwait_bm_avoidance use to match Linux. · 45521967
      Alexander Motin authored
      Even though the information is very limited, it seems the intent of
      this flag is to control ACPI_BITREG_BUS_MASTER_STATUS use for C3,
      not force ACPI_BITREG_ARB_DISABLE manipulations for C2, where it was
      never needed, and which register not really doing anything for years.
      It wasted lots of CPU time on congested global ACPI hardware lock
      when many CPU cores were trying to enter/exit deep C-states same time.
      
      On idle 80-core system it pushed ping localhost latency up to 20ms,
      since badport_bandlim() via counter_ratecheck() wakes up all CPUs
      same time once a second just to synchronously reset the counters.
      Now enabling C-states increases the latency from 0.1 to just 0.25ms.
      
      Discussed with:	kib
      MFC after:	1 month
      45521967
    • Warner Losh's avatar
      6ffdaa5f
    • Warner Losh's avatar
      config_intrhook: Move from TAILQ to STAILQ and padding · 88a55912
      Warner Losh authored
      config_intrhook doesn't need to be a two-pointer TAILQ. We rarely add/delete
      from this and so those need not be optimized. Instaed, use the one-pointer
      STAILQ plus a uintptr_t to be used as a flags word. This will allow these
      changes to be MFC'd to 12 and 13 to fix a race in removable devices.
      
      Feedback from: jhb
      Reviewed by: mav
      Differential Revision:	https://reviews.freebsd.org/D29004
      88a55912
    • Alexander V. Chernikov's avatar
      Fix 'in6_purgeaddr: err=65, destination address delete failed' message. · 7634919e
      Alexander V. Chernikov authored
      P2P ifa may require 2 routes: one is the loopback route, another is
       the "prefix" route towards its destination.
      
      Current code marks loopback routes existence with IFA_RTSELF and
       "prefix" p2p routes with IFA_ROUTE.
      
      For historic reasons, we fill in ifa_dstaddr for loopback interfaces.
      To avoid installing the same route twice, we preemptively set
       IFA_RTSELF when adding "prefix" route for loopback.
      However, the teardown part doesn't have this hack, so we try to
       remove the same route twice.
      
      Fix this by checking if ifa_dstaddr is different from the ifa_addr
       and moving this logic into a separate function.
      
      Reviewed By: kp
      Differential Revision: https://reviews.freebsd.org/D29121
      MFC after:	3 days
      7634919e
    • Jessica Clarke's avatar
      if_vtbe: Add missing includes to fix build · f2f8405c
      Jessica Clarke authored
      PR:		254137
      Reported by:	Mina Galić <me@igalic.co>
      MFC after:	3 days
      Fixes:		f8bc74e2 ("tap: add support for virtio-net offloads")
      f2f8405c
    • Kyle Evans's avatar
      x86: tsc: deprioritize TSC on VirtualBox · 8cc15b0d
      Kyle Evans authored
      Misbehavior has been observed with TSC under VirtualBox, where threads
      doing small sleeps (~1 second) may miss their wake up and hang around
      in a sleep state indefinitely.  Switching back to ACPI-fast decidedly
      fixes it, so stop using TSC on VirtualBox at least for the time being.
      
      This partially reverts 84eaf2cc, applying it only to VirtualBox and
      increasing the quality to 0. Negative qualities can never be chosen and
      cannot be chosen with the tunable recently added. If we do not have a
      timecounter with a higher quality than 0, then TSC does at least leave
      the system mostly usable.
      
      PR:		253087
      Reviewed by:	emaste, kib
      MFC after:	3 days
      Differential Revision:	https://reviews.freebsd.org/D29132
      8cc15b0d
    • John Baldwin's avatar
      Add ObsoleteFiles.inc entries for various OCF headers removed in 13. · ef74bfc6
      John Baldwin authored
      MFC after:	3 days
      ef74bfc6
    • John Baldwin's avatar
      Correct the name of the structure used for TCP socket options. · c5a36562
      John Baldwin authored
      The structure was renamed while refactoring Netflix's KTLS changes for
      upstreaming, but the original name remained in tcp.4 and was
      subsequently copied to ktls.4.
      
      PR:		254141
      Reported by:	asomers
      MFC after:	3 days
      c5a36562
    • Mark Johnston's avatar
      wg: Fix a mismerge · 1bb7c45c
      Mark Johnston authored
      df554850 fixed a leak that I had initially fixed in a11009dc.
      
      Fixes:	a11009dc
      1bb7c45c
    • Mark Johnston's avatar
      iflib: Make if_shared_ctx_t a pointer to const · ffe3def9
      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
      ffe3def9
    • Mark Johnston's avatar
      Rename _cscan_atomic.h and _cscan_bus.h to atomic_san.h and bus_san.h · 435c7cfb
      Mark Johnston authored
      Other kernel sanitizers (KMSAN, KASAN) require interceptors as well, so
      put these in a more generic place as a step towards importing the other
      sanitizers.
      
      No functional change intended.
      
      MFC after:	1 week
      Sponsored by:	The FreeBSD Foundation
      Differential Revision:	https://reviews.freebsd.org/D29103
      435c7cfb
    • Mark Johnston's avatar
      ath_hal: Stop printing messages during boot · 0e72eb46
      Mark Johnston authored
      ath_hal is compiled into the kernel by default and so always prints a
      message to dmesg even when the system has no ath hardware.
      
      MFC after:	1 week
      Sponsored by:	The FreeBSD Foundation
      0e72eb46
    • Mark Johnston's avatar
      posix timers: Improve the overrun calculation · 7995dae9
      Mark Johnston authored
      timer_settime(2) may be used to configure a timeout in the past.  If
      the timer is also periodic, we also try to compute the number of timer
      overruns that occurred between the initial timeout and the time at which
      the timer fired.  This is done in a loop which iterates once per period
      between the initial timeout and now.  If the period is small and the
      initial timeout was a long time ago, this loop can take forever to run,
      so the system is effectively DOSed.
      
      Replace the loop with a more direct calculation of
      (now - initial timeout) / period to compute the number of overruns.
      
      Reported by:	syzkaller
      Reviewed by:	kib
      MFC after:	1 week
      Sponsored by:	The FreeBSD Foundation
      Differential Revision:	https://reviews.freebsd.org/D29093
      7995dae9
    • Mark Johnston's avatar
      posix timers: Sprinkle some style fixes · 60d12ef9
      Mark Johnston authored
      MFC after:	1 week
      Sponsored by:	The FreeBSD Foundation
      60d12ef9
    • Mark Johnston's avatar
      posix timers: Declare unexported functions as static · 8ff2b41c
      Mark Johnston authored
      MFC after:	1 week
      Sponsored by:	The FreeBSD Foundation
      8ff2b41c
    • Mark Johnston's avatar
      wg: Style · d8cebef5
      Mark Johnston authored
      MFC after:	1 week
      Sponsored by:	The FreeBSD Foundation
      d8cebef5
    • Mark Johnston's avatar
      wg: Avoid leaking mbufs when the input handshake queue is full · a11009dc
      Mark Johnston authored
      Reviewed by:	grehan
      Sponsored by:	The FreeBSD Foundation
      MFC after:	3 days
      Differential Revision:	https://reviews.freebsd.org/D29011
      a11009dc
    • Mark Johnston's avatar
      dumpon.8: Ask DDB to call doadump() rather than calling it directly · af06ff55
      Mark Johnston authored
      Sponsored by:	The FreeBSD Foundation
      MFC after:	1 week
      af06ff55
    • Alex Richardson's avatar
      lib/msun: Avoid FE_INEXACT for x86 log2l/log10l · 221622ec
      Alex Richardson authored
      This fixes tests/lib/msun/logarithm_test after compiling the test with
      -fno-builtin (D28577). Adding invln10_lo + invln10_10 results in
      FE_INEXACT (for all inputs) and the same for the log2l invln2_lo + invln2_hi.
      This patch avoids FE_INEXACT (for exact results such as 0) by defining a
      constant and using that.
      
      Reviewed By:	dim
      Differential Revision: https://reviews.freebsd.org/D28786
      221622ec
    • Alex Richardson's avatar
      tests/sys/cddl: correctly quote atf_set "require.progs" · 0b86424c
      Alex Richardson authored
      The argument has to be a single whitespace-separate value. While touching
      all these lines also add ksh93, since `atf_set "require.progs"` overrides
      the default value specified in the Kyuafile. This then results in tests
      being executed despite ksh93 not being installed.
      
      Reviewed By:	asomers
      Differential Revision: https://reviews.freebsd.org/D29066
      0b86424c
    • Alex Richardson's avatar
      kern.mk: Fix wrong variable being used for linker path after 172a624f · 01fe4cac
      Alex Richardson authored
      When I synchronized kern.mk with bsd.sys.mk, I accidentally changed
      CCLDFLAGS to LDFLAGS which is not used by the kernel builds. This commit
      should unbreak the GitHub actions cross-build CI. I didn't notice it
      locally because cheribuild already passes -fuse-ld in the linker flags as
      it predates this being done in the makefiles.
      
      Reported By:	Jose Luis Duran
      Fixes:		172a624f ("Silence annoying and incorrect non-default linker warning with GCC")
      01fe4cac
    • Peter Holm's avatar
      stress2: open(2) tests with BENEATH flags. · e0fd837a
      Peter Holm authored
      Update tests to reflect the changes of "open(2): Remove O_BENEATH and
      AT_BENEATH" in 20e91ca3.
      e0fd837a
    • Kyle Evans's avatar
      if_wg: avoid null ptr deref · 2b82c94a
      Kyle Evans authored
      While we're here, sync up with OpenBSD and don't use a keypair !kp_valid
      
      MFC after:	3 days
      2b82c94a