0001
0002
0003
0004
0005
0006
0007
0008
0009 #undef pr_fmt
0010 #define pr_fmt(fmt) KBUILD_MODNAME " L" __stringify(__LINE__) ": " fmt
0011
0012 #include "rtrs-srv.h"
0013
0014 int rtrs_srv_reset_rdma_stats(struct rtrs_srv_stats *stats, bool enable)
0015 {
0016 if (enable) {
0017 int cpu;
0018 struct rtrs_srv_stats_rdma_stats *r;
0019
0020 for_each_possible_cpu(cpu) {
0021 r = per_cpu_ptr(stats->rdma_stats, cpu);
0022 memset(r, 0, sizeof(*r));
0023 }
0024
0025 return 0;
0026 }
0027
0028 return -EINVAL;
0029 }
0030
0031 ssize_t rtrs_srv_stats_rdma_to_str(struct rtrs_srv_stats *stats, char *page)
0032 {
0033 int cpu;
0034 struct rtrs_srv_stats_rdma_stats sum;
0035 struct rtrs_srv_stats_rdma_stats *r;
0036
0037 memset(&sum, 0, sizeof(sum));
0038
0039 for_each_possible_cpu(cpu) {
0040 r = per_cpu_ptr(stats->rdma_stats, cpu);
0041
0042 sum.dir[READ].cnt += r->dir[READ].cnt;
0043 sum.dir[READ].size_total += r->dir[READ].size_total;
0044 sum.dir[WRITE].cnt += r->dir[WRITE].cnt;
0045 sum.dir[WRITE].size_total += r->dir[WRITE].size_total;
0046 }
0047
0048 return sysfs_emit(page, "%llu %llu %llu %llu\n",
0049 sum.dir[READ].cnt, sum.dir[READ].size_total,
0050 sum.dir[WRITE].cnt, sum.dir[WRITE].size_total);
0051 }