diff options
author | David Arinzon <darinzon@amazon.com> | 2025-06-17 14:05:44 +0300 |
---|---|---|
committer | Jakub Kicinski <kuba@kernel.org> | 2025-06-18 18:57:29 -0700 |
commit | e14521e97b8341852d70ddb23e7cd94d04302d09 (patch) | |
tree | 408d73c529cb35c016905559e9ee00603abbf129 | |
parent | 60e28350b1ca127fe22dd99d5ff2a1922450e912 (diff) |
net: ena: View PHC stats using debugfs
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>
-rw-r--r-- | drivers/net/ethernet/amazon/ena/ena_debugfs.c | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/drivers/net/ethernet/amazon/ena/ena_debugfs.c b/drivers/net/ethernet/amazon/ena/ena_debugfs.c index d9327cd870e0..46ed80986724 100644 --- a/drivers/net/ethernet/amazon/ena/ena_debugfs.c +++ b/drivers/net/ethernet/amazon/ena/ena_debugfs.c @@ -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) |