diff options
author | jhb <jhb@FreeBSD.org> | 2012-09-26 18:11:43 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2012-09-26 18:11:43 +0000 |
commit | 085c4798a8326c7cdf744bd626bec7ccc28b8588 (patch) | |
tree | aa7b1bca87c2e1fc7f133dcb22223b170d48508f /sys/dev/ixgbe/ixgbe.h | |
parent | bb8696a82ce80cc52516313a1c9221c8a31b3425 (diff) | |
download | FreeBSD-src-085c4798a8326c7cdf744bd626bec7ccc28b8588.zip FreeBSD-src-085c4798a8326c7cdf744bd626bec7ccc28b8588.tar.gz |
Merge similar fixes from 223198 from igb to ixgbe:
- Use a dedicated task to handle deferred transmits from the if_transmit
method instead of reusing the existing per-queue interrupt task.
Reusing the per-queue interrupt task could result in both an interrupt
thread and the taskqueue thread trying to handle received packets on a
single queue resulting in out-of-order packet processing and lock
contention.
- Don't define ixgbe_start() at all where if_transmit is used.
Tested by: Vijay Singh
Reviewed by: jfv
MFC after: 2 weeks
Diffstat (limited to 'sys/dev/ixgbe/ixgbe.h')
-rw-r--r-- | sys/dev/ixgbe/ixgbe.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/dev/ixgbe/ixgbe.h b/sys/dev/ixgbe/ixgbe.h index d167306..f2b40df 100644 --- a/sys/dev/ixgbe/ixgbe.h +++ b/sys/dev/ixgbe/ixgbe.h @@ -314,6 +314,7 @@ struct tx_ring { char mtx_name[16]; #if __FreeBSD_version >= 800000 struct buf_ring *br; + struct task txq_task; #endif #ifdef IXGBE_FDIR u16 atr_sample; |