e1000: Serialize 82579 CSR writes with the Management Engine
The 82579 PCIm2PCI arbiter can acknowledge a host MAC CSR write while
the Management Engine is accessing another CSR. The host write can be
lost; subsequent target accesses may no longer be claimed by the MAC and
can hang the system.
For 82579 controllers with valid management firmware, wait for the ME
CSR access indication before every MAC CSR write. Keep the wait bounded
and use DELAY because writes occur in interrupt and datapath contexts.
Verify every transmit and receive tail write. If a tail does not hold
the requested value, disable its datapath direction and request a full
iflib reset.
Keep the ordinary register-write path as a direct MMIO write behind a
predicted per-device gate. Contain the wait and tail recovery in the
82579 slow path rather than adding tail-specific accessors and state to
the rest of the e1000 family.
[12 lines not shown]
e1000: Serialize 82579 CSR writes with the Management Engine
The 82579 PCIm2PCI arbiter can acknowledge a host MAC CSR write while
the Management Engine is accessing another CSR. The host write can be
lost; subsequent target accesses may no longer be claimed by the MAC and
can hang the system.
For 82579 controllers with valid management firmware, wait for the ME
CSR access indication before every MAC CSR write. Keep the wait bounded
and use DELAY because writes occur in interrupt and datapath contexts.
Verify every transmit and receive tail write. If a tail does not hold
the requested value, disable its datapath direction and request a full
iflib reset.
Keep the ordinary register-write path as a direct MMIO write behind a
predicted per-device gate. Contain the wait and tail recovery in the
82579 slow path rather than adding tail-specific accessors and state to
the rest of the e1000 family.
[12 lines not shown]
sysutils/fluent-bit: Restore libyaml dependency (unbreak)
The update to 5.1.2 replaced the libyaml LIB_DEPENDS entry with libzstd
instead of adding it. FLB_CONFIG_YAML is still enabled by default, so
the FLB_HAVE_LIBYAML configure test failed and the build stopped with
"YAML development dependencies required for YAML configuration format
handling".
Both libraries are needed: the resulting binary links against
libyaml-0.so.2 and libzstd.so.1.
net/bsdec2-image-upload: Update to 1.4.13
This increases the ImportVolume part size in order to work around
issues in the ImportVolume service.
Sponsored by: Amazon
net/nmsg: Upgrade to version 1.4.0
nmsg (1.4.0):
* Removed nmsgtool support for presentation inputs.
* Properly handle fragmented containers in zmq/kafka inputs.
* Support single nmsg payload kafka in/out sources.
* Clean-up temp files after failed start using -w.
* Improved warning for mismatched CRC.
* Require json-c build dependency.
* Fix various small memory leaks and mismanagement issues.
* Fix strict aliasing violations.
[9 lines not shown]
iavf: Probe the Hyper-V VF device ID
The shared code already recognizes IAVF_DEV_ID_VF_HV and handles it
through the regular iavf register and virtchnl paths, but the PCI probe
table omits it. Add the missing entry so the driver attaches.
PR: 239849
MFC after: 1 week
apple_bce: require usb(4) for vhci functionality
The vhci portion of the driver relies on usb(4) for both constants and
functionality. Add an explicit dependency on usb(4) in `files.amd64` so
it builds properly 100% of the time in a static kernel config.
Reviewed by: seuros
Differential Revision: https://reviews.freebsd.org/D59469
cat: add -A, -E and -T flags
Support cat -A, -E and -T, which are commonly used by Linux shell
scripts. -E prints a "$" at the end of each line, -T renders tabs
as ^I, and -A is equivalent to -vET.
MFC After: 1 week
Discussed with: jrtc27
Reviewed by: jrtc27, ziaee
Differential Revision: https://reviews.freebsd.org/D59250
(cherry picked from commit d2cfdf4c12a76db3612c83575403150811f5aa9a)
nuageinit: root should be allowed to log in when disable_root is false
PermitRootLogin is "no" by default and that stopped root from logging in
even though disable_root was set to false during initialization.
Reviewed by: bapt
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D59101
(cherry picked from commit a209aac86882d3062318dea4971b2f728463c7e2)
nuageinit: fix ssh_pwauth string handling
Treat "no"/"unchanged" correctly instead of any non-nil value as yes.
(cherry picked from commit 8d4d5f2e8e56e7b24b50706acbdc0c8c750c6fed)
nuageinit: support allow_public_ssh_keys
Skip importing datasource public keys when set to false.
(cherry picked from commit 8f378c83c6b8b052433834ca0b53677459dc0e85)
grep(1): optimize -w/--word-regexp word boundary check
The -w option checks word boundaries before and after each potential
match by decoding the adjacent character. This was done via the
heavyweight sscanf(3) with "%lc", which goes through the full scanf
parser and locale-aware mbrtowc(3) machinery even for simple ASCII.
Replace with a three-tier fast path:
1. ASCII bytes (< 0x80): simple isalnum(3) / '_' comparison
2. UTF-8 continuation bytes (0x80-0xBF): interior bytes of a multi-byte
character are always word characters -> no further decoding needed
3. Multi-byte start bytes (>= 0xC0): decode with mbrtowc(3) directly
instead of sscanf(3)/%lc, avoiding scanf parser overhead
Benchmark with ministat(1) (10 runs each):
Worst-case ASCII (100k lines of 100 'a' chars, -w 'a'):
Difference at 95.0% confidence: -15.3% +/- 3.1%
[16 lines not shown]
grep: periodic timer-based fflush instead of unconditional per-line flush
Replace the unconditional fflush(stdout) in grep_printline and
procmatches with a periodic timer that flushes at most once every
100ms. This preserves interactive responsiveness (grep | tee,
grep | tail -f) while avoiding 1M+ write(2) syscalls when
processing large inputs.
The flush interval is tracked via clock_gettime(CLOCK_MONOTONIC)
and a static timespec. --line-buffered continues to flush
immediately via setlinebuf(3), as before.
Benchmark on 1M lines (37MB output to file):
unconditional fflush: 1.90s (sys 1.22s)
periodic 100ms timer: 0.49s (sys 0.007s)
Reviewed by: kevans
Differential Revision: https://reviews.freebsd.org/D57528
(cherry picked from commit ffe47c424e0a45f5d8d20a5944477821bd946eef)
contrib/lutok: remove autotools generated files
These files provide no value in the FreeBSD tree proper and change
frequently, depending on what machine I generate the release tarball on
(and what versions of autotools are on the host). Nuke the autogenerated
files to avoid bloating commit history/the tree.
MFC after: 3 days
Requested by: Benjamin Jacobs <freebsd at dev.thsi.be>
Revert "contrib/lutok: remove autotools and doxygen generated files"
I messed up the commit title. Redo it with a correct summary.
This reverts commit 3dbe1800848ca71f5cc083f1d5c5b4759b601fae.
contrib/lutok: remove autotools and doxygen generated files
These files provide no value in the FreeBSD tree proper and change
frequently, depending on what machine I generate the release tarball on
(and what versions of autotools are on the host). Nuke the autogenerated
files to avoid bloating commit history/the tree.
MFC after: 3 days
Requested by: Benjamin Jacobs <freebsd at dev.thsi.be>