Module Name: src Committed By: knakahara Date: Mon Jan 18 09:09:04 UTC 2021
Modified Files: src/sys/dev/pci/ixgbe: ix_txrx.c Log Message: Fix ixg(4) Rx interrupt stall when Rx buffers are exhausted. Current ixgbe_rxeof() implementation calls ixgbe_refresh_mbufs()(and ixgbe_getjcl()) after ixgbe_rx_input()(and if_percpuq_enqueue()). And ixg(4) uses its own m_ext structure. That causes Rx interrupt stall when Rx buffers are exhausted. e.g. TCP iperf3 with large windows size. Furthermore, Rx descriptor problem has occurred after stoppping the load. To fix that problem, ixgbe_rxeof() must call ixgbe_getjcl() before ixgbe_rx_input(), and must discard the new packet when ixgbe_getjcl() fails. By the way, ixg(4) should use MCLGET() instead of own m_ext structure. ok'ed by msaitoh@n.o, thanks. To generate a diff of this commit: cvs rdiff -u -r1.63 -r1.64 src/sys/dev/pci/ixgbe/ix_txrx.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.