[Bug 166724] [re] if_re watchdog timeout

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Wed May 2 15:51:50 UTC 2018


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

Arto Pekkanen <aksyom at gmail.com> changed:

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

--- Comment #23 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.

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


More information about the freebsd-net mailing list