On 18/08/2025 21:35, Vadim Fedorenko wrote:
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


currently I believe those are internal modes that expose 19 on our hardware. Therefore, I think 16 is sufficient and we can easily extend in the future.

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

Reply via email to