User Details
- User Since
- Jul 25 2015, 10:06 AM (580 w, 2 d)
Yesterday
Sat, Sep 5
The bad: label in the previous revision gets called for ether types 0x88e1 (HomePlug AV management frames) and 0x8912 (not named in sys/net/ethernet.h) via the default: case and with net.link.bridge.pfil_onlyip=1. This looks to me like a policy drop and not an error path. As such I removed that part. Correct me if I get this wrong... (447 such packets in 300s doesn't not sound like an error to me).
rework: the bad: counter is removed; only the fragmentation path is counted
Fri, Sep 4
The following part may need to get a rework for this change... investigating...
D59389 has a similar fix for ipfw.
Unit test for the issue in D59389.
Narrowed per markj@: pull up ETHER_HDR_LEN first, the SNAP/LLC header only when the frame is long enough to carry one. No mb_unmapped_to_ext() call. Rebased on current main.
Thu, Sep 3
After a bit more digging around. This does not seem only to be a particular problem for the bridge, this is a problem for everything pfil related...
ipfw_check_frame_mbuf() seems to have the same bug (depends on net.link.ether.ipfw=1).
pf's ethernet hook seems to be safe at first look (m_copydata()).
if_enc passes the chain without touching, safe.
dummynet: pulls 14 bytes, so probably safe.
ipfilter: no idea, maybe.
This is a test for the fix in D59332
Unit tests in D59333
Wed, Sep 2
This fixes the hang at boot I've seen.
Tue, Sep 1
But don't we want the second one to fail?
Why do I want the second one to succeed?
When I run a non-svc start in parllel, I would want only one to succeed (if we think about nginx, or mysql or such).
What if someone hits ctrl-c after taking the lock?
The patchset is now running on the host which needs the watchdog to trigger from time to time. It needs a while to run into the issue.
Sun, Aug 30
Sat, Aug 29
My build is still running on the old hardware where I can test this.
Quick check, if I get it right:
- this solves the issue where demand is false on the next period.
- this does not solve an issue where ~1 packet per period is send while more than one is in the queue (no idea if this is behavior we can see in the real world): growth every period → demand true every period → armed reaches 4 → still resets.
Thu, Aug 27
Sun, Aug 23
Sat, Aug 22
My tests detect a regression:
Fri, Aug 14
Aug 4 2026
Aug 3 2026
Aug 2 2026
Aug 1 2026
Comments reworded, a part moved into the commit log. The single (after f6afed726b00 ) goto moved into the one place where it matters.
Jul 31 2026
Jul 30 2026
Make the padding explicit.
Move the variables instruct iflib_txq to a place which causes less padding. Make the existing padding in the struct visible. Checked for amd64, riscv64, arm64, and i386 (only arch where the sizeof() changes, follow-up commit to remove the "old" watchdog parts changes the size back.
Jul 28 2026
Jul 27 2026
Jul 23 2026
Jul 21 2026
Jul 20 2026
full context
full context
Jul 19 2026
Results from the affected hardware (em0, 82541PI), ~44 h
on a v3 kernel. Summary: 16 watchdog fires, all true positives, 0 false
positives.
New tested version, on hardware which triggers the watchdog.
