Subject: Should we report bus width/speed via ethtool?

From: Ben Greear <[email-masked]>
Date: Wed, 05 Dec 2012 13:35:01 -0800

It seems the only way to get the current pci-e bus speed & width
in ixgbe (and probably many other NICs) is by parsing output
of lspci -vvv.

I'd personally find it easier if this info were available via
ethtool API.

Any opinions on adding this info?  I was thinking something like:

struct ethtool_bus_speed {
   u32 cur_speed; /* millions of transactions per sec, or Mhz for older PCI busses */
   u32 cur_width; /* bus width */

   /* Maximum values supported by NIC */
   u32 max_speed;
   u32 max_width;

   #define BELOW_OPTIMAL_SPEED 0x1  /* Set if NIC cannot run at max speed with current bus settings */
   u32 flags;

   /* Plenty of space to grow, set to zero until defined */
   u32 reserved[32];
};

This could also fit in the reserved space of the
struct ethtool_drvinfo if that were preferred (and
width and flags could be a u16 to save a bit of space
in that case).

Any opinions...or suggestions for other interesting bits to add?

Thanks,
Ben

-- 
Ben Greear <[email-masked]>
Candela Technologies Inc  http://www.candelatech.com