be2net: Display RoCE specific counters in ethtool -S

SkyHawk-R can support RoCE. Add code to display RoCE specific
counters maintained in hardware.

Signed-off-by: Ajit Khaparde <ajit.khaparde@emulex.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
Ajit Khaparde 2013-10-03 16:16:50 -05:00 committed by David S. Miller
parent 61000861e8
commit 461ae37922
3 changed files with 19 additions and 1 deletions

View File

@ -325,6 +325,11 @@ struct be_drv_stats {
u32 rx_input_fifo_overflow_drop; u32 rx_input_fifo_overflow_drop;
u32 pmem_fifo_overflow_drop; u32 pmem_fifo_overflow_drop;
u32 jabber_events; u32 jabber_events;
u32 rx_roce_bytes_lsd;
u32 rx_roce_bytes_msd;
u32 rx_roce_frames;
u32 roce_drops_payload_len;
u32 roce_drops_crc;
}; };
struct be_vf_cfg { struct be_vf_cfg {

View File

@ -116,7 +116,12 @@ static const struct be_ethtool_stat et_stats[] = {
{DRVSTAT_INFO(rx_drops_mtu)}, {DRVSTAT_INFO(rx_drops_mtu)},
/* Number of packets dropped due to random early drop function */ /* Number of packets dropped due to random early drop function */
{DRVSTAT_INFO(eth_red_drops)}, {DRVSTAT_INFO(eth_red_drops)},
{DRVSTAT_INFO(be_on_die_temperature)} {DRVSTAT_INFO(be_on_die_temperature)},
{DRVSTAT_INFO(rx_roce_bytes_lsd)},
{DRVSTAT_INFO(rx_roce_bytes_msd)},
{DRVSTAT_INFO(rx_roce_frames)},
{DRVSTAT_INFO(roce_drops_payload_len)},
{DRVSTAT_INFO(roce_drops_crc)}
}; };
#define ETHTOOL_STATS_NUM ARRAY_SIZE(et_stats) #define ETHTOOL_STATS_NUM ARRAY_SIZE(et_stats)

View File

@ -474,6 +474,14 @@ static void populate_be_v2_stats(struct be_adapter *adapter)
drvs->rx_drops_no_tpre_descr = rxf_stats->rx_drops_no_tpre_descr; drvs->rx_drops_no_tpre_descr = rxf_stats->rx_drops_no_tpre_descr;
drvs->rx_drops_too_many_frags = rxf_stats->rx_drops_too_many_frags; drvs->rx_drops_too_many_frags = rxf_stats->rx_drops_too_many_frags;
adapter->drv_stats.eth_red_drops = pmem_sts->eth_red_drops; adapter->drv_stats.eth_red_drops = pmem_sts->eth_red_drops;
if (be_roce_supported(adapter)) {
drvs->rx_roce_bytes_lsd = port_stats->roce_bytes_received_lsd;
drvs->rx_roce_bytes_msd = port_stats->roce_bytes_received_msd;
drvs->rx_roce_frames = port_stats->roce_frames_received;
drvs->roce_drops_crc = port_stats->roce_drops_crc;
drvs->roce_drops_payload_len =
port_stats->roce_drops_payload_len;
}
} }
static void populate_lancer_stats(struct be_adapter *adapter) static void populate_lancer_stats(struct be_adapter *adapter)