summaryrefslogtreecommitdiff
path: root/net/smc/smc_stats.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/smc/smc_stats.c')
-rw-r--r--net/smc/smc_stats.c35
1 files changed, 35 insertions, 0 deletions
diff --git a/net/smc/smc_stats.c b/net/smc/smc_stats.c
new file mode 100644
index 000000000000..76e938388520
--- /dev/null
+++ b/net/smc/smc_stats.c
@@ -0,0 +1,35 @@
+// SPDX-License-Identifier: GPL-2.0-only
+/*
+ * Shared Memory Communications over RDMA (SMC-R) and RoCE
+ *
+ * SMC statistics netlink routines
+ *
+ * Copyright IBM Corp. 2021
+ *
+ * Author(s): Guvenc Gulce
+ */
+#include <linux/init.h>
+#include <linux/mutex.h>
+#include <linux/percpu.h>
+#include <linux/ctype.h>
+#include "smc_stats.h"
+
+/* serialize fallback reason statistic gathering */
+DEFINE_MUTEX(smc_stat_fback_rsn);
+struct smc_stats __percpu *smc_stats; /* per cpu counters for SMC */
+struct smc_stats_reason fback_rsn;
+
+int __init smc_stats_init(void)
+{
+ memset(&fback_rsn, 0, sizeof(fback_rsn));
+ smc_stats = alloc_percpu(struct smc_stats);
+ if (!smc_stats)
+ return -ENOMEM;
+
+ return 0;
+}
+
+void smc_stats_exit(void)
+{
+ free_percpu(smc_stats);
+}