newconn->gnc_peer_connstamp == conn->gnc_my_connstamp) {
CDEBUG(D_NET, "skipping prune of %p, "
"loopback and matching stamps"
- " connstamp "LPU64"("LPU64")"
- " peerstamp "LPU64"("LPU64")\n",
+ " connstamp %llu(%llu)"
+ " peerstamp %llu(%llu)\n",
conn, newconn->gnc_my_connstamp,
conn->gnc_peer_connstamp,
newconn->gnc_peer_connstamp,
if (conn->gnc_peerstamp != newconn->gnc_peerstamp) {
LASSERTF(conn->gnc_peerstamp < newconn->gnc_peerstamp,
- "conn 0x%p peerstamp "LPU64" >= "
- "newconn 0x%p peerstamp "LPU64"\n",
+ "conn 0x%p peerstamp %llu >= "
+ "newconn 0x%p peerstamp %llu\n",
conn, conn->gnc_peerstamp,
newconn, newconn->gnc_peerstamp);
CDEBUG(D_NET, "Closing stale conn nid: %s "
- " peerstamp:"LPX64"("LPX64")\n",
+ " peerstamp:%#llx(%#llx)\n",
libcfs_nid2str(peer->gnp_nid),
conn->gnc_peerstamp, newconn->gnc_peerstamp);
} else {
LASSERTF(conn->gnc_peer_connstamp < newconn->gnc_peer_connstamp,
- "conn 0x%p peer_connstamp "LPU64" >= "
- "newconn 0x%p peer_connstamp "LPU64"\n",
+ "conn 0x%p peer_connstamp %llu >= "
+ "newconn 0x%p peer_connstamp %llu\n",
conn, conn->gnc_peer_connstamp,
newconn, newconn->gnc_peer_connstamp);
CDEBUG(D_NET, "Closing stale conn nid: %s"
- " connstamp:"LPU64"("LPU64")\n",
+ " connstamp:%llu(%llu)\n",
libcfs_nid2str(peer->gnp_nid),
conn->gnc_peer_connstamp, newconn->gnc_peer_connstamp);
}
list_for_each(tmp, &peer->gnp_conns) {
conn = list_entry(tmp, kgn_conn_t, gnc_list);
CDEBUG(D_NET, "checking conn 0x%p for peer %s"
- " lo %d new "LPU64" existing "LPU64
- " new peer "LPU64" existing peer "LPU64
+ " lo %d new %llu existing %llu"
+ " new peer %llu existing peer %llu"
" new dev %p existing dev %p\n",
conn, libcfs_nid2str(peer->gnp_nid),
loopback,
return -ENOMEM;
}
- LIBCFS_ALLOC(conn->gnc_tx_ref_table, GNILND_MAX_MSG_ID * sizeof(void *));
+ conn->gnc_tx_ref_table =
+ kgnilnd_vzalloc(GNILND_MAX_MSG_ID * sizeof(void *));
if (conn->gnc_tx_ref_table == NULL) {
CERROR("Can't allocate conn tx_ref_table\n");
GOTO(failed, rc = -ENOMEM);
failed:
atomic_dec(&kgnilnd_data.kgn_nconns);
- LIBCFS_FREE(conn->gnc_tx_ref_table, GNILND_MAX_MSG_ID * sizeof(void *));
+ kgnilnd_vfree(conn->gnc_tx_ref_table,
+ GNILND_MAX_MSG_ID * sizeof(void *));
LIBCFS_FREE(conn, sizeof(*conn));
return rc;
}
kgnilnd_peer_decref(conn->gnc_peer);
if (conn->gnc_tx_ref_table != NULL) {
- LIBCFS_FREE(conn->gnc_tx_ref_table,
- GNILND_MAX_MSG_ID * sizeof(void *));
+ kgnilnd_vfree(conn->gnc_tx_ref_table,
+ GNILND_MAX_MSG_ID * sizeof(void *));
}
LIBCFS_FREE(conn, sizeof(*conn));
conn->gnc_state = GNILND_CONN_CLOSING;
}
+ if (CFS_FAIL_CHECK(CFS_FAIL_GNI_RDMA_CQ_ERROR)) {
+ msleep_interruptible(MSEC_PER_SEC);
+ }
+
/* leave on peer->gnp_conns to make sure we don't let the reaper
* or others try to unlink this peer until the conn is fully
* processed for closing */
/* log this for help in debuggin SMSG buffer re-use */
CDEBUG(D_NET, "conn %p src %s dst %s smsg %p acquired"
- " local cqid %u SMSG %p->%u hndl "LPX64"."LPX64
- " remote cqid %u SMSG %p->%u hndl "LPX64"."LPX64"\n",
+ " local cqid %u SMSG %p->%u hndl %#llx.%#llx"
+ " remote cqid %u SMSG %p->%u hndl %#llx.%#llx\n",
conn, libcfs_nid2str(connreq->gncr_srcnid),
libcfs_nid2str(connreq->gncr_dstnid),
&conn->gnpr_smsg_attr,
list_for_each_entry_safe(gmp, gmpN, &conn->gnc_mdd_list,
gmp_list) {
CDEBUG(D_NET,
- "dev %p releasing held mdd "LPX64"."LPX64"\n",
+ "dev %p releasing held mdd %#llx.%#llx\n",
conn->gnc_device, gmp->gmp_map_key.qword1,
gmp->gmp_map_key.qword2);
*/
kgnilnd_txlist_done(&zombies, -ENETRESET);
kgnilnd_peer_notify(peer, -ECONNRESET, 0);
- LCONSOLE_INFO("Recieved down event for nid %lld\n", nid);
+ LCONSOLE_INFO("Received down event for nid %d\n",
+ LNET_NIDADDR(nid));
}
return 0;
cq_size = *kgnilnd_tunables.kgn_credits * 2 * 3;
rrc = kgnilnd_cdm_create(dev->gnd_id, *kgnilnd_tunables.kgn_ptag,
- GNI_JOB_CREATE_COOKIE(GNI_PKEY_LND, 0), 0,
+ *kgnilnd_tunables.kgn_pkey, 0,
&dev->gnd_domain);
if (rrc != GNI_RC_SUCCESS) {
CERROR("Can't create CDM %d (%d)\n", dev->gnd_id, rrc);
GOTO(failed, rc = -EINVAL);
}
+ rrc = kgnilnd_register_smdd_buf(dev);
+ if (rrc != GNI_RC_SUCCESS) {
+ GOTO(failed, rc = -EINVAL);
+ }
+
RETURN(0);
failed:
dev->gnd_map_nphys, dev->gnd_map_physnop);
LASSERTF(dev->gnd_map_nvirt == 0 && dev->gnd_map_virtnob == 0,
- "%d virtual mappings of "LPU64" bytes still mapped\n",
+ "%d virtual mappings of %llu bytes still mapped\n",
dev->gnd_map_nvirt, dev->gnd_map_virtnob);
LASSERTF(atomic_read(&dev->gnd_n_mdd) == 0 &&
atomic_read(&kgnilnd_data.kgn_nthreads) == 0,
"tried to shutdown with threads active\n");
+ if (dev->gnd_smdd_hold_buf) {
+ rrc = kgnilnd_deregister_smdd_buf(dev);
+ LASSERTF(rrc == GNI_RC_SUCCESS,
+ "bad rc from deregistion of sMDD buffer: %d\n", rrc);
+ dev->gnd_smdd_hold_buf = NULL;
+ }
+
if (dev->gnd_rcv_fma_cqh) {
rrc = kgnilnd_cq_destroy(dev->gnd_rcv_fma_cqh);
LASSERTF(rrc == GNI_RC_SUCCESS,
EXIT;
}
-void __exit
-kgnilnd_module_fini(void)
+static void __exit kgnilnd_exit(void)
{
lnet_unregister_lnd(&the_kgnilnd);
kgnilnd_proc_fini();
kgnilnd_remove_sysctl();
- kgnilnd_tunables_fini();
}
-int __init
-kgnilnd_module_init(void)
+static int __init kgnilnd_init(void)
{
int rc;
}
MODULE_AUTHOR("Cray, Inc. <nic@cray.com>");
-MODULE_DESCRIPTION("Kernel Gemini LND v"KGNILND_BUILD_REV);
+MODULE_DESCRIPTION("Gemini LNet Network Driver");
+MODULE_VERSION(KGNILND_BUILD_REV);
MODULE_LICENSE("GPL");
-module_init(kgnilnd_module_init);
-module_exit(kgnilnd_module_fini);
+module_init(kgnilnd_init);
+module_exit(kgnilnd_exit);