linux/drivers/net/ethernet/intel/ixgbe
Alexander Duyck adc810900a ixgbe: Refactor busy poll socket code to address multiple issues
This change addresses several issues in the current ixgbe implementation of
busy poll sockets.

First was the fact that it was possible for frames to be delivered out of
order if they were held in GRO.  This is addressed by flushing the GRO buffers
before releasing the q_vector back to the idle state.

The other issue was the fact that we were having to take a spinlock on
changing the state to and from idle.  To resolve this I have replaced the
state value with an atomic and use atomic_cmpxchg to change the value from
idle, and a simple atomic set to restore it back to idle after we have
acquired it.  This allows us to only use a locked operation on acquiring the
vector without a need for a locked operation to release it.

Signed-off-by: Alexander Duyck <alexander.h.duyck@intel.com>
Tested-by: Phil Schmitt <phillip.j.schmitt@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2014-09-12 00:40:10 -07:00
..
ixgbe.h ixgbe: Refactor busy poll socket code to address multiple issues 2014-09-12 00:40:10 -07:00
ixgbe_82598.c ixgbe: Make return values more direct 2014-07-25 19:58:36 -07:00
ixgbe_82599.c ixgbe: Make return values more direct 2014-07-25 19:58:36 -07:00
ixgbe_common.c ixgbe: Make return values more direct 2014-07-25 19:58:36 -07:00
ixgbe_common.h ixgbe: clean up checkpatch warnings about CODE_INDENT and LEADING_SPACE 2014-05-23 05:24:04 -07:00
ixgbe_dcb.c ixgbe: Make return values more direct 2014-07-25 19:58:36 -07:00
ixgbe_dcb.h IXGBE: Set the SW prio_tc values at initialization to the HW setting. 2013-05-21 03:14:21 -07:00
ixgbe_dcb_82598.c ixgbe: convert low_water into an array 2014-04-22 23:07:11 -07:00
ixgbe_dcb_82598.h ixgbe: update date to 2013 2013-02-05 01:44:13 -08:00
ixgbe_dcb_82599.c ixgbe: convert low_water into an array 2014-04-22 23:07:11 -07:00
ixgbe_dcb_82599.h ixgbe: clean up checkpatch warnings about CODE_INDENT and LEADING_SPACE 2014-05-23 05:24:04 -07:00
ixgbe_dcb_nl.c ixgbe: Make return values more direct 2014-07-25 19:58:36 -07:00
ixgbe_debugfs.c ixgbe: don't check NULL for debugfs_remove_recursive 2014-05-23 05:28:24 -07:00
ixgbe_ethtool.c ixgbe: Resolve warnings produced in W=2 builds 2014-09-12 00:08:44 -07:00
ixgbe_fcoe.c ixgbe: Make return values more direct 2014-07-25 19:58:36 -07:00
ixgbe_fcoe.h ixgbe: convert low_water into an array 2014-04-22 23:07:11 -07:00
ixgbe_lib.c ixgbe: Refactor busy poll socket code to address multiple issues 2014-09-12 00:40:10 -07:00
ixgbe_main.c ixgbe: Drop Rx alloc at end of Rx cleanup 2014-09-12 00:30:13 -07:00
ixgbe_mbx.c ixgbe: Make return values more direct 2014-07-25 19:58:36 -07:00
ixgbe_mbx.h ixgbe: clean up checkpatch warnings about CODE_INDENT and LEADING_SPACE 2014-05-23 05:24:04 -07:00
ixgbe_phy.c ixgbe: Make return values more direct 2014-07-25 19:58:36 -07:00
ixgbe_phy.h ixgbe: clean up checkpatch warnings about CODE_INDENT and LEADING_SPACE 2014-05-23 05:24:04 -07:00
ixgbe_ptp.c ixgbe: change PTP NSECS_PER_SEC to IXGBE_PTP_PPS_HALF_SECOND 2014-07-01 02:48:39 -07:00
ixgbe_sriov.c ixgbe: limit combined total of macvlan and SR-IOV VFs 2014-09-04 01:38:33 -07:00
ixgbe_sriov.h net-next:v4: Add support to configure SR-IOV VF minimum and maximum Tx rate through ip tool. 2014-05-23 15:04:02 -04:00
ixgbe_sysfs.c ixgbe: add Linux NICS mailing list to contact info 2014-03-12 19:05:30 -07:00
ixgbe_type.h ixgbe: reset interface on link loss with pending Tx work from the VF 2014-09-04 01:38:32 -07:00
ixgbe_x540.c ixgbe: Make return values more direct 2014-07-25 19:58:36 -07:00
Makefile ixgbe: update date to 2013 2013-02-05 01:44:13 -08:00