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

Function krping_test_client

freebsd/contrib/rdma/krping/krping.c:1485–1557  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1483}
1484
1485static void krping_test_client(struct krping_cb *cb)
1486{
1487 int ping, start, cc, i, ret;
1488 struct ib_send_wr *bad_wr;
1489 unsigned char c;
1490
1491 start = 65;
1492 for (ping = 0; !cb->count || ping < cb->count; ping++) {
1493 cb->state = RDMA_READ_ADV;
1494
1495 /* Put some ascii text in the buffer. */
1496 cc = sprintf(cb->start_buf, "rdma-ping-%d: ", ping);
1497 for (i = cc, c = start; i < cb->size; i++) {
1498 cb->start_buf[i] = c;
1499 c++;
1500 if (c > 122)
1501 c = 65;
1502 }
1503 start++;
1504 if (start > 122)
1505 start = 65;
1506 cb->start_buf[cb->size - 1] = 0;
1507
1508 krping_format_send(cb, cb->start_dma_addr);
1509 if (cb->state == ERROR) {
1510 printk(KERN_ERR PFX "krping_format_send failed\n");
1511 break;
1512 }
1513 ret = ib_post_send(cb->qp, &cb->sq_wr, &bad_wr);
1514 if (ret) {
1515 printk(KERN_ERR PFX "post send error %d\n", ret);
1516 break;
1517 }
1518
1519 /* Wait for server to ACK */
1520 wait_event_interruptible(cb->sem, cb->state >= RDMA_WRITE_ADV);
1521 if (cb->state != RDMA_WRITE_ADV) {
1522 printk(KERN_ERR PFX
1523 "wait for RDMA_WRITE_ADV state %d\n",
1524 cb->state);
1525 break;
1526 }
1527
1528 krping_format_send(cb, cb->rdma_dma_addr);
1529 ret = ib_post_send(cb->qp, &cb->sq_wr, &bad_wr);
1530 if (ret) {
1531 printk(KERN_ERR PFX "post send error %d\n", ret);
1532 break;
1533 }
1534
1535 /* Wait for the server to say the RDMA Write is complete. */
1536 wait_event_interruptible(cb->sem,
1537 cb->state >= RDMA_WRITE_COMPLETE);
1538 if (cb->state != RDMA_WRITE_COMPLETE) {
1539 printk(KERN_ERR PFX
1540 "wait for RDMA_WRITE_COMPLETE state %d\n",
1541 cb->state);
1542 break;

Callers 1

krping_run_clientFunction · 0.85

Calls 2

sprintfFunction · 0.85
krping_format_sendFunction · 0.85

Tested by

no test coverage detected