NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
dpa_ping_pong_kernels_dev.c File Reference
Include dependency graph for dpa_ping_pong_kernels_dev.c:

Go to the source code of this file.

Functions

__dpa_global__ void thread_kernel (uint64_t arg)
 Kernel function of DPA thread. More...
 
__dpa_rpc__ uint64_t trigger_first_iteration_rpc (doca_dpa_dev_t rdma_dpa_ctx_handle, struct dpa_thread_arg ping_thread_arg, struct dpa_thread_arg pong_thread_arg)
 RPC function to trigger first ping pong send/receive iteration. More...
 

Function Documentation

◆ thread_kernel()

__dpa_global__ void thread_kernel ( uint64_t  arg)

Kernel function of DPA thread.

This app has 2 DPA Threads (called ping and pong threads), posting send/receive RDMA operations. Both DPA Threads post send RDMA operations with buffer of values in [0-EXPECTED_NUM_RECEIVES) When a completion is received with data i, then a local array is updated with received_values[i] = 1. At the end both arrays should be [1, 1, ..., 1].

  • [in]: Kernel argument

Definition at line 42 of file dpa_ping_pong_kernels_dev.c.

◆ trigger_first_iteration_rpc()

__dpa_rpc__ uint64_t trigger_first_iteration_rpc ( doca_dpa_dev_t  rdma_dpa_ctx_handle,
struct dpa_thread_arg  ping_thread_arg,
struct dpa_thread_arg  pong_thread_arg 
)

RPC function to trigger first ping pong send/receive iteration.

First ping pong send/receive iteration is done using this RPC. After this iteration all remaining send/receive iterations are done within the DPA Thread kernel. On the first iteration the two threads post receive operation on the expected receive addresses. To trigger the first completion the ping thread posts a send operation as well.

@rdma_dpa_ctx_handle [in]: DPA context handle used for RDMA DOCA device. Needed when running from DPU @ping_thread_arg [in]: Ping thread argument which includes all needed info for RDMA post send/receive @pong_thread_arg [in]: Pong thread argument which includes all needed info for RDMA post receive

Returns
: RPC function always succeed and returns 0

Definition at line 130 of file dpa_ping_pong_kernels_dev.c.