linux/drivers/net/ethernet/chelsio/cxgb4
Bjorn Helgaas 57d12fc6f7 cxgb4: 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.

The dmesg change is:

  - PCIe link speed is %s, device supports %s
  - PCIe link width is x%d, device supports x%d
  + %u.%03u Gb/s available PCIe bandwidth (%s x%d link)

or, if the device is capable of better performance than is available in the
current slot:

  - A slot with more lanes and/or higher speed is suggested for optimal performance.
  + %u.%03u Gb/s available PCIe bandwidth, limited by %s x%d link at %s (capable of %u.%03u Gb/s with %s x%d link)

Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
2018-05-25 17:29:49 -05:00
..
clip_tbl.c drivers, net, ethernet: convert clip_entry.refcnt from atomic_t to refcount_t 2017-10-22 02:22:38 +01:00
clip_tbl.h drivers, net, ethernet: convert clip_entry.refcnt from atomic_t to refcount_t 2017-10-22 02:22:38 +01:00
cudbg_common.c cxgb4: update dump collection logic to use compression 2018-01-19 14:56:32 -05:00
cudbg_entity.h cxgb4: collect TX rate limit info in UP CIM logs 2018-01-03 10:57:59 -05:00
cudbg_if.h cxgb4: use zlib deflate to compress firmware dump 2018-01-19 14:56:32 -05:00
cudbg_lib_common.h cxgb4: use zlib deflate to compress firmware dump 2018-01-19 14:56:32 -05:00
cudbg_lib.c Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net 2018-02-19 18:46:11 -05:00
cudbg_lib.h cxgb4: collect PCIe configuration logs 2017-12-08 14:31:50 -05:00
cudbg_zlib.c cxgb4: properly initialize variables 2018-01-24 10:56:59 -05:00
cudbg_zlib.h cxgb4: enable ZLIB_DEFLATE when building cxgb4 2018-01-24 10:56:59 -05:00
cxgb4_cudbg.c cxgb4: fix trailing zero in CIM LA dump 2018-02-16 15:30:36 -05:00
cxgb4_cudbg.h cxgb4: use zlib deflate to compress firmware dump 2018-01-19 14:56:32 -05:00
cxgb4_dcb.c cxgb4: do DCB state reset in couple of places 2017-09-25 20:28:14 -07:00
cxgb4_dcb.h cxgb4: do DCB state reset in couple of places 2017-09-25 20:28:14 -07:00
cxgb4_debugfs.c ethernet: Use octal not symbolic permissions 2018-03-26 12:07:49 -04:00
cxgb4_debugfs.h
cxgb4_ethtool.c cxgb4/cxgb4vf: check fw caps to set link mode mask 2018-03-12 11:05:08 -04:00
cxgb4_fcoe.c
cxgb4_fcoe.h
cxgb4_filter.c cxgb4: remove dead code when allocating filter 2018-03-02 09:49:34 -05:00
cxgb4_filter.h cxgb4: add support to create hash-filters via tc-flower offload 2017-11-01 22:06:03 +09:00
cxgb4_main.c cxgb4: Report PCIe link properties with pcie_print_link_status() 2018-05-25 17:29:49 -05:00
cxgb4_ptp.c cxgb4: ptp_clock_register() returns error pointers 2017-07-14 08:18:51 -07:00
cxgb4_ptp.h
cxgb4_tc_flower.c cxgb4: make symbol pedits static 2018-01-24 16:58:16 -05:00
cxgb4_tc_flower.h cxgb4: convert flower table to use rhashtable 2017-11-01 22:06:03 +09:00
cxgb4_tc_u32_parse.h
cxgb4_tc_u32.c act_mirred: get rid of tcfm_ifindex from struct tcf_mirred 2017-12-06 14:50:13 -05:00
cxgb4_tc_u32.h net: sched: push cls related args into cls_common structure 2017-08-07 09:42:37 -07:00
cxgb4_uld.c cxgb4: Support firmware rdma write completion work request. 2018-03-22 11:59:11 -04:00
cxgb4_uld.h cxgb4: LLD driver changes to support TLS 2018-03-31 23:37:32 -04:00
cxgb4.h cxgb4: Support firmware rdma write completion work request. 2018-03-22 11:59:11 -04:00
l2t.c neigh: make strucrt neigh_table::entry_size unsigned int 2017-09-25 20:36:17 -07:00
l2t.h
Makefile cxgb4: Add support to initialise/read SRQ entries 2018-03-22 11:59:11 -04:00
sched.c cxgb4: fix memory leak 2017-09-05 14:27:50 -07:00
sched.h cxgb4: increase max tx rate limit to 100 Gbps 2018-03-09 12:57:35 -05:00
sge.c cxgb4: LLD driver changes to support TLS 2018-03-31 23:37:32 -04:00
smt.c cxgb4: introduce SMT ops to prepare for SMAC rewrite support 2017-10-20 13:06:53 +01:00
smt.h cxgb4: introduce SMT ops to prepare for SMAC rewrite support 2017-10-20 13:06:53 +01:00
srq.c cxgb4: Add support to initialise/read SRQ entries 2018-03-22 11:59:11 -04:00
srq.h cxgb4: Add support to initialise/read SRQ entries 2018-03-22 11:59:11 -04:00
t4_chip_type.h
t4_hw.c cxgb4: support new ISSI flash parts 2018-03-25 21:08:32 -04:00
t4_hw.h cxgb4: RSS table is 4k for T6 2017-12-19 14:14:19 -05:00
t4_msg.h cxgb4: Inline TLS FW Interface 2018-03-31 23:37:32 -04:00
t4_pci_id_tbl.h cxgb4: add new T5 and T6 device id's 2017-12-21 15:12:52 -05:00
t4_regs.h cxgb4: Inline TLS FW Interface 2018-03-31 23:37:32 -04:00
t4_tcb.h cxgb4: add support to delete hash filter 2017-11-01 22:06:03 +09:00
t4_values.h
t4fw_api.h cxgb4: Inline TLS FW Interface 2018-03-31 23:37:32 -04:00
t4fw_version.h cxgb4: update latest firmware version supported 2017-11-04 22:34:09 +09:00