Whamcloud - gitweb
LU-5275 lprocfs: reduce scope of params_tree.h
[fs/lustre-release.git] / lnet / klnds / gnilnd / gnilnd_proc.c
index 6170583..52d0c3c 100644 (file)
@@ -1,6 +1,8 @@
 /*
  * Copyright (C) 2009-2012 Cray, Inc.
  *
+ * Copyright (c) 2013, Intel Corporation.
+ *
  *   Author: Nic Henke <nic@cray.com>
  *
  *   This file is part of Lustre, http://www.lustre.org.
@@ -39,6 +41,7 @@ _kgnilnd_proc_run_cksum_test(int caseno, int nloops, int nob)
        lnet_kiov_t              *src, *dest;
        struct timespec          begin, end, diff;
        int                      niov;
+       int                      rc = 0;
        int                      i = 0, j = 0, n;
        __u16                    cksum, cksum2;
        __u64                    mbytes;
@@ -48,26 +51,26 @@ _kgnilnd_proc_run_cksum_test(int caseno, int nloops, int nob)
 
        if (src == NULL || dest == NULL) {
                CERROR("couldn't allocate iovs\n");
-               GOTO(unwind, -ENOMEM);
+               GOTO(unwind, rc = -ENOMEM);
        }
 
        for (i = 0; i < LNET_MAX_IOV; i++) {
                src[i].kiov_offset = 0;
-               src[i].kiov_len = CFS_PAGE_SIZE;
-               src[i].kiov_page = cfs_alloc_page(CFS_ALLOC_STD|CFS_ALLOC_ZERO);
+               src[i].kiov_len = PAGE_SIZE;
+               src[i].kiov_page = alloc_page(GFP_KERNEL | __GFP_ZERO);
 
                if (src[i].kiov_page == NULL) {
                        CERROR("couldn't allocate page %d\n", i);
-                       GOTO(unwind, -ENOMEM);
+                       GOTO(unwind, rc = -ENOMEM);
                }
 
                dest[i].kiov_offset = 0;
-               dest[i].kiov_len = CFS_PAGE_SIZE;
-               dest[i].kiov_page = cfs_alloc_page(CFS_ALLOC_STD|CFS_ALLOC_ZERO);
+               dest[i].kiov_len = PAGE_SIZE;
+               dest[i].kiov_page = alloc_page(GFP_KERNEL | __GFP_ZERO);
 
                if (dest[i].kiov_page == NULL) {
                        CERROR("couldn't allocate page %d\n", i);
-                       GOTO(unwind, -ENOMEM);
+                       GOTO(unwind, rc = -ENOMEM);
                }
        }
 
@@ -76,7 +79,7 @@ _kgnilnd_proc_run_cksum_test(int caseno, int nloops, int nob)
        if (niov > LNET_MAX_IOV) {
                CERROR("bytes %d too large, requires niov %d > %d\n",
                        nob, niov, LNET_MAX_IOV);
-               GOTO(unwind, -E2BIG);
+               GOTO(unwind, rc = -E2BIG);
        }
 
        /* setup real data */
@@ -114,19 +117,19 @@ _kgnilnd_proc_run_cksum_test(int caseno, int nloops, int nob)
        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);
-               cksum = kgnilnd_cksum_kiov(niov, src, 0, nob - n, 1);
-               cksum2 = kgnilnd_cksum_kiov(niov, dest, 0, nob - n, 1);
+               cksum = kgnilnd_cksum_kiov(niov, src, 0, nob - (n % nob), 1);
+               cksum2 = kgnilnd_cksum_kiov(niov, dest, 0, nob - (n % nob), 1);
 
                if (cksum != cksum2) {
                        CERROR("case %d loop %d different checksums %x expected %x\n",
                               j, n, cksum2, cksum);
-                       GOTO(unwind, -ENOKEY);
+                       GOTO(unwind, rc = -ENOKEY);
                }
        }
 
        getnstimeofday(&end);
 
-       mbytes = (nloops * nob * 2) / (1024*1024);
+       mbytes = ((__u64)nloops * nob * 2) / (1024*1024);
 
        diff = kgnilnd_ts_sub(end, begin);
 
@@ -137,10 +140,10 @@ unwind:
        CDEBUG(D_NET, "freeing %d pages\n", i);
        for (i -= 1; i >= 0; i--) {
                if (src[i].kiov_page != NULL) {
-                       cfs_free_page(src[i].kiov_page);
+                       __free_page(src[i].kiov_page);
                }
                if (dest[i].kiov_page != NULL) {
-                       cfs_free_page(dest[i].kiov_page);
+                       __free_page(dest[i].kiov_page);
                }
        }
 
@@ -148,7 +151,7 @@ unwind:
                LIBCFS_FREE(src, LNET_MAX_IOV * sizeof(lnet_kiov_t));
        if (dest != NULL)
                LIBCFS_FREE(dest, LNET_MAX_IOV * sizeof(lnet_kiov_t));
-       return 0;
+       return rc;
 }
 
 static int
@@ -158,17 +161,18 @@ kgnilnd_proc_cksum_test_write(struct file *file, const char *ubuffer,
        char                    dummy[256 + 1] = { '\0' };
        int                     testno, nloops, nbytes;
        int                     rc;
+       ENTRY;
 
        if (kgnilnd_data.kgn_init < GNILND_INIT_ALL) {
                CERROR("can't run cksum test, kgnilnd is not initialized yet\n");
-               return -ENOSYS;
+               RETURN(-ENOSYS);
        }
 
        if (count >= sizeof(dummy) || count == 0)
-               return -EINVAL;
+               RETURN(-EINVAL);
 
        if (copy_from_user(dummy, ubuffer, count))
-               return -EFAULT;
+               RETURN(-EFAULT);
 
        if (sscanf(dummy, "%d:%d:%d", &testno, &nloops, &nbytes) == 3) {
                rc = _kgnilnd_proc_run_cksum_test(testno, nloops, nbytes);
@@ -212,6 +216,7 @@ kgnilnd_proc_stats_read(char *page, char **start, off_t off,
                           "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"
@@ -249,6 +254,7 @@ kgnilnd_proc_stats_read(char *page, char **start, off_t off,
                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,
@@ -685,14 +691,13 @@ static struct seq_operations kgn_smsg_sops = {
 static int
 kgnilnd_smsg_seq_open(struct inode *inode, struct file *file)
 {
-       struct proc_dir_entry *dp = PDE(inode);
        struct seq_file       *sf;
        int                    rc;
 
        rc = seq_open(file, &kgn_smsg_sops);
        if (rc == 0) {
                sf = file->private_data;
-               sf->private = dp->data;
+               sf->private = PDE_DATA(inode);
        }
 
        return rc;
@@ -1026,14 +1031,13 @@ kgnilnd_proc_peer_conns_read(char *page, char **start, off_t off,
 static int
 kgnilnd_conn_seq_open(struct inode *inode, struct file *file)
 {
-       struct proc_dir_entry *dp = PDE(inode);
        struct seq_file       *sf;
        int                    rc;
 
        rc = seq_open(file, &kgn_conn_sops);
        if (rc == 0) {
                sf = file->private_data;
-               sf->private = dp->data;
+               sf->private = PDE_DATA(inode);
        }
 
        return rc;
@@ -1250,14 +1254,13 @@ static struct seq_operations kgn_peer_sops = {
 static int
 kgnilnd_peer_seq_open(struct inode *inode, struct file *file)
 {
-       struct proc_dir_entry *dp = PDE(inode);
        struct seq_file       *sf;
        int                    rc;
 
        rc = seq_open(file, &kgn_peer_sops);
        if (rc == 0) {
                sf = file->private_data;
-               sf->private = dp->data;
+               sf->private = PDE_DATA(inode);
        }
 
        return rc;
@@ -1292,8 +1295,7 @@ kgnilnd_proc_init(void)
        pde = create_proc_entry(GNILND_PROC_CKSUM_TEST, 0200, kgn_proc_root);
        if (pde == NULL) {
                CERROR("couldn't create proc entry %s\n", GNILND_PROC_CKSUM_TEST);
-               rc = -ENOENT;
-               GOTO(remove_dir, rc);
+               GOTO(remove_dir, rc = -ENOENT);
        }
 
        pde->data = NULL;
@@ -1303,8 +1305,7 @@ kgnilnd_proc_init(void)
        pde = create_proc_entry(GNILND_PROC_STATS, 0644, kgn_proc_root);
        if (pde == NULL) {
                CERROR("couldn't create proc entry %s\n", GNILND_PROC_STATS);
-               rc = -ENOENT;
-               GOTO(remove_test, rc);
+               GOTO(remove_test, rc = -ENOENT);
        }
 
        pde->data = NULL;
@@ -1315,8 +1316,7 @@ kgnilnd_proc_init(void)
        pde = create_proc_entry(GNILND_PROC_MDD, 0444, kgn_proc_root);
        if (pde == NULL) {
                CERROR("couldn't create proc entry %s\n", GNILND_PROC_MDD);
-               rc = -ENOENT;
-               GOTO(remove_stats, rc);
+               GOTO(remove_stats, rc = -ENOENT);
        }
 
        pde->data = NULL;
@@ -1326,8 +1326,7 @@ kgnilnd_proc_init(void)
        pde = create_proc_entry(GNILND_PROC_SMSG, 0444, kgn_proc_root);
        if (pde == NULL) {
                CERROR("couldn't create proc entry %s\n", GNILND_PROC_SMSG);
-               rc = -ENOENT;
-               GOTO(remove_mdd, rc);
+               GOTO(remove_mdd, rc = -ENOENT);
        }
 
        pde->data = NULL;
@@ -1337,8 +1336,7 @@ kgnilnd_proc_init(void)
        pde = create_proc_entry(GNILND_PROC_CONN, 0444, kgn_proc_root);
        if (pde == NULL) {
                CERROR("couldn't create proc entry %s\n", GNILND_PROC_CONN);
-               rc = -ENOENT;
-               GOTO(remove_smsg, rc);
+               GOTO(remove_smsg, rc = -ENOENT);
        }
 
        pde->data = NULL;
@@ -1348,8 +1346,7 @@ kgnilnd_proc_init(void)
        pde = create_proc_entry(GNILND_PROC_PEER_CONNS, 0644, kgn_proc_root);
        if (pde == NULL) {
                CERROR("couldn't create proc entry %s\n", GNILND_PROC_PEER_CONNS);
-               rc = -ENOENT;
-               GOTO(remove_conn, rc);
+               GOTO(remove_conn, rc = -ENOENT);
        }
 
        pde->data = NULL;
@@ -1360,8 +1357,7 @@ kgnilnd_proc_init(void)
        pde = create_proc_entry(GNILND_PROC_PEER, 0444, kgn_proc_root);
        if (pde == NULL) {
                CERROR("couldn't create proc entry %s\n", GNILND_PROC_PEER);
-               rc = -ENOENT;
-               GOTO(remove_pc, rc);
+               GOTO(remove_pc, rc = -ENOENT);
        }
 
        pde->data = NULL;