Skip to content

Commit e1df520

Browse files
Shradha GuptaPaolo Abeni
authored andcommitted
net :mana :Add remaining GDMA stats for MANA to ethtool
Extend performance counter stats in 'ethtool -S <interface>' for MANA VF to include all GDMA stat counter. Tested-on: Ubuntu22 Testcases: 1. LISA testcase: PERF-NETWORK-TCP-THROUGHPUT-MULTICONNECTION-NTTTCP-Synthetic 2. LISA testcase: PERF-NETWORK-TCP-THROUGHPUT-MULTICONNECTION-NTTTCP-SRIOV Signed-off-by: Shradha Gupta <[email protected]> Link: https://lore.kernel.org/r/[email protected] Signed-off-by: Paolo Abeni <[email protected]>
1 parent dba1b8a commit e1df520

File tree

3 files changed

+120
-15
lines changed

3 files changed

+120
-15
lines changed

drivers/net/ethernet/microsoft/mana/mana_en.c

Lines changed: 47 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2385,13 +2385,33 @@ void mana_query_gf_stats(struct mana_port_context *apc)
23852385

23862386
mana_gd_init_req_hdr(&req.hdr, MANA_QUERY_GF_STAT,
23872387
sizeof(req), sizeof(resp));
2388-
req.req_stats = STATISTICS_FLAGS_HC_TX_BYTES |
2388+
req.req_stats = STATISTICS_FLAGS_RX_DISCARDS_NO_WQE |
2389+
STATISTICS_FLAGS_RX_ERRORS_VPORT_DISABLED |
2390+
STATISTICS_FLAGS_HC_RX_BYTES |
2391+
STATISTICS_FLAGS_HC_RX_UCAST_PACKETS |
2392+
STATISTICS_FLAGS_HC_RX_UCAST_BYTES |
2393+
STATISTICS_FLAGS_HC_RX_MCAST_PACKETS |
2394+
STATISTICS_FLAGS_HC_RX_MCAST_BYTES |
2395+
STATISTICS_FLAGS_HC_RX_BCAST_PACKETS |
2396+
STATISTICS_FLAGS_HC_RX_BCAST_BYTES |
2397+
STATISTICS_FLAGS_TX_ERRORS_GF_DISABLED |
2398+
STATISTICS_FLAGS_TX_ERRORS_VPORT_DISABLED |
2399+
STATISTICS_FLAGS_TX_ERRORS_INVAL_VPORT_OFFSET_PACKETS |
2400+
STATISTICS_FLAGS_TX_ERRORS_VLAN_ENFORCEMENT |
2401+
STATISTICS_FLAGS_TX_ERRORS_ETH_TYPE_ENFORCEMENT |
2402+
STATISTICS_FLAGS_TX_ERRORS_SA_ENFORCEMENT |
2403+
STATISTICS_FLAGS_TX_ERRORS_SQPDID_ENFORCEMENT |
2404+
STATISTICS_FLAGS_TX_ERRORS_CQPDID_ENFORCEMENT |
2405+
STATISTICS_FLAGS_TX_ERRORS_MTU_VIOLATION |
2406+
STATISTICS_FLAGS_TX_ERRORS_INVALID_OOB |
2407+
STATISTICS_FLAGS_HC_TX_BYTES |
23892408
STATISTICS_FLAGS_HC_TX_UCAST_PACKETS |
23902409
STATISTICS_FLAGS_HC_TX_UCAST_BYTES |
23912410
STATISTICS_FLAGS_HC_TX_MCAST_PACKETS |
23922411
STATISTICS_FLAGS_HC_TX_MCAST_BYTES |
23932412
STATISTICS_FLAGS_HC_TX_BCAST_PACKETS |
2394-
STATISTICS_FLAGS_HC_TX_BCAST_BYTES;
2413+
STATISTICS_FLAGS_HC_TX_BCAST_BYTES |
2414+
STATISTICS_FLAGS_TX_ERRORS_GDMA_ERROR;
23952415

23962416
err = mana_send_request(apc->ac, &req, sizeof(req), &resp,
23972417
sizeof(resp));
@@ -2407,13 +2427,38 @@ void mana_query_gf_stats(struct mana_port_context *apc)
24072427
return;
24082428
}
24092429

2430+
apc->eth_stats.hc_rx_discards_no_wqe = resp.rx_discards_nowqe;
2431+
apc->eth_stats.hc_rx_err_vport_disabled = resp.rx_err_vport_disabled;
2432+
apc->eth_stats.hc_rx_bytes = resp.hc_rx_bytes;
2433+
apc->eth_stats.hc_rx_ucast_pkts = resp.hc_rx_ucast_pkts;
2434+
apc->eth_stats.hc_rx_ucast_bytes = resp.hc_rx_ucast_bytes;
2435+
apc->eth_stats.hc_rx_bcast_pkts = resp.hc_rx_bcast_pkts;
2436+
apc->eth_stats.hc_rx_bcast_bytes = resp.hc_rx_bcast_bytes;
2437+
apc->eth_stats.hc_rx_mcast_pkts = resp.hc_rx_mcast_pkts;
2438+
apc->eth_stats.hc_rx_mcast_bytes = resp.hc_rx_mcast_bytes;
2439+
apc->eth_stats.hc_tx_err_gf_disabled = resp.tx_err_gf_disabled;
2440+
apc->eth_stats.hc_tx_err_vport_disabled = resp.tx_err_vport_disabled;
2441+
apc->eth_stats.hc_tx_err_inval_vportoffset_pkt =
2442+
resp.tx_err_inval_vport_offset_pkt;
2443+
apc->eth_stats.hc_tx_err_vlan_enforcement =
2444+
resp.tx_err_vlan_enforcement;
2445+
apc->eth_stats.hc_tx_err_eth_type_enforcement =
2446+
resp.tx_err_ethtype_enforcement;
2447+
apc->eth_stats.hc_tx_err_sa_enforcement = resp.tx_err_SA_enforcement;
2448+
apc->eth_stats.hc_tx_err_sqpdid_enforecement =
2449+
resp.tx_err_SQPDID_enforcement;
2450+
apc->eth_stats.hc_tx_err_cqpdid_enforcement =
2451+
resp.tx_err_CQPDID_enforcement;
2452+
apc->eth_stats.hc_tx_err_mtu_violation = resp.tx_err_mtu_violation;
2453+
apc->eth_stats.hc_tx_err_inval_oob = resp.tx_err_inval_oob;
24102454
apc->eth_stats.hc_tx_bytes = resp.hc_tx_bytes;
24112455
apc->eth_stats.hc_tx_ucast_pkts = resp.hc_tx_ucast_pkts;
24122456
apc->eth_stats.hc_tx_ucast_bytes = resp.hc_tx_ucast_bytes;
24132457
apc->eth_stats.hc_tx_bcast_pkts = resp.hc_tx_bcast_pkts;
24142458
apc->eth_stats.hc_tx_bcast_bytes = resp.hc_tx_bcast_bytes;
24152459
apc->eth_stats.hc_tx_mcast_pkts = resp.hc_tx_mcast_pkts;
24162460
apc->eth_stats.hc_tx_mcast_bytes = resp.hc_tx_mcast_bytes;
2461+
apc->eth_stats.hc_tx_err_gdma = resp.tx_err_gdma;
24172462
}
24182463

24192464
static int mana_init_port(struct net_device *ndev)

drivers/net/ethernet/microsoft/mana/mana_ethtool.c

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,46 @@ static const struct {
1313
} mana_eth_stats[] = {
1414
{"stop_queue", offsetof(struct mana_ethtool_stats, stop_queue)},
1515
{"wake_queue", offsetof(struct mana_ethtool_stats, wake_queue)},
16+
{"hc_rx_discards_no_wqe", offsetof(struct mana_ethtool_stats,
17+
hc_rx_discards_no_wqe)},
18+
{"hc_rx_err_vport_disabled", offsetof(struct mana_ethtool_stats,
19+
hc_rx_err_vport_disabled)},
20+
{"hc_rx_bytes", offsetof(struct mana_ethtool_stats, hc_rx_bytes)},
21+
{"hc_rx_ucast_pkts", offsetof(struct mana_ethtool_stats,
22+
hc_rx_ucast_pkts)},
23+
{"hc_rx_ucast_bytes", offsetof(struct mana_ethtool_stats,
24+
hc_rx_ucast_bytes)},
25+
{"hc_rx_bcast_pkts", offsetof(struct mana_ethtool_stats,
26+
hc_rx_bcast_pkts)},
27+
{"hc_rx_bcast_bytes", offsetof(struct mana_ethtool_stats,
28+
hc_rx_bcast_bytes)},
29+
{"hc_rx_mcast_pkts", offsetof(struct mana_ethtool_stats,
30+
hc_rx_mcast_pkts)},
31+
{"hc_rx_mcast_bytes", offsetof(struct mana_ethtool_stats,
32+
hc_rx_mcast_bytes)},
33+
{"hc_tx_err_gf_disabled", offsetof(struct mana_ethtool_stats,
34+
hc_tx_err_gf_disabled)},
35+
{"hc_tx_err_vport_disabled", offsetof(struct mana_ethtool_stats,
36+
hc_tx_err_vport_disabled)},
37+
{"hc_tx_err_inval_vportoffset_pkt",
38+
offsetof(struct mana_ethtool_stats,
39+
hc_tx_err_inval_vportoffset_pkt)},
40+
{"hc_tx_err_vlan_enforcement", offsetof(struct mana_ethtool_stats,
41+
hc_tx_err_vlan_enforcement)},
42+
{"hc_tx_err_eth_type_enforcement",
43+
offsetof(struct mana_ethtool_stats, hc_tx_err_eth_type_enforcement)},
44+
{"hc_tx_err_sa_enforcement", offsetof(struct mana_ethtool_stats,
45+
hc_tx_err_sa_enforcement)},
46+
{"hc_tx_err_sqpdid_enforecement",
47+
offsetof(struct mana_ethtool_stats, hc_tx_err_sqpdid_enforecement)},
48+
{"hc_tx_err_cqpdid_enforcement",
49+
offsetof(struct mana_ethtool_stats, hc_tx_err_cqpdid_enforcement)},
50+
{"hc_tx_err_mtu_violation", offsetof(struct mana_ethtool_stats,
51+
hc_tx_err_mtu_violation)},
52+
{"hc_tx_err_inval_oob", offsetof(struct mana_ethtool_stats,
53+
hc_tx_err_inval_oob)},
54+
{"hc_tx_err_gdma", offsetof(struct mana_ethtool_stats,
55+
hc_tx_err_gdma)},
1656
{"hc_tx_bytes", offsetof(struct mana_ethtool_stats, hc_tx_bytes)},
1757
{"hc_tx_ucast_pkts", offsetof(struct mana_ethtool_stats,
1858
hc_tx_ucast_pkts)},

include/net/mana/mana.h

Lines changed: 33 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -353,13 +353,33 @@ struct mana_tx_qp {
353353
struct mana_ethtool_stats {
354354
u64 stop_queue;
355355
u64 wake_queue;
356+
u64 hc_rx_discards_no_wqe;
357+
u64 hc_rx_err_vport_disabled;
358+
u64 hc_rx_bytes;
359+
u64 hc_rx_ucast_pkts;
360+
u64 hc_rx_ucast_bytes;
361+
u64 hc_rx_bcast_pkts;
362+
u64 hc_rx_bcast_bytes;
363+
u64 hc_rx_mcast_pkts;
364+
u64 hc_rx_mcast_bytes;
365+
u64 hc_tx_err_gf_disabled;
366+
u64 hc_tx_err_vport_disabled;
367+
u64 hc_tx_err_inval_vportoffset_pkt;
368+
u64 hc_tx_err_vlan_enforcement;
369+
u64 hc_tx_err_eth_type_enforcement;
370+
u64 hc_tx_err_sa_enforcement;
371+
u64 hc_tx_err_sqpdid_enforecement;
372+
u64 hc_tx_err_cqpdid_enforcement;
373+
u64 hc_tx_err_mtu_violation;
374+
u64 hc_tx_err_inval_oob;
356375
u64 hc_tx_bytes;
357376
u64 hc_tx_ucast_pkts;
358377
u64 hc_tx_ucast_bytes;
359378
u64 hc_tx_bcast_pkts;
360379
u64 hc_tx_bcast_bytes;
361380
u64 hc_tx_mcast_pkts;
362381
u64 hc_tx_mcast_bytes;
382+
u64 hc_tx_err_gdma;
363383
u64 tx_cqe_err;
364384
u64 tx_cqe_unknown_type;
365385
u64 rx_coalesced_err;
@@ -602,8 +622,8 @@ struct mana_query_gf_stat_resp {
602622
struct gdma_resp_hdr hdr;
603623
u64 reported_stats;
604624
/* rx errors/discards */
605-
u64 discard_rx_nowqe;
606-
u64 err_rx_vport_disabled;
625+
u64 rx_discards_nowqe;
626+
u64 rx_err_vport_disabled;
607627
/* rx bytes/packets */
608628
u64 hc_rx_bytes;
609629
u64 hc_rx_ucast_pkts;
@@ -613,16 +633,16 @@ struct mana_query_gf_stat_resp {
613633
u64 hc_rx_mcast_pkts;
614634
u64 hc_rx_mcast_bytes;
615635
/* tx errors */
616-
u64 err_tx_gf_disabled;
617-
u64 err_tx_vport_disabled;
618-
u64 err_tx_inval_vport_offset_pkt;
619-
u64 err_tx_vlan_enforcement;
620-
u64 err_tx_ethtype_enforcement;
621-
u64 err_tx_SA_enforecement;
622-
u64 err_tx_SQPDID_enforcement;
623-
u64 err_tx_CQPDID_enforcement;
624-
u64 err_tx_mtu_violation;
625-
u64 err_tx_inval_oob;
636+
u64 tx_err_gf_disabled;
637+
u64 tx_err_vport_disabled;
638+
u64 tx_err_inval_vport_offset_pkt;
639+
u64 tx_err_vlan_enforcement;
640+
u64 tx_err_ethtype_enforcement;
641+
u64 tx_err_SA_enforcement;
642+
u64 tx_err_SQPDID_enforcement;
643+
u64 tx_err_CQPDID_enforcement;
644+
u64 tx_err_mtu_violation;
645+
u64 tx_err_inval_oob;
626646
/* tx bytes/packets */
627647
u64 hc_tx_bytes;
628648
u64 hc_tx_ucast_pkts;
@@ -632,7 +652,7 @@ struct mana_query_gf_stat_resp {
632652
u64 hc_tx_mcast_pkts;
633653
u64 hc_tx_mcast_bytes;
634654
/* tx error */
635-
u64 err_tx_gdma;
655+
u64 tx_err_gdma;
636656
}; /* HW DATA */
637657

638658
/* Configure vPort Rx Steering */

0 commit comments

Comments
 (0)