[Bug 166724] if_re(4): watchdog timeout

[email protected] Sun, 19 Jul 2026 18:51:38 +0000
Newsgroups gmane.os.freebsd.devel.net
Message-ID <[email protected]/bugzilla/>
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D166724

--- Comment #141 from [email protected] ---
A commit in branch main references this bug:

URL:
https://cgit.FreeBSD.org/src/commit/?id=3D4bff6b9f5cef13df8540fa6869bd6707f=
8e7575d

commit 4bff6b9f5cef13df8540fa6869bd6707f8e7575d
Author:     J=C3=A9r=C3=A9mie Jourdin <[email protected]>
AuthorDate: 2026-07-19 18:42:22 +0000
Commit:     Adrian Chadd <[email protected]>
CommitDate: 2026-07-19 18:45:15 +0000

    re(4): re-arm the Tx doorbell when re_txeof() leaves a non-empty ring

    On PCIe parts a TxPoll request can be lost when packets are queued
    in quick succession, leaving owned descriptors with no transfer in
    progress until the watchdog fires. re_txeof() runs from the interrupt
    handlers, re_tick() and re_watchdog(), so re-writing TXSTART whenever
    the ring is still non-empty turns a potential 5-second stall into at
    most one tick.

    One register write on a path that already took an interrupt;
    fast path untouched.

    * Sustained bidirectional load on RTL8168H; no Tx stalls, no throughput
      regression at 941 Mbps line rate.

    Reviewed by:    adrian
    Differential Revision:  https://reviews.freebsd.org/D58277
    PR: kern/166724

 sys/dev/re/if_re.c | 11 +++++++++++
 1 file changed, 11 insertions(+)

--=20
You are receiving this mail because:
You are the assignee for the bug.
You are on the CC list for the bug.=