On 18/08/2025 19:17, Carolina Jubran wrote:
On 15/08/2025 16:27, Vadim Fedorenko wrote:
diff --git a/include/linux/ethtool.h b/include/linux/ethtool.h
index de5bd76a400ca..6c0dc6ae080a8 100644
--- a/include/linux/ethtool.h
+++ b/include/linux/ethtool.h
@@ -492,7 +492,25 @@ struct ethtool_pause_stats {
};
#define ETHTOOL_MAX_LANES 8
+#define ETHTOOL_FEC_HIST_MAX 18
Could you clarify why it is set to 18?
AFAIU IEEE 802.3ck/df define 16 bins.
Yeah, the standard defines 16 bins, but this value came out of the
discussion with Gal and Yael because the hardware supports more bins,
I believe, in RDMA mode
diff --git a/net/ethtool/fec.c b/net/ethtool/fec.c
index e7d3f2c352a34..9313bd17544fd 100644
--- a/net/ethtool/fec.c
+++ b/net/ethtool/fec.c
@@ -17,6 +17,7 @@ struct fec_reply_data {
u64 stats[1 + ETHTOOL_MAX_LANES];
u8 cnt;
} corr, uncorr, corr_bits;
+ struct ethtool_fec_hist fec_stat_hist;
};
#define FEC_REPDATA(__reply_base) \
@@ -113,7 +114,11 @@ static int fec_prepare_data(const struct
ethnl_req_info *req_base,
struct ethtool_fec_stats stats;
ethtool_stats_init((u64 *)&stats, sizeof(stats) / 8);
- dev->ethtool_ops->get_fec_stats(dev, &stats);
+ ethtool_stats_init((u64 *)data->fec_stat_hist.values,
+ ETHTOOL_MAX_LANES *
this should be ETHTOOL_FEC_HIST_MAX since we’re initializing the
histogram bins array.
Yes, you're right, I'll change it in the next version