X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lnet%2Fklnds%2Fgnilnd%2Fgnilnd_conn.c;h=f5593081221abffdbf47ae635918035b73fdd8fa;hb=HEAD;hp=dab5633405f3f7a8b6177447f58852052b2bada1;hpb=4b0e495e3c52296a248e37d54665aade87d6901d;p=fs%2Flustre-release.git diff --git a/lnet/klnds/gnilnd/gnilnd_conn.c b/lnet/klnds/gnilnd/gnilnd_conn.c index dab5633..f559308 100644 --- a/lnet/klnds/gnilnd/gnilnd_conn.c +++ b/lnet/klnds/gnilnd/gnilnd_conn.c @@ -49,7 +49,8 @@ kgnilnd_map_fmablk(kgn_device_t *device, kgn_fma_memblock_t *fma_blk) fma_blk->gnm_hold_timeout = 0; /* make sure we are mapping a clean block */ - LASSERTF(fma_blk->gnm_hndl.qword1 == 0UL, "fma_blk %p dirty\n", fma_blk); + LASSERTF(fma_blk->gnm_hndl.qword1 == 0UL, + "fma_blk %px dirty\n", fma_blk); rrc = kgnilnd_mem_register(device->gnd_handle, (__u64)fma_blk->gnm_block, fma_blk->gnm_blk_size, device->gnd_rcv_fma_cqh, @@ -286,7 +287,7 @@ kgnilnd_unmap_fmablk(kgn_device_t *dev, kgn_fma_memblock_t *fma_blk) fma_blk->gnm_mbox_size, fma_blk->gnm_hold_timeout); LASSERTF(rrc == GNI_RC_SUCCESS, - "tried to double unmap or something bad, fma_blk %p (rrc %d)\n", + "tried to double unmap or something bad, fma_blk %px (rrc %d)\n", fma_blk, rrc); if (fma_blk->gnm_hold_timeout && @@ -318,7 +319,7 @@ void kgnilnd_free_fmablk_locked(kgn_device_t *dev, kgn_fma_memblock_t *fma_blk) { LASSERTF(fma_blk->gnm_avail_mboxs == fma_blk->gnm_num_mboxs, - "fma_blk %p@%d free in bad state (%d): blk total %d avail %d held %d\n", + "fma_blk %px@%d free in bad state (%d): blk total %d avail %d held %d\n", fma_blk, fma_blk->gnm_state, fma_blk->gnm_hold_timeout, fma_blk->gnm_num_mboxs, fma_blk->gnm_avail_mboxs, fma_blk->gnm_held_mboxs); @@ -344,10 +345,8 @@ kgnilnd_free_fmablk_locked(kgn_device_t *dev, kgn_fma_memblock_t *fma_blk) * purgatory holds. While we have purgatory holds, we might check the conn * RX mailbox during the CLOSING process. It is possible that kgni might * try to look into the RX side for credits when sending the CLOSE msg too */ - CDEBUG(D_MALLOC, "fmablk %p free buffer %p mbox_size %d\n", - fma_blk, fma_blk->gnm_block, fma_blk->gnm_mbox_size); - if (fma_blk->gnm_state == GNILND_FMABLK_PHYS) { + LIBCFS_MEM_MSG(fma_blk->gnm_block, fma_blk->gnm_mbox_size, "free"); kmem_cache_free(kgnilnd_data.kgn_mbox_cache, fma_blk->gnm_block); } else { kgnilnd_vfree(fma_blk->gnm_block, fma_blk->gnm_blk_size); @@ -414,7 +413,8 @@ kgnilnd_find_free_mbox(kgn_conn_t *conn) /* We'll set the hndl to zero for PHYS blocks unmapped during stack * reset and re-use the same fma_blk after stack reset. This ensures we've * properly mapped it before we use it */ - LASSERTF(fma_blk->gnm_hndl.qword1 != 0UL, "unmapped fma_blk %p, state %d\n", + LASSERTF(fma_blk->gnm_hndl.qword1 != 0UL, + "unmapped fma_blk %px, state %d\n", fma_blk, fma_blk->gnm_state); CDEBUG(D_NET, "conn %p smsg %p fmablk %p " @@ -497,8 +497,9 @@ kgnilnd_release_mbox(kgn_conn_t *conn, int purgatory_hold) break; } } - LASSERTF(found, "unable to find conn 0x%p with gnc_fma_blk %p " - "anywhere in the world\n", conn, conn->gnc_fma_blk); + LASSERTF(found, + "unable to find conn 0x%p with gnc_fma_blk %px anywhere in the world\n", + conn, conn->gnc_fma_blk); LASSERTF(id < fma_blk->gnm_num_mboxs, "bad id %d max %d\n", @@ -546,7 +547,7 @@ kgnilnd_release_mbox(kgn_conn_t *conn, int purgatory_hold) * not worry about state so much in kgnilnd_destroy_conn * and makes the guaranteed cleanup of the resources easier */ LASSERTF(test_and_clear_bit(id, fma_blk->gnm_bit_array), - "conn %p bit %d already cleared in fma_blk %p\n", + "conn %px bit %d already cleared in fma_blk %px\n", conn, id, fma_blk); conn->gnc_fma_blk = NULL; mbox->mbx_nallocs--; @@ -868,7 +869,7 @@ kgnilnd_unpack_connreq(kgn_dgram_t *dgram) rc = kgnilnd_find_net(connreq->gncr_dstnid, &net); if (rc == -ESHUTDOWN) { - CERROR("Looking up network: device is in shutdown"); + CERROR("Looking up network: device is in shutdown\n"); return rc; } else if (rc == -ENONET) { CERROR("Connection data from %s: she sent " @@ -880,12 +881,13 @@ kgnilnd_unpack_connreq(kgn_dgram_t *dgram) return rc; } - if (net->gnn_ni->ni_nid != connreq->gncr_dstnid) { + if (lnet_nid_to_nid4(&net->gnn_ni->ni_nid) != + connreq->gncr_dstnid) { CERROR("Bad connection data from %s: she sent " "dst_nid %s, but I am %s with dgram 0x%p@%s\n", libcfs_nid2str(connreq->gncr_srcnid), libcfs_nid2str(connreq->gncr_dstnid), - libcfs_nid2str(net->gnn_ni->ni_nid), + libcfs_nidstr(&net->gnn_ni->ni_nid), dgram, kgnilnd_dgram_type2str(dgram)); kgnilnd_net_decref(net); return -EBADSLT; @@ -1776,6 +1778,7 @@ kgnilnd_finish_connect(kgn_dgram_t *dgram) { kgn_conn_t *conn = dgram->gndg_conn; lnet_nid_t her_nid = dgram->gndg_conn_in.gncr_srcnid; + struct lnet_nid peer_nid; kgn_peer_t *new_peer, *peer = NULL; kgn_tx_t *tx; kgn_tx_t *txn; @@ -1890,7 +1893,8 @@ kgnilnd_finish_connect(kgn_dgram_t *dgram) /* Dont send NOOP if fail_loc is set */ if (!CFS_FAIL_CHECK(CFS_FAIL_GNI_ONLY_NOOP)) { - tx = kgnilnd_new_tx_msg(GNILND_MSG_NOOP, peer->gnp_net->gnn_ni->ni_nid); + tx = kgnilnd_new_tx_msg(GNILND_MSG_NOOP, + lnet_nid_to_nid4(&peer->gnp_net->gnn_ni->ni_nid)); if (tx == NULL) { CNETERR("can't get TX to initiate NOOP to %s\n", libcfs_nid2str(peer->gnp_nid)); @@ -1950,7 +1954,8 @@ kgnilnd_finish_connect(kgn_dgram_t *dgram) /* Notify LNET that we now have a working connection to this peer. * This is a Cray extension to the "standard" LND behavior. */ - lnet_notify(peer->gnp_net->gnn_ni, peer->gnp_nid, true, true, + lnet_nid4_to_nid(peer->gnp_nid, &peer_nid); + lnet_notify(peer->gnp_net->gnn_ni, &peer_nid, true, true, ktime_get_seconds()); /* drop our 'hold' ref */ @@ -2537,13 +2542,13 @@ kgnilnd_dgram_mover(void *arg) !kgnilnd_data.kgn_quiesce_trigger) { CDEBUG(D_INFO, "schedule timeout %ld (%lu sec)\n", timeout, cfs_duration_sec(timeout)); - wake_up_all(&dev->gnd_dgping_waitq); + wake_up(&dev->gnd_dgping_waitq); schedule(); CDEBUG(D_INFO, "awake after schedule\n"); deadline = jiffies + cfs_time_seconds(*kgnilnd_tunables.kgn_dgram_timeout); } - del_singleshot_timer_sync(&timer.timer); + timer_delete_sync(&timer.timer); finish_wait(&dev->gnd_dgram_waitq, &wait); }