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;
}
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);
}
}
/* 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);
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);
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)
kgnilnd_stats_seq_show(struct seq_file *sf, void *v)
{
kgn_device_t *dev;
- struct timeval now;
+ struct timespec64 now;
if (kgnilnd_data.kgn_init < GNILND_INIT_ALL) {
seq_printf(sf, "kgnilnd is not initialized yet\n");
/* sampling is racy, but so is reading this file! */
smp_rmb();
- do_gettimeofday(&now);
+ ktime_get_ts64(&now);
- seq_printf(sf, "time: %lu.%lu\n"
+ seq_printf(sf, "time: %llu.%lu\n"
"ntx: %d\n"
"npeers: %d\n"
"nconns: %d\n"
"n_mdd: %d\n"
"n_mdd_held: %d\n"
"n_eager_allocs: %d\n"
- "GART map bytes: %ld\n"
+ "GART map bytes: %lld\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 bytes_auth: %lld\n"
+ "RDMAQ bytes_left: %lld\n"
"RDMAQ nstalls: %d\n"
"dev mutex delay: %ld\n"
"dev n_yield: %d\n"
"SMSG fast_ok: %d\n"
"SMSG fast_block: %d\n"
"SMSG ntx: %u\n"
- "SMSG tx_bytes: %lu\n"
+ "SMSG tx_bytes: %llu\n"
"SMSG nrx: %u\n"
- "SMSG rx_bytes: %lu\n"
+ "SMSG rx_bytes: %llu\n"
"RDMA ntx: %u\n"
- "RDMA tx_bytes: %lu\n"
+ "RDMA tx_bytes: %llu\n"
"RDMA nrx: %u\n"
- "RDMA rx_bytes: %lu\n"
+ "RDMA rx_bytes: %llu\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,
+ (s64)now.tv_sec, now.tv_nsec,
atomic_read(&kgnilnd_data.kgn_ntx),
atomic_read(&kgnilnd_data.kgn_npeers),
atomic_read(&kgnilnd_data.kgn_nconns),
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),
+ (s64)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),
+ (s64)atomic64_read(&dev->gnd_rdmaq_bytes_out),
+ (s64)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_fast_ok),
atomic_read(&dev->gnd_fast_block),
atomic_read(&dev->gnd_short_ntx),
- atomic64_read(&dev->gnd_short_txbytes),
+ (s64)atomic64_read(&dev->gnd_short_txbytes),
atomic_read(&dev->gnd_short_nrx),
- atomic64_read(&dev->gnd_short_rxbytes),
+ (s64)atomic64_read(&dev->gnd_short_rxbytes),
atomic_read(&dev->gnd_rdma_ntx),
- atomic64_read(&dev->gnd_rdma_txbytes),
+ (s64)atomic64_read(&dev->gnd_rdma_txbytes),
atomic_read(&dev->gnd_rdma_nrx),
- atomic64_read(&dev->gnd_rdma_rxbytes),
+ (s64)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),
loff_t next = *pos + 1;
rc = kgnilnd_mdd_seq_seek(gseq, next);
+ *pos = next;
if (rc != 0) {
return NULL;
}
- *pos = next;
return gseq;
}
return 0;
}
-static struct seq_operations kgn_mdd_sops = {
+static const struct seq_operations kgn_mdd_sops = {
.start = kgnilnd_mdd_seq_start,
.stop = kgnilnd_mdd_seq_stop,
.next = kgnilnd_mdd_seq_next,
return rc;
}
-static struct file_operations kgn_mdd_fops = {
- .owner = THIS_MODULE,
- .open = kgnilnd_mdd_seq_open,
- .read = seq_read,
- .llseek = seq_lseek,
- .release = seq_release,
+static const struct file_operations kgn_mdd_fops = {
+ .owner = THIS_MODULE,
+ .open = kgnilnd_mdd_seq_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = seq_release,
};
typedef struct {
loff_t next = *pos + 1;
rc = kgnilnd_smsg_seq_seek(gseq, next);
+ *pos = next;
if (rc != 0) {
LIBCFS_FREE(gseq, sizeof(*gseq));
return NULL;
}
- *pos = next;
return gseq;
}
return 0;
}
-static struct seq_operations kgn_smsg_sops = {
+static const struct seq_operations kgn_smsg_sops = {
.start = kgnilnd_smsg_seq_start,
.stop = kgnilnd_smsg_seq_stop,
.next = kgnilnd_smsg_seq_next,
return rc;
}
-static struct file_operations kgn_smsg_fops = {
- .owner = THIS_MODULE,
- .open = kgnilnd_smsg_seq_open,
- .read = seq_read,
- .llseek = seq_lseek,
- .release = seq_release,
+static const struct file_operations kgn_smsg_fops = {
+ .owner = THIS_MODULE,
+ .open = kgnilnd_smsg_seq_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = seq_release,
};
typedef struct {
loff_t next = *pos + 1;
rc = kgnilnd_conn_seq_seek(gseq, next);
+ *pos = next;
if (rc != 0) {
LIBCFS_FREE(gseq, sizeof(*gseq));
return NULL;
}
- *pos = next;
return gseq;
}
return 0;
}
-static struct seq_operations kgn_conn_sops = {
+static const struct seq_operations kgn_conn_sops = {
.start = kgnilnd_conn_seq_start,
.stop = kgnilnd_conn_seq_stop,
.next = kgnilnd_conn_seq_next,
* 2012-12-11T16:06:16.966751 123@gni ...
*/
getnstimeofday(&now);
- time_to_tm(now.tv_sec, 0, &ctm);
+ time64_to_tm(now.tv_sec, 0, &ctm);
jifs = jiffies;
write_lock(&kgnilnd_data.kgn_peer_conn_lock);
return rc;
}
-static struct file_operations kgn_conn_fops = {
- .owner = THIS_MODULE,
- .open = kgnilnd_conn_seq_open,
- .read = seq_read,
- .llseek = seq_lseek,
- .release = seq_release,
+static const struct file_operations kgn_conn_fops = {
+ .owner = THIS_MODULE,
+ .open = kgnilnd_conn_seq_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = seq_release,
};
typedef struct {
loff_t next = *pos + 1;
rc = kgnilnd_peer_seq_seek(gseq, next);
+ *pos = next;
if (rc != 0) {
LIBCFS_FREE(gseq, sizeof(*gseq));
return NULL;
}
- *pos = next;
return gseq;
}
return 0;
}
-static struct seq_operations kgn_peer_sops = {
+static const struct seq_operations kgn_peer_sops = {
.start = kgnilnd_peer_seq_start,
.stop = kgnilnd_peer_seq_stop,
.next = kgnilnd_peer_seq_next,
return rc;
}
-static struct file_operations kgn_peer_fops = {
- .owner = THIS_MODULE,
- .open = kgnilnd_peer_seq_open,
- .read = seq_read,
- .llseek = seq_lseek,
- .release = seq_release,
+static const struct file_operations kgn_peer_fops = {
+ .owner = THIS_MODULE,
+ .open = kgnilnd_peer_seq_open,
+ .read = seq_read,
+ .llseek = seq_lseek,
+ .release = seq_release,
};
static struct proc_dir_entry *kgn_proc_root;