Whamcloud - gitweb
LU-10391 lnet: extend nids in struct lnet_msg
[fs/lustre-release.git] / lnet / klnds / gnilnd / gnilnd.h
index 3c7f742..f7359a4 100644 (file)
@@ -148,6 +148,8 @@ static inline time_t cfs_duration_sec(long duration_jiffies)
 
 /* need sane upper bound to limit copy overhead */
 #define GNILND_MAX_IMMEDIATE      (64<<10)
+/* allow for 4M transfers over gni. Note 2.5M used by DVS */
+#define GNILND_MAX_IOV            1024
 
 /* Max number of connections to keep in purgatory per peer */
 #define GNILND_PURGATORY_MAX     5
@@ -1169,20 +1171,20 @@ do {                                                                    \
                wake_up_var(&kgnilnd_data);                             \
 }while (0)
 
-#define kgnilnd_net_addref(net)                                                 \
-do {                                                                            \
-       int     val = atomic_inc_return(&net->gnn_refcount);                    \
-       LASSERTF(val > 1, "net %p refcount %d\n", net, val);                    \
-       CDEBUG(D_NETTRACE, "net %p->%s++ (%d)\n", net,                          \
-               libcfs_nid2str(net->gnn_ni->ni_nid), val);                      \
+#define kgnilnd_net_addref(net)                                                \
+do {                                                                   \
+       int     val = atomic_inc_return(&net->gnn_refcount);            \
+       LASSERTF(val > 1, "net %p refcount %d\n", net, val);            \
+       CDEBUG(D_NETTRACE, "net %p->%s++ (%d)\n", net,                  \
+               libcfs_nidstr(&net->gnn_ni->ni_nid), val);              \
 } while (0)
 
-#define kgnilnd_net_decref(net)                                                 \
-do {                                                                            \
-       int     val = atomic_dec_return(&net->gnn_refcount);                    \
-       LASSERTF(val >= 0, "net %p refcount %d\n", net, val);                   \
-       CDEBUG(D_NETTRACE, "net %p->%s-- (%d)\n", net,                          \
-              libcfs_nid2str(net->gnn_ni->ni_nid), val);                       \
+#define kgnilnd_net_decref(net)                                                \
+do {                                                                   \
+       int     val = atomic_dec_return(&net->gnn_refcount);            \
+       LASSERTF(val >= 0, "net %p refcount %d\n", net, val);           \
+       CDEBUG(D_NETTRACE, "net %p->%s-- (%d)\n", net,                  \
+              libcfs_nidstr(&net->gnn_ni->ni_nid), val);               \
 } while (0)
 
 #define kgnilnd_peer_addref(peer)                                               \
@@ -1376,7 +1378,7 @@ kgnilnd_check_purgatory_conn(kgn_conn_t *conn)
 
        if (conn->gnc_peer) {
                loopback = conn->gnc_peer->gnp_nid ==
-                      conn->gnc_peer->gnp_net->gnn_ni->ni_nid;
+                       lnet_nid_to_nid4(&conn->gnc_peer->gnp_net->gnn_ni->ni_nid);
        } else {
                /* short circuit - a conn that didn't complete
                 * setup never needs a purgatory hold */
@@ -1744,8 +1746,11 @@ kgnilnd_find_net(lnet_nid_t nid, kgn_net_t **netp)
                return -ESHUTDOWN;
        }
 
-       list_for_each_entry(net, kgnilnd_netnum2netlist(LNET_NETNUM(LNET_NIDNET(nid))), gnn_list) {
-               if (!net->gnn_shutdown && LNET_NIDNET(net->gnn_ni->ni_nid) == LNET_NIDNET(nid)) {
+       list_for_each_entry(net,
+                           kgnilnd_netnum2netlist(LNET_NETNUM(LNET_NIDNET(nid))),
+                           gnn_list) {
+               if (!net->gnn_shutdown &&
+                   LNET_NID_NET(&net->gnn_ni->ni_nid) == LNET_NIDNET(nid)) {
                        kgnilnd_net_addref(net);
                        up_read(&kgnilnd_data.kgn_net_rw_sem);
                        *netp = net;
@@ -1813,7 +1818,8 @@ int kgnilnd_del_conn_or_peer(kgn_net_t *net, lnet_nid_t nid, int command, int er
 void kgnilnd_peer_increase_reconnect_locked(kgn_peer_t *peer);
 void kgnilnd_queue_reply(kgn_conn_t *conn, kgn_tx_t *tx);
 void kgnilnd_queue_tx(kgn_conn_t *conn, kgn_tx_t *tx);
-void kgnilnd_launch_tx(kgn_tx_t *tx, kgn_net_t *net, struct lnet_process_id *target);
+void kgnilnd_launch_tx(kgn_tx_t *tx, kgn_net_t *net,
+                      struct lnet_processid *target);
 int kgnilnd_send_mapped_tx(kgn_tx_t *tx, int try_map_if_full);
 void kgnilnd_consume_rx(kgn_rx_t *rx);