/*
- * Copyright (C) 2009-2012 Cray, Inc.
+ * Copyright (C) 2009-2012, 2016 Cray, Inc.
*
- * Copyright (c) 2013, Intel Corporation.
+ * Copyright (c) 2013, 2015, Intel Corporation.
*
* Author: Nic Henke <nic@cray.com>
+ * Author: James Shimek <jshimek@cray.com>
*
* This file is part of Lustre, http://www.lustre.org.
*
for (i = 0; i < LNET_MAX_IOV; i++) {
src[i].kiov_offset = 0;
src[i].kiov_len = PAGE_SIZE;
- src[i].kiov_page = alloc_page(__GFP_WAIT | __GFP_IO |
- __GFP_FS | __GFP_ZERO);
+ src[i].kiov_page = alloc_page(GFP_KERNEL | __GFP_ZERO);
if (src[i].kiov_page == NULL) {
CERROR("couldn't allocate page %d\n", i);
dest[i].kiov_offset = 0;
dest[i].kiov_len = PAGE_SIZE;
- dest[i].kiov_page = alloc_page(__GFP_WAIT | __GFP_IO |
- __GFP_FS | __GFP_ZERO);
+ dest[i].kiov_page = alloc_page(GFP_KERNEL | __GFP_ZERO);
if (dest[i].kiov_page == NULL) {
CERROR("couldn't allocate page %d\n", i);
diff = kgnilnd_ts_sub(end, begin);
- LCONSOLE_INFO("running "LPD64"MB took %ld.%ld seconds\n",
+ LCONSOLE_INFO("running %lldMB took %ld.%ld seconds\n",
mbytes, diff.tv_sec, diff.tv_nsec);
unwind:
static const struct file_operations kgn_cksum_test_fops = {
.owner = THIS_MODULE,
.open = kgnilnd_cksum_test_seq_open,
- .read = seq_read,
.write = kgnilnd_proc_cksum_test_write,
.llseek = seq_lseek,
.release = seq_release,
{
kgn_device_t *dev;
struct timeval now;
- int rc;
if (kgnilnd_data.kgn_init < GNILND_INIT_ALL) {
- rc = seq_printf(sf, "kgnilnd is not initialized yet\n");
- return rc;
+ seq_printf(sf, "kgnilnd is not initialized yet\n");
+ return 0;
}
/* only do the first device */
smp_rmb();
do_gettimeofday(&now);
- rc = seq_printf(sf, "time: %lu.%lu\n"
- "ntx: %d\n"
- "npeers: %d\n"
- "nconns: %d\n"
- "nEPs: %d\n"
- "ndgrams: %d\n"
- "nfmablk: %d\n"
- "n_mdd: %d\n"
- "n_mdd_held: %d\n"
- "n_eager_allocs: %d\n"
- "GART map bytes: %ld\n"
- "TX queued maps: %d\n"
- "TX phys nmaps: %d\n"
- "TX phys bytes: %lu\n"
- "TX virt nmaps: %d\n"
- "TX virt bytes: "LPU64"\n"
- "RDMAQ bytes_auth: %ld\n"
- "RDMAQ bytes_left: %ld\n"
- "RDMAQ nstalls: %d\n"
- "dev mutex delay: %ld\n"
- "dev n_yield: %d\n"
- "dev n_schedule: %d\n"
- "SMSG fast_try: %d\n"
- "SMSG fast_ok: %d\n"
- "SMSG fast_block: %d\n"
- "SMSG ntx: %u\n"
- "SMSG tx_bytes: %lu\n"
- "SMSG nrx: %u\n"
- "SMSG rx_bytes: %lu\n"
- "RDMA ntx: %u\n"
- "RDMA tx_bytes: %lu\n"
- "RDMA nrx: %u\n"
- "RDMA rx_bytes: %lu\n"
- "VMAP short: %d\n"
- "VMAP cksum: %d\n"
- "KMAP short: %d\n"
- "RDMA REV length: %d\n"
- "RDMA REV offset: %d\n"
- "RDMA REV copy: %d\n",
- now.tv_sec, now.tv_usec,
- atomic_read(&kgnilnd_data.kgn_ntx),
- atomic_read(&kgnilnd_data.kgn_npeers),
- atomic_read(&kgnilnd_data.kgn_nconns),
- atomic_read(&dev->gnd_neps),
- atomic_read(&dev->gnd_ndgrams),
- atomic_read(&dev->gnd_nfmablk),
- atomic_read(&dev->gnd_n_mdd), atomic_read(&dev->gnd_n_mdd_held),
- atomic_read(&kgnilnd_data.kgn_neager_allocs),
- atomic64_read(&dev->gnd_nbytes_map),
- atomic_read(&dev->gnd_nq_map),
- dev->gnd_map_nphys, dev->gnd_map_physnop * PAGE_SIZE,
- dev->gnd_map_nvirt, dev->gnd_map_virtnob,
- atomic64_read(&dev->gnd_rdmaq_bytes_out),
- atomic64_read(&dev->gnd_rdmaq_bytes_ok),
- atomic_read(&dev->gnd_rdmaq_nstalls),
- dev->gnd_mutex_delay,
- atomic_read(&dev->gnd_n_yield), atomic_read(&dev->gnd_n_schedule),
- atomic_read(&dev->gnd_fast_try), atomic_read(&dev->gnd_fast_ok),
- atomic_read(&dev->gnd_fast_block),
- atomic_read(&dev->gnd_short_ntx), atomic64_read(&dev->gnd_short_txbytes),
- atomic_read(&dev->gnd_short_nrx), atomic64_read(&dev->gnd_short_rxbytes),
- atomic_read(&dev->gnd_rdma_ntx), atomic64_read(&dev->gnd_rdma_txbytes),
- atomic_read(&dev->gnd_rdma_nrx), atomic64_read(&dev->gnd_rdma_rxbytes),
- atomic_read(&kgnilnd_data.kgn_nvmap_short),
- atomic_read(&kgnilnd_data.kgn_nvmap_cksum),
- atomic_read(&kgnilnd_data.kgn_nkmap_short),
- atomic_read(&kgnilnd_data.kgn_rev_length),
- atomic_read(&kgnilnd_data.kgn_rev_offset),
- atomic_read(&kgnilnd_data.kgn_rev_copy_buff));
+ seq_printf(sf, "time: %lu.%lu\n"
+ "ntx: %d\n"
+ "npeers: %d\n"
+ "nconns: %d\n"
+ "nEPs: %d\n"
+ "ndgrams: %d\n"
+ "nfmablk: %d\n"
+ "n_mdd: %d\n"
+ "n_mdd_held: %d\n"
+ "n_eager_allocs: %d\n"
+ "GART map bytes: %ld\n"
+ "TX queued maps: %d\n"
+ "TX phys nmaps: %d\n"
+ "TX phys bytes: %lu\n"
+ "TX virt nmaps: %d\n"
+ "TX virt bytes: %llu\n"
+ "RDMAQ bytes_auth: %ld\n"
+ "RDMAQ bytes_left: %ld\n"
+ "RDMAQ nstalls: %d\n"
+ "dev mutex delay: %ld\n"
+ "dev n_yield: %d\n"
+ "dev n_schedule: %d\n"
+ "SMSG fast_try: %d\n"
+ "SMSG fast_ok: %d\n"
+ "SMSG fast_block: %d\n"
+ "SMSG ntx: %u\n"
+ "SMSG tx_bytes: %lu\n"
+ "SMSG nrx: %u\n"
+ "SMSG rx_bytes: %lu\n"
+ "RDMA ntx: %u\n"
+ "RDMA tx_bytes: %lu\n"
+ "RDMA nrx: %u\n"
+ "RDMA rx_bytes: %lu\n"
+ "VMAP short: %d\n"
+ "VMAP cksum: %d\n"
+ "KMAP short: %d\n"
+ "RDMA REV length: %d\n"
+ "RDMA REV offset: %d\n"
+ "RDMA REV copy: %d\n",
+ now.tv_sec, now.tv_usec,
+ atomic_read(&kgnilnd_data.kgn_ntx),
+ atomic_read(&kgnilnd_data.kgn_npeers),
+ atomic_read(&kgnilnd_data.kgn_nconns),
+ atomic_read(&dev->gnd_neps),
+ atomic_read(&dev->gnd_ndgrams),
+ atomic_read(&dev->gnd_nfmablk),
+ atomic_read(&dev->gnd_n_mdd), atomic_read(&dev->gnd_n_mdd_held),
+ atomic_read(&kgnilnd_data.kgn_neager_allocs),
+ atomic64_read(&dev->gnd_nbytes_map),
+ atomic_read(&dev->gnd_nq_map),
+ dev->gnd_map_nphys, dev->gnd_map_physnop * PAGE_SIZE,
+ dev->gnd_map_nvirt, dev->gnd_map_virtnob,
+ atomic64_read(&dev->gnd_rdmaq_bytes_out),
+ atomic64_read(&dev->gnd_rdmaq_bytes_ok),
+ atomic_read(&dev->gnd_rdmaq_nstalls),
+ dev->gnd_mutex_delay,
+ atomic_read(&dev->gnd_n_yield),
+ atomic_read(&dev->gnd_n_schedule),
+ atomic_read(&dev->gnd_fast_try),
+ atomic_read(&dev->gnd_fast_ok),
+ atomic_read(&dev->gnd_fast_block),
+ atomic_read(&dev->gnd_short_ntx),
+ atomic64_read(&dev->gnd_short_txbytes),
+ atomic_read(&dev->gnd_short_nrx),
+ atomic64_read(&dev->gnd_short_rxbytes),
+ atomic_read(&dev->gnd_rdma_ntx),
+ atomic64_read(&dev->gnd_rdma_txbytes),
+ atomic_read(&dev->gnd_rdma_nrx),
+ atomic64_read(&dev->gnd_rdma_rxbytes),
+ atomic_read(&kgnilnd_data.kgn_nvmap_short),
+ atomic_read(&kgnilnd_data.kgn_nvmap_cksum),
+ atomic_read(&kgnilnd_data.kgn_nkmap_short),
+ atomic_read(&kgnilnd_data.kgn_rev_length),
+ atomic_read(&kgnilnd_data.kgn_rev_offset),
+ atomic_read(&kgnilnd_data.kgn_rev_copy_buff));
- return rc;
+ return 0;
}
static ssize_t
hndl.qword1 = tx->tx_map_key.qword1;
hndl.qword2 = tx->tx_map_key.qword2;
- seq_printf(s, "%p %x %16"LPF64"u %8d %#8x "LPX64"."LPX64"x\n",
+ seq_printf(s, "%p %x %16llu %8d %#8x %#llx.%#llxx\n",
tx, id, nob, physnop, buftype,
hndl.qword1, hndl.qword2);
spin_unlock(&dev->gnd_fmablk_lock);
if (live) {
- seq_printf(s, "%5d %4s %6d/%5d/%5d %9d %18p "LPX64"."LPX64"\n",
+ seq_printf(s, "%5d %4s %6d/%5d/%5d %9d %18p %#llx.%#llx\n",
(int) gseq->gsmsg_off, kgnilnd_fmablk_state2str(state),
avail_mboxs, held_mboxs, num_mboxs, blk_size,
fmablk, hndl.qword1, hndl.qword2);
"rx sq %u %dms/%dms "
"noop r/s %d/%d w/s/cq %lds/%lds/%lds "
"sched a/d %lds/%lds "
- "tx_re "LPD64" TO %ds %s\n",
+ "tx_re %lld TO %ds %s\n",
conn, peer ? libcfs_nid2str(peer->gnp_nid) : "<?>",
atomic_read(&conn->gnc_refcount),
kgnilnd_count_list(&conn->gnc_fmaq),
atomic_read(&conn->gnc_nlive_fma),
atomic_read(&conn->gnc_nlive_rdma),
- conn->gnc_tx_seq,
+ atomic_read(&conn->gnc_tx_seq),
jiffies_to_msecs(jiffies - conn->gnc_last_tx),
jiffies_to_msecs(jiffies - conn->gnc_last_tx_cq),
- conn->gnc_rx_seq,
+ atomic_read(&conn->gnc_rx_seq),
jiffies_to_msecs(jiffies - conn->gnc_last_rx),
jiffies_to_msecs(jiffies - conn->gnc_last_rx_cq),
atomic_read(&conn->gnc_reaper_noop),
struct tm ctm;
struct timespec now;
unsigned long jifs;
- int rc = 0;
if (kgnilnd_debug_peer_nid == KGN_DEBUG_PEER_NID_DEFAULT) {
- rc = seq_printf(sf, "peer_conns not initialized\n");
- return rc;
+ seq_printf(sf, "peer_conns not initialized\n");
+ return 0;
}
/* sample date/time stamp - print time in UTC
peer = kgnilnd_find_peer_locked(kgnilnd_debug_peer_nid);
if (peer == NULL) {
- rc = seq_printf(sf, "peer not found for this nid %d\n",
+ seq_printf(sf, "peer not found for this nid %d\n",
kgnilnd_debug_peer_nid);
write_unlock(&kgnilnd_data.kgn_peer_conn_lock);
- return rc;
+ return 0;
}
list_for_each_entry(conn, &peer->gnp_conns, gnc_list) {
- rc = seq_printf(sf,
- "%04ld-%02d-%02dT%02d:%02d:%02d.%06ld %s "
- "mbox adr %p "
- "dg type %s "
- "%s "
- "purg %d "
- "close s/r %d/%d "
- "err %d peer err %d "
- "tx sq %u %dms/%dms "
- "rx sq %u %dms/%dms/%dms "
- "tx retran %lld\n",
- ctm.tm_year+1900, ctm.tm_mon+1, ctm.tm_mday,
- ctm.tm_hour, ctm.tm_min, ctm.tm_sec, now.tv_nsec,
- libcfs_nid2str(peer->gnp_nid),
- conn->remote_mbox_addr,
- kgnilnd_conn_dgram_type2str(conn->gnc_dgram_type),
- kgnilnd_conn_state2str(conn),
- conn->gnc_in_purgatory,
- conn->gnc_close_sent,
- conn->gnc_close_recvd,
- conn->gnc_error,
- conn->gnc_peer_error,
- conn->gnc_tx_seq,
- jiffies_to_msecs(jifs - conn->gnc_last_tx),
- jiffies_to_msecs(jifs - conn->gnc_last_tx_cq),
- conn->gnc_rx_seq,
- jiffies_to_msecs(jifs - conn->gnc_first_rx),
- jiffies_to_msecs(jifs - conn->gnc_last_rx),
- jiffies_to_msecs(jifs - conn->gnc_last_rx_cq),
- conn->gnc_tx_retrans);
+ seq_printf(sf,
+ "%04ld-%02d-%02dT%02d:%02d:%02d.%06ld %s "
+ "mbox adr %p "
+ "dg type %s "
+ "%s "
+ "purg %d "
+ "close s/r %d/%d "
+ "err %d peer err %d "
+ "tx sq %u %dms/%dms "
+ "rx sq %u %dms/%dms/%dms "
+ "tx retran %lld\n",
+ ctm.tm_year+1900, ctm.tm_mon+1, ctm.tm_mday,
+ ctm.tm_hour, ctm.tm_min, ctm.tm_sec, now.tv_nsec,
+ libcfs_nid2str(peer->gnp_nid),
+ conn->remote_mbox_addr,
+ kgnilnd_conn_dgram_type2str(conn->gnc_dgram_type),
+ kgnilnd_conn_state2str(conn),
+ conn->gnc_in_purgatory,
+ conn->gnc_close_sent,
+ conn->gnc_close_recvd,
+ conn->gnc_error,
+ conn->gnc_peer_error,
+ atomic_read(&conn->gnc_tx_seq),
+ jiffies_to_msecs(jifs - conn->gnc_last_tx),
+ jiffies_to_msecs(jifs - conn->gnc_last_tx_cq),
+ atomic_read(&conn->gnc_rx_seq),
+ jiffies_to_msecs(jifs - conn->gnc_first_rx),
+ jiffies_to_msecs(jifs - conn->gnc_last_rx),
+ jiffies_to_msecs(jifs - conn->gnc_last_rx_cq),
+ conn->gnc_tx_retrans);
}
write_unlock(&kgnilnd_data.kgn_peer_conn_lock);
- return rc;
+ return 0;
}
static int
read_unlock(&kgnilnd_data.kgn_peer_conn_lock);
- seq_printf(s, "%p->%s [%d] %s NIC 0x%x q %d conn %c purg %d "
- "last %d@%dms dgram %d@%dms "
- "reconn %dms to %lus \n",
+ seq_printf(s, "%p->%s [%d] %s NIC 0x%x q %d conn %c purg %d last %d@%dms dgram %d@%dms reconn %dms to %lus \n",
peer, libcfs_nid2str(peer->gnp_nid),
atomic_read(&peer->gnp_refcount),
- (peer->gnp_down == GNILND_RCA_NODE_DOWN) ? "down" : "up",
+ (peer->gnp_state == GNILND_PEER_DOWN) ? "down" :
+ peer->gnp_state == GNILND_PEER_TIMED_OUT ? "timedout" : "up",
peer->gnp_host_id,
kgnilnd_count_list(&peer->gnp_tx_queue),
conn_str,