Whamcloud - gitweb
LU-13004 gnilnd: remove support for GNILND_BUF_VIRT_*
[fs/lustre-release.git] / lnet / klnds / gnilnd / gnilnd_proc.c
index 6238e52..a833026 100644 (file)
@@ -40,7 +40,7 @@
 static int
 _kgnilnd_proc_run_cksum_test(int caseno, int nloops, int nob)
 {
-       lnet_kiov_t              *src, *dest;
+       struct bio_vec          *src, *dest;
        struct timespec          begin, end, diff;
        int                      niov;
        int                      rc = 0;
@@ -48,8 +48,8 @@ _kgnilnd_proc_run_cksum_test(int caseno, int nloops, int nob)
        __u16                    cksum, cksum2;
        __u64                    mbytes;
 
-       LIBCFS_ALLOC(src, LNET_MAX_IOV * sizeof(lnet_kiov_t));
-       LIBCFS_ALLOC(dest, LNET_MAX_IOV * sizeof(lnet_kiov_t));
+       CFS_ALLOC_PTR_ARRAY(src, LNET_MAX_IOV);
+       CFS_ALLOC_PTR_ARRAY(dest, LNET_MAX_IOV);
 
        if (src == NULL || dest == NULL) {
                CERROR("couldn't allocate iovs\n");
@@ -57,20 +57,20 @@ _kgnilnd_proc_run_cksum_test(int caseno, int nloops, int nob)
        }
 
        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_KERNEL | __GFP_ZERO);
+               src[i].bv_offset = 0;
+               src[i].bv_len = PAGE_SIZE;
+               src[i].bv_page = alloc_page(GFP_KERNEL | __GFP_ZERO);
 
-               if (src[i].kiov_page == NULL) {
+               if (src[i].bv_page == NULL) {
                        CERROR("couldn't allocate page %d\n", i);
                        GOTO(unwind, rc = -ENOMEM);
                }
 
-               dest[i].kiov_offset = 0;
-               dest[i].kiov_len = PAGE_SIZE;
-               dest[i].kiov_page = alloc_page(GFP_KERNEL | __GFP_ZERO);
+               dest[i].bv_offset = 0;
+               dest[i].bv_len = PAGE_SIZE;
+               dest[i].bv_page = alloc_page(GFP_KERNEL | __GFP_ZERO);
 
-               if (dest[i].kiov_page == NULL) {
+               if (dest[i].bv_page == NULL) {
                        CERROR("couldn't allocate page %d\n", i);
                        GOTO(unwind, rc = -ENOMEM);
                }
@@ -85,31 +85,31 @@ _kgnilnd_proc_run_cksum_test(int caseno, int nloops, int nob)
        }
 
        /* setup real data */
-       src[0].kiov_offset = 317;
-       dest[0].kiov_offset = 592;
+       src[0].bv_offset = 317;
+       dest[0].bv_offset = 592;
        switch (caseno) {
        default:
                /* odd -> even */
                break;
        case 1:
                /* odd -> odd */
-               dest[0].kiov_offset -= 1;
+               dest[0].bv_offset -= 1;
                break;
        case 2:
                /* even -> even */
-               src[0].kiov_offset += 1;
+               src[0].bv_offset += 1;
                break;
        case 3:
                /* even -> odd */
-               src[0].kiov_offset += 1;
-               dest[0].kiov_offset -= 1;
+               src[0].bv_offset += 1;
+               dest[0].bv_offset -= 1;
        }
-       src[0].kiov_len = PAGE_SIZE - src[0].kiov_offset;
-       dest[0].kiov_len = PAGE_SIZE - dest[0].kiov_offset;
+       src[0].bv_len = PAGE_SIZE - src[0].bv_offset;
+       dest[0].bv_len = PAGE_SIZE - dest[0].bv_offset;
 
        for (i = 0; i < niov; i++) {
-               memset(page_address(src[i].kiov_page) + src[i].kiov_offset,
-                      0xf0 + i, src[i].kiov_len);
+               memset(page_address(src[i].bv_page) + src[i].bv_offset,
+                      0xf0 + i, src[i].bv_len);
        }
 
        lnet_copy_kiov2kiov(niov, dest, 0, niov, src, 0, nob);
@@ -117,8 +117,10 @@ _kgnilnd_proc_run_cksum_test(int caseno, int nloops, int nob)
        getnstimeofday(&begin);
 
        for (n = 0; n < nloops; n++) {
-               CDEBUG(D_BUFFS, "case %d loop %d src %d dest %d nob %d niov %d\n",
-                      caseno, n, src[0].kiov_offset, dest[0].kiov_offset, nob, niov);
+               CDEBUG(D_BUFFS,
+                      "case %d loop %d src %d dest %d nob %d niov %d\n",
+                      caseno, n, src[0].bv_offset, dest[0].bv_offset, nob,
+                      niov);
                cksum = kgnilnd_cksum_kiov(niov, src, 0, nob - (n % nob), 1);
                cksum2 = kgnilnd_cksum_kiov(niov, dest, 0, nob - (n % nob), 1);
 
@@ -141,18 +143,17 @@ _kgnilnd_proc_run_cksum_test(int caseno, int nloops, int nob)
 unwind:
        CDEBUG(D_NET, "freeing %d pages\n", i);
        for (i -= 1; i >= 0; i--) {
-               if (src[i].kiov_page != NULL) {
-                       __free_page(src[i].kiov_page);
-               }
-               if (dest[i].kiov_page != NULL) {
-                       __free_page(dest[i].kiov_page);
-               }
+               if (src[i].bv_page)
+                       __free_page(src[i].bv_page);
+
+               if (dest[i].bv_page)
+                       __free_page(dest[i].bv_page);
        }
 
        if (src != NULL)
-               LIBCFS_FREE(src, LNET_MAX_IOV * sizeof(lnet_kiov_t));
+               CFS_FREE_PTR_ARRAY(src, LNET_MAX_IOV);
        if (dest != NULL)
-               LIBCFS_FREE(dest, LNET_MAX_IOV * sizeof(lnet_kiov_t));
+               CFS_FREE_PTR_ARRAY(dest, LNET_MAX_IOV);
        return rc;
 }
 
@@ -207,11 +208,10 @@ kgnilnd_stats_seq_show(struct seq_file *sf, void *v)
 {
        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 */
@@ -221,77 +221,80 @@ kgnilnd_stats_seq_show(struct seq_file *sf, void *v)
        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: %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));
+       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"
+                  "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,
+                  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
@@ -994,11 +997,10 @@ kgnilnd_proc_peer_conns_seq_show(struct seq_file *sf, void *v)
        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
@@ -1012,47 +1014,47 @@ kgnilnd_proc_peer_conns_seq_show(struct seq_file *sf, void *v)
        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,
-                       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);
+               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
@@ -1263,7 +1265,7 @@ kgnilnd_peer_seq_show(struct seq_file *s, void *iter)
 
        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@%lldms dgram %d@%dms reconn %dms to %lus \n",
                peer, libcfs_nid2str(peer->gnp_nid),
                atomic_read(&peer->gnp_refcount),
                (peer->gnp_state == GNILND_PEER_DOWN) ? "down" :
@@ -1273,7 +1275,7 @@ kgnilnd_peer_seq_show(struct seq_file *s, void *iter)
                conn_str,
                purg_count,
                peer->gnp_last_errno,
-               jiffies_to_msecs(jiffies - peer->gnp_last_alive),
+               (ktime_get_seconds() - peer->gnp_last_alive) * MSEC_PER_SEC,
                peer->gnp_last_dgram_errno,
                jiffies_to_msecs(jiffies - peer->gnp_last_dgram_time),
                peer->gnp_reconnect_interval != 0