linux/drivers/net/ethernet/intel
Jacob Keller dfc4ff6446 i40e: don't hold RTNL lock for the entire reset
We recently refactored i40e_do_reset() and its friends to be able to
hold the RTNL lock only for the portions that actually need to be
protected. However, a separate refactoring added several new callers of
these functions during the PCIe error recovery and suspend/resume
cycles.

When merging the changes together, it was not noticed that we could
reduce the RTNL scope by letting the reset function handle the lock
itself, as previously it was not possible.

Fix this by replacing these call sites to indicate that the reset
function should handle its own lock. This enables multiple PFs to reset
or resume simultaneously without serializing the resets via the RTNL
lock. The end result is that on systems with lots of PFs and VFs the
resets don't stall waiting for each other to finish.

It is probable that we can also do the same for i40e_do_reset_safe, but
this author did not research that change carefully enough to be
confident.

Signed-off-by: Jacob Keller <jacob.e.keller@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
2017-06-20 18:17:12 -07:00
..
e1000 networking: introduce and use skb_put_data() 2017-06-16 11:48:37 -04:00
e1000e e1000e: Undo e1000e_pm_freeze if __e1000_shutdown fails 2017-06-07 20:45:58 -07:00
fm10k net: propagate tc filter chain index down the ndo_setup_tc call 2017-06-08 09:55:53 -04:00
i40e i40e: don't hold RTNL lock for the entire reset 2017-06-20 18:17:12 -07:00
i40evf i40e/i40evf: update WOL and I40E_AQC_ADDR_VALID_MASK flags 2017-06-20 18:17:10 -07:00
igb igb: make a few local functions static 2017-06-07 19:05:42 -07:00
igbvf igbvf: Use net_device_stats from struct net_device 2017-04-20 16:32:45 -07:00
ixgb ixgb: Omit private ndo_get_stats function 2017-04-20 16:18:45 -07:00
ixgbe bpf: ixgbe: Report bpf_prog ID during XDP_QUERY_PROG 2017-06-16 11:58:37 -04:00
ixgbevf ixgbevf: Bump version number 2017-06-13 16:11:48 -07:00
e100.c net/{mii, smsc}: Make mii_ethtool_get_link_ksettings and smc_netdev_get_ecmd return void 2017-06-05 11:00:42 -04:00
Kconfig i40evf: Add support for Adaptive Virtual Function 2017-06-01 14:30:02 -07:00
Makefile