[Bug 208205] re0 watchdog timeout

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Wed May 2 15:53:22 UTC 2018


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=208205

Arto Pekkanen <aksyom at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |aksyom at gmail.com

--- Comment #22 from Arto Pekkanen <aksyom at gmail.com> ---
I managed to solve this issue by disabling MSI and MSI-X. Put the following
lines into /boot/loader.conf

hw.re.msi_disable="1"
hw.re.msix_disable="1"

You see, the MSI/MSI-X interrupt processing supposedly eliminates the need to
perform an extra read from device register after receiving an interrupt which
tells that a DMA write is finished. However, there is some kind of problem
either in the driver or the chip itself in the way it handles these interrupts.

By disabling MSI and MSI-X, the driver switches to using the older interrupt
filter handler, and thus probably performs and extra read from some device
register to wait for the DMA transfer to memory to be ready (according to
wikipedia, when using legacy interrupts this is the only way to ensure the DMA
transfer wasn't buffered by the chipset etc).

So, I would suggest everybody watching this thread to try if disabling MSI and
MSI-X on their system helps. Might not apply to all Realtek NICs, but on my
machine this workaround is valid.

PS. the performance is still horrible when transferring to and from the
machine, but at least now it doesn't hang sporadically.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-net mailing list