Whamcloud - gitweb
LU-6142 lnet: replace white spaces with tabs for LNet core
[fs/lustre-release.git] / lnet / lnet / peer.c
index 744e151..86be4bc 100644 (file)
@@ -27,7 +27,7 @@
  * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved.
  * Use is subject to license terms.
  *
- * Copyright (c) 2012, Intel Corporation.
+ * Copyright (c) 2012, 2014, Intel Corporation.
  */
 /*
  * This file is part of Lustre, http://www.lustre.org/
@@ -138,7 +138,8 @@ lnet_peer_table_deathrow_wait_locked(struct lnet_peer_table *ptable,
                               "Waiting for %d zombies on peer table\n",
                               ptable->pt_zombies);
                }
-               cfs_pause(cfs_time_seconds(1) >> 1);
+               set_current_state(TASK_UNINTERRUPTIBLE);
+               schedule_timeout(cfs_time_seconds(1) >> 1);
                lnet_net_lock(cpt_locked);
        }
 }
@@ -305,15 +306,15 @@ lnet_nid2peer_locked(lnet_peer_t **lpp, lnet_nid_t nid, int cpt)
        INIT_LIST_HEAD(&lp->lp_rtrq);
        INIT_LIST_HEAD(&lp->lp_routes);
 
-        lp->lp_notify = 0;
-        lp->lp_notifylnd = 0;
-        lp->lp_notifying = 0;
-        lp->lp_alive_count = 0;
-        lp->lp_timestamp = 0;
-        lp->lp_alive = !lnet_peers_start_down(); /* 1 bit!! */
-        lp->lp_last_alive = cfs_time_current(); /* assumes alive */
-        lp->lp_last_query = 0; /* haven't asked NI yet */
-        lp->lp_ping_timestamp = 0;
+       lp->lp_notify = 0;
+       lp->lp_notifylnd = 0;
+       lp->lp_notifying = 0;
+       lp->lp_alive_count = 0;
+       lp->lp_timestamp = 0;
+       lp->lp_alive = !lnet_peers_start_down(); /* 1 bit!! */
+       lp->lp_last_alive = cfs_time_current(); /* assumes alive */
+       lp->lp_last_query = 0; /* haven't asked NI yet */
+       lp->lp_ping_timestamp = 0;
        lp->lp_ping_feats = LNET_PING_FEAT_INVAL;
        lp->lp_nid = nid;
        lp->lp_cpt = cpt2;
@@ -371,56 +372,59 @@ lnet_debug_peer(lnet_nid_t nid)
        rc = lnet_nid2peer_locked(&lp, nid, cpt);
        if (rc != 0) {
                lnet_net_unlock(cpt);
-                CDEBUG(D_WARNING, "No peer %s\n", libcfs_nid2str(nid));
-                return;
-        }
+               CDEBUG(D_WARNING, "No peer %s\n", libcfs_nid2str(nid));
+               return;
+       }
 
-        if (lnet_isrouter(lp) || lnet_peer_aliveness_enabled(lp))
-                aliveness = lp->lp_alive ? "up" : "down";
+       if (lnet_isrouter(lp) || lnet_peer_aliveness_enabled(lp))
+               aliveness = lp->lp_alive ? "up" : "down";
 
-        CDEBUG(D_WARNING, "%-24s %4d %5s %5d %5d %5d %5d %5d %ld\n",
-               libcfs_nid2str(lp->lp_nid), lp->lp_refcount,
-               aliveness, lp->lp_ni->ni_peertxcredits,
-               lp->lp_rtrcredits, lp->lp_minrtrcredits,
-               lp->lp_txcredits, lp->lp_mintxcredits, lp->lp_txqnob);
+       CDEBUG(D_WARNING, "%-24s %4d %5s %5d %5d %5d %5d %5d %ld\n",
+              libcfs_nid2str(lp->lp_nid), lp->lp_refcount,
+              aliveness, lp->lp_ni->ni_peertxcredits,
+              lp->lp_rtrcredits, lp->lp_minrtrcredits,
+              lp->lp_txcredits, lp->lp_mintxcredits, lp->lp_txqnob);
 
-        lnet_peer_decref_locked(lp);
+       lnet_peer_decref_locked(lp);
 
        lnet_net_unlock(cpt);
 }
 
-int lnet_get_peers(int count, __u64 *nid, char *aliveness,
-                  int *ncpt, int *refcount,
-                  int *ni_peer_tx_credits, int *peer_tx_credits,
-                  int *peer_rtr_credits, int *peer_min_rtr_credits,
-                  int *peer_tx_qnob)
+int lnet_get_peer_info(__u32 peer_index, __u64 *nid,
+                      char aliveness[LNET_MAX_STR_LEN],
+                      __u32 *cpt_iter, __u32 *refcount,
+                      __u32 *ni_peer_tx_credits, __u32 *peer_tx_credits,
+                      __u32 *peer_rtr_credits, __u32 *peer_min_rtr_credits,
+                      __u32 *peer_tx_qnob)
 {
        struct lnet_peer_table  *peer_table;
        lnet_peer_t             *lp;
        int                     j;
-       int                     lncpt, found = 0;
+       int                     lncpt;
+       bool                    found = false;
 
        /* get the number of CPTs */
        lncpt = cfs_percpt_number(the_lnet.ln_peer_tables);
+
        /* if the cpt number to be examined is >= the number of cpts in
         * the system then indicate that there are no more cpts to examin
         */
-       if (*ncpt > lncpt)
-               return -1;
+       if (*cpt_iter > lncpt)
+               return -ENOENT;
 
        /* get the current table */
-       peer_table = the_lnet.ln_peer_tables[*ncpt];
+       peer_table = the_lnet.ln_peer_tables[*cpt_iter];
        /* if the ptable is NULL then there are no more cpts to examine */
        if (peer_table == NULL)
-               return -1;
+               return -ENOENT;
 
-       lnet_net_lock(*ncpt);
+       lnet_net_lock(*cpt_iter);
 
        for (j = 0; j < LNET_PEER_HASH_SIZE && !found; j++) {
                struct list_head *peers = &peer_table->pt_hash[j];
 
                list_for_each_entry(lp, peers, lp_hashlist) {
-                       if (count-- > 0)
+                       if (peer_index-- > 0)
                                continue;
 
                        snprintf(aliveness, LNET_MAX_STR_LEN, "NA");
@@ -437,13 +441,13 @@ int lnet_get_peers(int count, __u64 *nid, char *aliveness,
                        *peer_min_rtr_credits = lp->lp_mintxcredits;
                        *peer_tx_qnob = lp->lp_txqnob;
 
-                       found = 1;
+                       found = true;
                }
 
        }
-       lnet_net_unlock(*ncpt);
+       lnet_net_unlock(*cpt_iter);
 
-       *ncpt = lncpt;
+       *cpt_iter = lncpt;
 
        return found ? 0 : -ENOENT;
 }