[Bug 208205] re0 watchdog timeout
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Wed Feb 19 06:33:51 UTC 2020
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=208205
Ralf Wostrack <ralf.wostrack at gmx.de> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |ralf.wostrack at gmx.de
--- Comment #32 from Ralf Wostrack <ralf.wostrack at gmx.de> ---
Hi,
starting from version 12.0, i facing this issue on my mini-itx server.
Hardware Info:
re0 at pci0:3:0:0: class=0x020000 card=0xe0001458 chip=0x816810ec rev=0x0c
hdr=0x00
vendor = 'Realtek Semiconductor Co., Ltd.'
device = 'RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller'
class = network
subclass = ethernet
re1 at pci0:4:0:0: class=0x020000 card=0xe0001458 chip=0x816810ec rev=0x0c
hdr=0x00
vendor = 'Realtek Semiconductor Co., Ltd.'
device = 'RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller'
class = network
subclass = ethernet
I solved it, by commenting out re_txeof in re_tick function in if_re.c.
In my oppinion its a timing issue during high load situtations, blocking the
interrupt/dma of the device.
And of course the job is done by watchdog function after 5 timer ticks.
static void
re_tick(void *xsc)
{
struct rl_softc *sc;
struct mii_data *mii;
sc = xsc;
RL_LOCK_ASSERT(sc);
mii = device_get_softc(sc->rl_miibus);
mii_tick(mii);
if ((sc->rl_flags & RL_FLAG_LINK) == 0)
re_miibus_statchg(sc->rl_dev);
/*
* Reclaim transmitted frames here. Technically it is not
* necessary to do here but it ensures periodic reclamation
* regardless of Tx completion interrupt which seems to be
* lost on PCIe based controllers under certain situations.
*/
// re_txeof(sc);
re_watchdog(sc);
callout_reset(&sc->rl_stat_callout, hz, re_tick, sc);
}
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-net
mailing list