linux/drivers/net/ethernet/intel/fm10k
Bjorn Helgaas 170648fda9 fm10k: Report PCIe link properties with pcie_print_link_status()
Previously the driver used pcie_get_minimum_link() to warn when the NIC
is in a slot that can't supply as much bandwidth as the NIC could use.

pcie_get_minimum_link() can be misleading because it finds the slowest link
and the narrowest link (which may be different links) without considering
the total bandwidth of each link.  For a path with a 16 GT/s x1 link and a
2.5 GT/s x16 link, it returns 2.5 GT/s x1, which corresponds to 250 MB/s of
bandwidth, not the true available bandwidth of about 1969 MB/s for a
16 GT/s x1 link.

Use pcie_print_link_status() to report PCIe link speed and possible
limitations instead of implementing this in the driver itself.  This finds
the slowest link in the path to the device by computing the total bandwidth
of each link and compares that with the capabilities of the device.

Note that the driver previously used dev_warn() to suggest using a
different slot, but pcie_print_link_status() uses dev_info() because if the
platform has no faster slot available, the user can't do anything about the
warning and may not want to be bothered with it.

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Acked-by: Jacob Keller <jacob.e.keller@intel.com>
2018-04-03 08:58:34 -05:00
..
fm10k_common.c fm10k: stop spurious link down messages when Tx FIFO is full 2017-10-02 07:40:31 -07:00
fm10k_common.h fm10k: prefer READ_ONCE instead of ACCESS_ONCE 2016-08-29 01:31:03 -07:00
fm10k_dcbnl.c fm10k: consistently use Intel(R) for driver names 2016-04-20 23:07:34 -07:00
fm10k_debugfs.c fm10k: Use seq_putc() in fm10k_dbg_desc_break() 2017-10-02 07:28:57 -07:00
fm10k_ethtool.c fm10k: future-proof state bitmaps using DECLARE_BITMAP 2017-04-05 22:47:30 -07:00
fm10k_iov.c fm10k: cleanup unnecessary parenthesis in fm10k_iov.c 2018-01-24 14:17:15 -08:00
fm10k_main.c ixgbe/fm10k: Record macvlan stats instead of Rx queue for macvlan offloaded rings 2018-01-12 08:20:19 -08:00
fm10k_mbx.c fm10k: fix typos on fall through comments 2017-10-02 07:42:15 -07:00
fm10k_mbx.h fm10k: Reset mailbox global interrupts 2016-07-20 15:22:10 -07:00
fm10k_netdev.c fm10k: clarify action when updating the VLAN table 2018-01-24 14:23:27 -08:00
fm10k_pci.c fm10k: Report PCIe link properties with pcie_print_link_status() 2018-04-03 08:58:34 -05:00
fm10k_pf.c fm10k: correct typo in fm10k_pf.c 2018-01-24 14:22:18 -08:00
fm10k_pf.h fm10k: use the MAC/VLAN queue for VF<->PF MAC/VLAN requests 2017-10-03 08:39:17 -07:00
fm10k_tlv.c fm10k: consistently use Intel(R) for driver names 2016-04-20 23:07:34 -07:00
fm10k_tlv.h fm10k: consistently use Intel(R) for driver names 2016-04-20 23:07:34 -07:00
fm10k_type.h fm10k: add support for Rx offloads on one Geneve tunnel 2016-08-29 01:31:03 -07:00
fm10k_vf.c fm10k: don't stop reset due to FM10K_ERR_REQUESTS_PENDING 2016-07-20 15:22:11 -07:00
fm10k_vf.h fm10k: consistently use Intel(R) for driver names 2016-04-20 23:07:34 -07:00
fm10k.h fm10k: fix mis-ordered parameters in declaration for .ndo_set_vf_bw 2017-10-03 09:00:04 -07:00
Makefile fm10k: consistently use Intel(R) for driver names 2016-04-20 23:07:34 -07:00