]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
net: ena: View PHC stats using debugfs
authorDavid Arinzon <darinzon@amazon.com>
Tue, 17 Jun 2025 11:05:44 +0000 (14:05 +0300)
committerJakub Kicinski <kuba@kernel.org>
Thu, 19 Jun 2025 01:57:29 +0000 (18:57 -0700)
Add an entry named `phc_stats` to view the PHC statistics.
If PHC is enabled, the stats are printed, as below:

phc_cnt: 0
phc_exp: 0
phc_skp: 0
phc_err_dv: 0
phc_err_ts: 0

If PHC is disabled, no statistics will be displayed.

Signed-off-by: David Arinzon <darinzon@amazon.com>
Link: https://patch.msgid.link/20250617110545.5659-9-darinzon@amazon.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/amazon/ena/ena_debugfs.c

index d9327cd870e04f3f89de96a33ad9e1f3556e1f20..46ed80986724713445f8d2a4312e41721b88b05f 100644 (file)
@@ -8,6 +8,35 @@
 #include <linux/seq_file.h>
 #include <linux/pci.h>
 #include "ena_debugfs.h"
+#include "ena_phc.h"
+
+static int phc_stats_show(struct seq_file *file, void *priv)
+{
+       struct ena_adapter *adapter = file->private;
+
+       if (!ena_phc_is_active(adapter))
+               return 0;
+
+       seq_printf(file,
+                  "phc_cnt: %llu\n",
+                  adapter->ena_dev->phc.stats.phc_cnt);
+       seq_printf(file,
+                  "phc_exp: %llu\n",
+                  adapter->ena_dev->phc.stats.phc_exp);
+       seq_printf(file,
+                  "phc_skp: %llu\n",
+                  adapter->ena_dev->phc.stats.phc_skp);
+       seq_printf(file,
+                  "phc_err_dv: %llu\n",
+                  adapter->ena_dev->phc.stats.phc_err_dv);
+       seq_printf(file,
+                  "phc_err_ts: %llu\n",
+                  adapter->ena_dev->phc.stats.phc_err_ts);
+
+       return 0;
+}
+
+DEFINE_SHOW_ATTRIBUTE(phc_stats);
 
 void ena_debugfs_init(struct net_device *dev)
 {
@@ -15,6 +44,12 @@ void ena_debugfs_init(struct net_device *dev)
 
        adapter->debugfs_base =
                debugfs_create_dir(dev_name(&adapter->pdev->dev), NULL);
+
+       debugfs_create_file("phc_stats",
+                           0400,
+                           adapter->debugfs_base,
+                           adapter,
+                           &phc_stats_fops);
 }
 
 void ena_debugfs_terminate(struct net_device *dev)