Whamcloud - gitweb
LU-5275 obdclass: Remove non seq file proc routines
[fs/lustre-release.git] / lustre / obdclass / lprocfs_status.c
index dce67d5..10f8052 100644 (file)
@@ -810,14 +810,14 @@ EXPORT_SYMBOL(lprocfs_stats_collect);
 /**
  * Append a space separated list of current set flags to str.
  */
-#define flag2seqstr(flag)                                              \
+#define flag2str(flag)                                         \
        do {                                                            \
                if (imp->imp_##flag) {                                  \
                        seq_printf(m, "%s" #flag, first ? "" : ", ");   \
                        first = false;                                  \
                }                                                       \
        } while (0)
-static void obd_import_flags2seqstr(struct obd_import *imp, struct seq_file *m)
+static void obd_import_flags2str(struct obd_import *imp, struct seq_file *m)
 {
        bool first = true;
 
@@ -826,19 +826,19 @@ static void obd_import_flags2seqstr(struct obd_import *imp, struct seq_file *m)
                first = false;
        }
 
-       flag2seqstr(invalid);
-       flag2seqstr(deactive);
-       flag2seqstr(replayable);
-       flag2seqstr(delayed_recovery);
-       flag2seqstr(no_lock_replay);
-       flag2seqstr(vbr_failed);
-       flag2seqstr(pingable);
-       flag2seqstr(resend_replay);
-       flag2seqstr(no_pinger_recover);
-       flag2seqstr(need_mne_swab);
-       flag2seqstr(connect_tried);
+       flag2str(invalid);
+       flag2str(deactive);
+       flag2str(replayable);
+       flag2str(delayed_recovery);
+       flag2str(no_lock_replay);
+       flag2str(vbr_failed);
+       flag2str(pingable);
+       flag2str(resend_replay);
+       flag2str(no_pinger_recover);
+       flag2str(need_mne_swab);
+       flag2str(connect_tried);
 }
-#undef flag2seqstr
+#undef flag2str
 
 static const char *obd_connect_names[] = {
        "read_only",
@@ -1020,7 +1020,7 @@ int lprocfs_import_seq_show(struct seq_file *m, void *data)
        seq_printf(m, " ]\n");
        obd_connect_data_seqprint(m, ocd);
        seq_printf(m, "    import_flags: [ ");
-       obd_import_flags2seqstr(imp, m);
+       obd_import_flags2str(imp, m);
 
        seq_printf(m, " ]\n"
                      "    connection:\n"
@@ -1227,555 +1227,8 @@ int lprocfs_connect_flags_seq_show(struct seq_file *m, void *data)
 }
 EXPORT_SYMBOL(lprocfs_connect_flags_seq_show);
 
-#ifndef HAVE_ONLY_PROCFS_SEQ
-
-int lprocfs_rd_uint(char *page, char **start, off_t off,
-                   int count, int *eof, void *data)
-{
-       unsigned int *temp = data;
-       return snprintf(page, count, "%u\n", *temp);
-}
-EXPORT_SYMBOL(lprocfs_rd_uint);
-
-int lprocfs_rd_u64(char *page, char **start, off_t off,
-                   int count, int *eof, void *data)
-{
-        LASSERT(data != NULL);
-        *eof = 1;
-        return snprintf(page, count, LPU64"\n", *(__u64 *)data);
-}
-EXPORT_SYMBOL(lprocfs_rd_u64);
-
-int lprocfs_rd_atomic(char *page, char **start, off_t off,
-                   int count, int *eof, void *data)
-{
-       atomic_t *atom = data;
-        LASSERT(atom != NULL);
-        *eof = 1;
-       return snprintf(page, count, "%d\n", atomic_read(atom));
-}
-EXPORT_SYMBOL(lprocfs_rd_atomic);
-
-int lprocfs_wr_atomic(struct file *file, const char *buffer,
-                      unsigned long count, void *data)
-{
-       atomic_t *atm = data;
-        int val = 0;
-        int rc;
-
-        rc = lprocfs_write_helper(buffer, count, &val);
-        if (rc < 0)
-                return rc;
-
-        if (val <= 0)
-                return -ERANGE;
-
-       atomic_set(atm, val);
-        return count;
-}
-EXPORT_SYMBOL(lprocfs_wr_atomic);
-
-int lprocfs_rd_uuid(char *page, char **start, off_t off, int count,
-                    int *eof, void *data)
-{
-        struct obd_device *obd = data;
-
-        LASSERT(obd != NULL);
-        *eof = 1;
-        return snprintf(page, count, "%s\n", obd->obd_uuid.uuid);
-}
-EXPORT_SYMBOL(lprocfs_rd_uuid);
-
-int lprocfs_rd_name(char *page, char **start, off_t off, int count,
-                    int *eof, void *data)
-{
-        struct obd_device *dev = data;
-
-        LASSERT(dev != NULL);
-        *eof = 1;
-        return snprintf(page, count, "%s\n", dev->obd_name);
-}
-EXPORT_SYMBOL(lprocfs_rd_name);
-
-int lprocfs_rd_blksize(char *page, char **start, off_t off, int count,
-                       int *eof, void *data)
-{
-        struct obd_device *obd = data;
-        struct obd_statfs  osfs;
-        int rc = obd_statfs(NULL, obd->obd_self_export, &osfs,
-                            cfs_time_shift_64(-OBD_STATFS_CACHE_SECONDS),
-                            OBD_STATFS_NODELAY);
-        if (!rc) {
-                *eof = 1;
-                rc = snprintf(page, count, "%u\n", osfs.os_bsize);
-        }
-        return rc;
-}
-EXPORT_SYMBOL(lprocfs_rd_blksize);
-
-int lprocfs_rd_kbytestotal(char *page, char **start, off_t off, int count,
-                           int *eof, void *data)
-{
-        struct obd_device *obd = data;
-        struct obd_statfs  osfs;
-        int rc = obd_statfs(NULL, obd->obd_self_export, &osfs,
-                            cfs_time_shift_64(-OBD_STATFS_CACHE_SECONDS),
-                            OBD_STATFS_NODELAY);
-        if (!rc) {
-                __u32 blk_size = osfs.os_bsize >> 10;
-                __u64 result = osfs.os_blocks;
-
-                while (blk_size >>= 1)
-                        result <<= 1;
-
-                *eof = 1;
-                rc = snprintf(page, count, LPU64"\n", result);
-        }
-        return rc;
-}
-EXPORT_SYMBOL(lprocfs_rd_kbytestotal);
-
-int lprocfs_rd_kbytesfree(char *page, char **start, off_t off, int count,
-                          int *eof, void *data)
-{
-        struct obd_device *obd = data;
-        struct obd_statfs  osfs;
-        int rc = obd_statfs(NULL, obd->obd_self_export, &osfs,
-                            cfs_time_shift_64(-OBD_STATFS_CACHE_SECONDS),
-                            OBD_STATFS_NODELAY);
-        if (!rc) {
-                __u32 blk_size = osfs.os_bsize >> 10;
-                __u64 result = osfs.os_bfree;
-
-                while (blk_size >>= 1)
-                        result <<= 1;
-
-                *eof = 1;
-                rc = snprintf(page, count, LPU64"\n", result);
-        }
-        return rc;
-}
-EXPORT_SYMBOL(lprocfs_rd_kbytesfree);
-
-int lprocfs_rd_kbytesavail(char *page, char **start, off_t off, int count,
-                           int *eof, void *data)
-{
-        struct obd_device *obd = data;
-        struct obd_statfs  osfs;
-        int rc = obd_statfs(NULL, obd->obd_self_export, &osfs,
-                            cfs_time_shift_64(-OBD_STATFS_CACHE_SECONDS),
-                            OBD_STATFS_NODELAY);
-        if (!rc) {
-                __u32 blk_size = osfs.os_bsize >> 10;
-                __u64 result = osfs.os_bavail;
-
-                while (blk_size >>= 1)
-                        result <<= 1;
-
-                *eof = 1;
-                rc = snprintf(page, count, LPU64"\n", result);
-        }
-        return rc;
-}
-EXPORT_SYMBOL(lprocfs_rd_kbytesavail);
-
-int lprocfs_rd_filestotal(char *page, char **start, off_t off, int count,
-                          int *eof, void *data)
-{
-        struct obd_device *obd = data;
-        struct obd_statfs  osfs;
-        int rc = obd_statfs(NULL, obd->obd_self_export, &osfs,
-                            cfs_time_shift_64(-OBD_STATFS_CACHE_SECONDS),
-                            OBD_STATFS_NODELAY);
-        if (!rc) {
-                *eof = 1;
-                rc = snprintf(page, count, LPU64"\n", osfs.os_files);
-        }
-
-        return rc;
-}
-EXPORT_SYMBOL(lprocfs_rd_filestotal);
-
-int lprocfs_rd_filesfree(char *page, char **start, off_t off, int count,
-                         int *eof, void *data)
-{
-        struct obd_device *obd = data;
-        struct obd_statfs  osfs;
-        int rc = obd_statfs(NULL, obd->obd_self_export, &osfs,
-                            cfs_time_shift_64(-OBD_STATFS_CACHE_SECONDS),
-                            OBD_STATFS_NODELAY);
-        if (!rc) {
-                *eof = 1;
-                rc = snprintf(page, count, LPU64"\n", osfs.os_ffree);
-        }
-        return rc;
-}
-EXPORT_SYMBOL(lprocfs_rd_filesfree);
-
-int lprocfs_rd_server_uuid(char *page, char **start, off_t off, int count,
-                           int *eof, void *data)
-{
-        struct obd_device *obd = data;
-        struct obd_import *imp;
-        char *imp_state_name = NULL;
-        int rc = 0;
-
-        LASSERT(obd != NULL);
-        LPROCFS_CLIMP_CHECK(obd);
-        imp = obd->u.cli.cl_import;
-        imp_state_name = ptlrpc_import_state_name(imp->imp_state);
-        *eof = 1;
-        rc = snprintf(page, count, "%s\t%s%s\n",
-                      obd2cli_tgt(obd), imp_state_name,
-                      imp->imp_deactive ? "\tDEACTIVATED" : "");
-
-        LPROCFS_CLIMP_EXIT(obd);
-        return rc;
-}
-EXPORT_SYMBOL(lprocfs_rd_server_uuid);
-
-int lprocfs_rd_conn_uuid(char *page, char **start, off_t off, int count,
-                         int *eof,  void *data)
-{
-        struct obd_device *obd = data;
-        struct ptlrpc_connection *conn;
-        int rc = 0;
-
-        LASSERT(obd != NULL);
-
-        LPROCFS_CLIMP_CHECK(obd);
-        conn = obd->u.cli.cl_import->imp_connection;
-        *eof = 1;
-        if (conn && obd->u.cli.cl_import) {
-                rc = snprintf(page, count, "%s\n",
-                              conn->c_remote_uuid.uuid);
-        } else {
-                rc = snprintf(page, count, "%s\n", "<none>");
-        }
-
-        LPROCFS_CLIMP_EXIT(obd);
-        return rc;
-}
-EXPORT_SYMBOL(lprocfs_rd_conn_uuid);
-
-/**
- * Append a space separated list of current set flags to str.
- */
-#define flag2str(flag) \
-        if (imp->imp_##flag && max - len > 0) \
-             len += snprintf(str + len, max - len, "%s" #flag, len ? ", " : "");
-static int obd_import_flags2str(struct obd_import *imp, char *str, int max)
-{
-        int len = 0;
-
-        if (imp->imp_obd->obd_no_recov)
-                len += snprintf(str, max - len, "no_recov");
-
-        flag2str(invalid);
-        flag2str(deactive);
-        flag2str(replayable);
-        flag2str(pingable);
-        return len;
-}
-#undef flags2str
-
-int lprocfs_rd_import(char *page, char **start, off_t off, int count,
-                      int *eof, void *data)
-{
-       struct lprocfs_counter          ret;
-       struct lprocfs_counter_header   *header;
-       struct obd_device               *obd    = (struct obd_device *)data;
-       struct obd_import               *imp;
-       struct obd_import_conn          *conn;
-       int                             i;
-       int                             j;
-       int                             k;
-       int                             rw      = 0;
-
-        LASSERT(obd != NULL);
-        LPROCFS_CLIMP_CHECK(obd);
-        imp = obd->u.cli.cl_import;
-        *eof = 1;
-
-        i = snprintf(page, count,
-                     "import:\n"
-                     "    name: %s\n"
-                     "    target: %s\n"
-                     "    state: %s\n"
-                     "    instance: %u\n"
-                     "    connect_flags: [",
-                     obd->obd_name,
-                     obd2cli_tgt(obd),
-                     ptlrpc_import_state_name(imp->imp_state),
-                     imp->imp_connect_data.ocd_instance);
-        i += obd_connect_flags2str(page + i, count - i,
-                                   imp->imp_connect_data.ocd_connect_flags,
-                                   ", ");
-        i += snprintf(page + i, count - i,
-                      "]\n"
-                      "    import_flags: [");
-        i += obd_import_flags2str(imp, page + i, count - i);
-
-        i += snprintf(page + i, count - i,
-                      "]\n"
-                      "    connection:\n"
-                      "       failover_nids: [");
-       spin_lock(&imp->imp_lock);
-        j = 0;
-       list_for_each_entry(conn, &imp->imp_conn_list, oic_item) {
-                i += snprintf(page + i, count - i, "%s%s", j ? ", " : "",
-                              libcfs_nid2str(conn->oic_conn->c_peer.nid));
-                j++;
-        }
-       i += snprintf(page + i, count - i,
-                     "]\n"
-                     "       current_connection: %s\n"
-                     "       connection_attempts: %u\n"
-                     "       generation: %u\n"
-                     "       in-progress_invalidations: %u\n",
-                     imp->imp_connection == NULL ? "<none>" :
-                             libcfs_nid2str(imp->imp_connection->c_peer.nid),
-                     imp->imp_conn_cnt,
-                     imp->imp_generation,
-                     atomic_read(&imp->imp_inval_count));
-       spin_unlock(&imp->imp_lock);
-
-       if (obd->obd_svc_stats == NULL)
-               goto out_climp;
-
-       header = &obd->obd_svc_stats->ls_cnt_header[PTLRPC_REQWAIT_CNTR];
-        lprocfs_stats_collect(obd->obd_svc_stats, PTLRPC_REQWAIT_CNTR, &ret);
-        if (ret.lc_count != 0) {
-                /* first argument to do_div MUST be __u64 */
-                __u64 sum = ret.lc_sum;
-                do_div(sum, ret.lc_count);
-                ret.lc_sum = sum;
-        } else
-                ret.lc_sum = 0;
-        i += snprintf(page + i, count - i,
-                      "    rpcs:\n"
-                      "       inflight: %u\n"
-                      "       unregistering: %u\n"
-                      "       timeouts: %u\n"
-                      "       avg_waittime: "LPU64" %s\n",
-                     atomic_read(&imp->imp_inflight),
-                     atomic_read(&imp->imp_unregistering),
-                     atomic_read(&imp->imp_timeouts),
-                     ret.lc_sum, header->lc_units);
-
-        k = 0;
-        for(j = 0; j < IMP_AT_MAX_PORTALS; j++) {
-                if (imp->imp_at.iat_portal[j] == 0)
-                        break;
-                k = max_t(unsigned int, k,
-                          at_get(&imp->imp_at.iat_service_estimate[j]));
-        }
-        i += snprintf(page + i, count - i,
-                      "    service_estimates:\n"
-                      "       services: %u sec\n"
-                      "       network: %u sec\n",
-                      k,
-                      at_get(&imp->imp_at.iat_net_latency));
-
-        i += snprintf(page + i, count - i,
-                      "    transactions:\n"
-                      "       last_replay: "LPU64"\n"
-                      "       peer_committed: "LPU64"\n"
-                      "       last_checked: "LPU64"\n",
-                      imp->imp_last_replay_transno,
-                      imp->imp_peer_committed_transno,
-                      imp->imp_last_transno_checked);
-
-        /* avg data rates */
-        for (rw = 0; rw <= 1; rw++) {
-                lprocfs_stats_collect(obd->obd_svc_stats,
-                                      PTLRPC_LAST_CNTR + BRW_READ_BYTES + rw,
-                                      &ret);
-                if (ret.lc_sum > 0 && ret.lc_count > 0) {
-                        /* first argument to do_div MUST be __u64 */
-                        __u64 sum = ret.lc_sum;
-                        do_div(sum, ret.lc_count);
-                        ret.lc_sum = sum;
-                        i += snprintf(page + i, count - i,
-                                      "    %s_data_averages:\n"
-                                      "       bytes_per_rpc: "LPU64"\n",
-                                      rw ? "write" : "read",
-                                      ret.lc_sum);
-                }
-                k = (int)ret.lc_sum;
-                j = opcode_offset(OST_READ + rw) + EXTRA_MAX_OPCODES;
-               header = &obd->obd_svc_stats->ls_cnt_header[j];
-                lprocfs_stats_collect(obd->obd_svc_stats, j, &ret);
-                if (ret.lc_sum > 0 && ret.lc_count != 0) {
-                        /* first argument to do_div MUST be __u64 */
-                        __u64 sum = ret.lc_sum;
-                        do_div(sum, ret.lc_count);
-                        ret.lc_sum = sum;
-                        i += snprintf(page + i, count - i,
-                                      "       %s_per_rpc: "LPU64"\n",
-                                     header->lc_units, ret.lc_sum);
-                        j = (int)ret.lc_sum;
-                        if (j > 0)
-                                i += snprintf(page + i, count - i,
-                                              "       MB_per_sec: %u.%.02u\n",
-                                              k / j, (100 * k / j) % 100);
-                }
-        }
-
-out_climp:
-        LPROCFS_CLIMP_EXIT(obd);
-        return i;
-}
-EXPORT_SYMBOL(lprocfs_rd_import);
-
-int lprocfs_rd_state(char *page, char **start, off_t off, int count,
-                      int *eof, void *data)
-{
-        struct obd_device *obd = (struct obd_device *)data;
-        struct obd_import *imp;
-        int i, j, k;
-
-        LASSERT(obd != NULL);
-        LPROCFS_CLIMP_CHECK(obd);
-        imp = obd->u.cli.cl_import;
-        *eof = 1;
-
-        i = snprintf(page, count, "current_state: %s\n",
-                     ptlrpc_import_state_name(imp->imp_state));
-        i += snprintf(page + i, count - i,
-                      "state_history:\n");
-        k = imp->imp_state_hist_idx;
-        for (j = 0; j < IMP_STATE_HIST_LEN; j++) {
-                struct import_state_hist *ish =
-                        &imp->imp_state_hist[(k + j) % IMP_STATE_HIST_LEN];
-                if (ish->ish_state == 0)
-                        continue;
-                i += snprintf(page + i, count - i, " - ["CFS_TIME_T", %s]\n",
-                              ish->ish_time,
-                              ptlrpc_import_state_name(ish->ish_state));
-        }
-
-        LPROCFS_CLIMP_EXIT(obd);
-        return i;
-}
-EXPORT_SYMBOL(lprocfs_rd_state);
-
-int lprocfs_at_hist_helper(char *page, int count, int rc,
-                           struct adaptive_timeout *at)
-{
-        int i;
-        for (i = 0; i < AT_BINS; i++)
-                rc += snprintf(page + rc, count - rc, "%3u ", at->at_hist[i]);
-        rc += snprintf(page + rc, count - rc, "\n");
-        return rc;
-}
-EXPORT_SYMBOL(lprocfs_at_hist_helper);
-
-/* See also ptlrpc_lprocfs_rd_timeouts */
-int lprocfs_rd_timeouts(char *page, char **start, off_t off, int count,
-                        int *eof, void *data)
-{
-        struct obd_device *obd = (struct obd_device *)data;
-        struct obd_import *imp;
-        unsigned int cur, worst;
-        time_t now, worstt;
-        struct dhms ts;
-        int i, rc = 0;
-
-        LASSERT(obd != NULL);
-        LPROCFS_CLIMP_CHECK(obd);
-        imp = obd->u.cli.cl_import;
-        *eof = 1;
-
-        now = cfs_time_current_sec();
-
-        /* Some network health info for kicks */
-        s2dhms(&ts, now - imp->imp_last_reply_time);
-        rc += snprintf(page + rc, count - rc,
-                       "%-10s : %ld, "DHMS_FMT" ago\n",
-                       "last reply", imp->imp_last_reply_time, DHMS_VARS(&ts));
-
-        cur = at_get(&imp->imp_at.iat_net_latency);
-        worst = imp->imp_at.iat_net_latency.at_worst_ever;
-        worstt = imp->imp_at.iat_net_latency.at_worst_time;
-        s2dhms(&ts, now - worstt);
-        rc += snprintf(page + rc, count - rc,
-                       "%-10s : cur %3u  worst %3u (at %ld, "DHMS_FMT" ago) ",
-                       "network", cur, worst, worstt, DHMS_VARS(&ts));
-        rc = lprocfs_at_hist_helper(page, count, rc,
-                                    &imp->imp_at.iat_net_latency);
-
-        for(i = 0; i < IMP_AT_MAX_PORTALS; i++) {
-                if (imp->imp_at.iat_portal[i] == 0)
-                        break;
-                cur = at_get(&imp->imp_at.iat_service_estimate[i]);
-                worst = imp->imp_at.iat_service_estimate[i].at_worst_ever;
-                worstt = imp->imp_at.iat_service_estimate[i].at_worst_time;
-                s2dhms(&ts, now - worstt);
-                rc += snprintf(page + rc, count - rc,
-                               "portal %-2d  : cur %3u  worst %3u (at %ld, "
-                               DHMS_FMT" ago) ", imp->imp_at.iat_portal[i],
-                               cur, worst, worstt, DHMS_VARS(&ts));
-                rc = lprocfs_at_hist_helper(page, count, rc,
-                                          &imp->imp_at.iat_service_estimate[i]);
-        }
-
-        LPROCFS_CLIMP_EXIT(obd);
-        return rc;
-}
-EXPORT_SYMBOL(lprocfs_rd_timeouts);
-
-int lprocfs_rd_connect_flags(char *page, char **start, off_t off,
-                             int count, int *eof, void *data)
-{
-        struct obd_device *obd = data;
-        __u64 flags;
-        int ret = 0;
-
-        LPROCFS_CLIMP_CHECK(obd);
-        flags = obd->u.cli.cl_import->imp_connect_data.ocd_connect_flags;
-        ret = snprintf(page, count, "flags="LPX64"\n", flags);
-        ret += obd_connect_flags2str(page + ret, count - ret, flags, "\n");
-        ret += snprintf(page + ret, count - ret, "\n");
-        LPROCFS_CLIMP_EXIT(obd);
-        return ret;
-}
-EXPORT_SYMBOL(lprocfs_rd_connect_flags);
-
-int lprocfs_rd_numrefs(char *page, char **start, off_t off, int count,
-                       int *eof, void *data)
-{
-        struct obd_type *class = (struct obd_type*) data;
-
-        LASSERT(class != NULL);
-        *eof = 1;
-        return snprintf(page, count, "%d\n", class->typ_refcnt);
-}
-EXPORT_SYMBOL(lprocfs_rd_numrefs);
-
-int lprocfs_obd_setup(struct obd_device *obd, struct lprocfs_vars *list)
-{
-       int rc = 0;
-
-       LASSERT(obd != NULL);
-       LASSERT(obd->obd_magic == OBD_DEVICE_MAGIC);
-       LASSERT(obd->obd_type->typ_procroot != NULL);
-
-       obd->obd_proc_entry = lprocfs_register(obd->obd_name,
-                                              obd->obd_type->typ_procroot,
-                                              list, obd);
-       if (IS_ERR(obd->obd_proc_entry)) {
-               rc = PTR_ERR(obd->obd_proc_entry);
-               CERROR("error %d setting up lprocfs for %s\n",rc,obd->obd_name);
-               obd->obd_proc_entry = NULL;
-       }
-       return rc;
-}
-EXPORT_SYMBOL(lprocfs_obd_setup);
-#endif
-
 int
-lprocfs_seq_obd_setup(struct obd_device *obd)
+lprocfs_obd_setup(struct obd_device *obd)
 {
        int rc = 0;
 
@@ -1793,7 +1246,7 @@ lprocfs_seq_obd_setup(struct obd_device *obd)
        }
        return rc;
 }
-EXPORT_SYMBOL(lprocfs_seq_obd_setup);
+EXPORT_SYMBOL(lprocfs_obd_setup);
 
 int lprocfs_obd_cleanup(struct obd_device *obd)
 {