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

Arto Pekkanen <aks...@gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |aks...@gmail.com

--- Comment #22 from Arto Pekkanen <aks...@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.
_______________________________________________
freebsd-net@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to