MCPcopy Create free account
hub / github.com/F-Stack/f-stack / wlat_test

Function wlat_test

freebsd/contrib/rdma/krping/krping.c:988–1133  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

986}
987
988static void wlat_test(struct krping_cb *cb)
989{
990 int ccnt, scnt, rcnt;
991 int iters=cb->count;
992 volatile char *poll_buf = (char *) cb->start_buf;
993 char *buf = (char *)cb->rdma_buf;
994 struct timeval start_tv, stop_tv;
995 cycles_t *post_cycles_start = NULL;
996 cycles_t *post_cycles_stop = NULL;
997 cycles_t *poll_cycles_start = NULL;
998 cycles_t *poll_cycles_stop = NULL;
999 cycles_t *last_poll_cycles_start = NULL;
1000 cycles_t sum_poll = 0, sum_post = 0, sum_last_poll = 0;
1001 int i;
1002 int cycle_iters = 1000;
1003
1004 ccnt = 0;
1005 scnt = 0;
1006 rcnt = 0;
1007
1008 post_cycles_start = kmalloc(cycle_iters * sizeof(cycles_t), GFP_KERNEL);
1009 if (!post_cycles_start) {
1010 printk(KERN_ERR PFX "%s kmalloc failed\n", __FUNCTION__);
1011 goto done;
1012 }
1013 post_cycles_stop = kmalloc(cycle_iters * sizeof(cycles_t), GFP_KERNEL);
1014 if (!post_cycles_stop) {
1015 printk(KERN_ERR PFX "%s kmalloc failed\n", __FUNCTION__);
1016 goto done;
1017 }
1018 poll_cycles_start = kmalloc(cycle_iters * sizeof(cycles_t), GFP_KERNEL);
1019 if (!poll_cycles_start) {
1020 printk(KERN_ERR PFX "%s kmalloc failed\n", __FUNCTION__);
1021 goto done;
1022 }
1023 poll_cycles_stop = kmalloc(cycle_iters * sizeof(cycles_t), GFP_KERNEL);
1024 if (!poll_cycles_stop) {
1025 printk(KERN_ERR PFX "%s kmalloc failed\n", __FUNCTION__);
1026 goto done;
1027 }
1028 last_poll_cycles_start = kmalloc(cycle_iters * sizeof(cycles_t),
1029 GFP_KERNEL);
1030 if (!last_poll_cycles_start) {
1031 printk(KERN_ERR PFX "%s kmalloc failed\n", __FUNCTION__);
1032 goto done;
1033 }
1034 cb->rdma_sq_wr.wr.opcode = IB_WR_RDMA_WRITE;
1035 cb->rdma_sq_wr.rkey = cb->remote_rkey;
1036 cb->rdma_sq_wr.remote_addr = cb->remote_addr;
1037 cb->rdma_sq_wr.wr.sg_list->length = cb->size;
1038
1039 if (cycle_iters > iters)
1040 cycle_iters = iters;
1041 microtime(&start_tv);
1042 while (scnt < iters || ccnt < iters || rcnt < iters) {
1043
1044 /* Wait till buffer changes. */
1045 if (rcnt < iters && !(scnt < 1 && !cb->server)) {

Callers 2

krping_wlat_test_serverFunction · 0.85
krping_wlat_test_clientFunction · 0.85

Calls 2

microtimeFunction · 0.85
get_cyclesFunction · 0.85

Tested by

no test coverage detected