NVIDIA DOCA SDK Data Center on a Chip Framework Documentation
dpa_nvqual_sample.c File Reference
#include <sys/time.h>
#include <signal.h>
#include <dpa_common.h>
#include <dpa_nvqual_common_defs.h>
#include <doca_dpa.h>
#include <doca_dev.h>
Include dependency graph for dpa_nvqual_sample.c:

Go to the source code of this file.

Functions

 DOCA_LOG_REGISTER (DPA_NVQUAL)
 
static void sigint_handler (int signum)
 Signal interrupt handler. More...
 
static doca_error_t get_available_eus (struct doca_dpa *dpa, unsigned int total_num_eus, bool *available_eus, unsigned int *available_eus_size)
 Get available EUs. More...
 
static size_t get_num_used_eus (bool *available_eus, bool *excluded_eus, unsigned int total_num_eus)
 Get number of used EUs. More...
 
static doca_error_t iteration_complete_cb (struct dpa_nvqual *nvq, uint64_t ret_val)
 Iteration complete updates. More...
 
static doca_error_t dev_name_param_callback (void *param, void *config)
 ARGP Callback - Handle device name parameter. More...
 
static doca_error_t test_duration_sec_param_callback (void *param, void *config)
 ARGP Callback - Handle duration seconds parameter. More...
 
static doca_error_t user_factor_param_callback (void *param, void *config)
 ARGP Callback - Handle user factor parameter. More...
 
static doca_error_t excluded_eus_param_callback (void *param, void *config)
 ARGP Callback - Handle excluded eus parameter. More...
 
doca_error_t dpa_nvqual_register_params (void)
 Register DPA nvqual parameters. More...
 
static doca_error_t print_sample_data (struct dpa_nvqual_run_output *output, struct dpa_nvqual_flow_config *flow_cfg)
 Print sample's data. More...
 
static doca_error_t setup (struct dpa_nvqual_config *nvqual_argp_cfg, struct dpa_nvqual *nvq)
 Setup sample's configuration. More...
 
static doca_error_t tear_down (struct dpa_nvqual *nvq)
 Tear down sample's configuration. More...
 
static doca_error_t run_flow (struct dpa_nvqual *nvq)
 Run sample's flow. More...
 
doca_error_t dpa_nvqual (struct dpa_nvqual_config *nvqual_argp_cfg)
 Run DPA nvqual sample. More...
 

Variables

doca_dpa_func_t dpa_nvqual_kernel
 
doca_dpa_func_t dpa_nvqual_entry_point
 
struct doca_log_backend * stdout_logger = NULL
 
static bool interrupted = false
 

Function Documentation

◆ dev_name_param_callback()

static doca_error_t dev_name_param_callback ( void *  param,
void *  config 
)
static

ARGP Callback - Handle device name parameter.

Parameters
[in]

Definition at line 192 of file dpa_nvqual_sample.c.

◆ DOCA_LOG_REGISTER()

DOCA_LOG_REGISTER ( DPA_NVQUAL  )

◆ dpa_nvqual()

doca_error_t dpa_nvqual ( struct dpa_nvqual_config nvqual_argp_cfg)

Run DPA nvqual sample.

This function runs DPA nvqual sample

@nvqual_argp_cfg [in]: DPA nvqual argp configuration

Returns
: DOCA_SUCCESS on success and DOCA_ERROR otherwise

Definition at line 970 of file dpa_nvqual_sample.c.

◆ dpa_nvqual_register_params()

doca_error_t dpa_nvqual_register_params ( void  )

Register DPA nvqual parameters.

Returns
: DOCA_SUCCESS on success and DOCA_ERROR otherwise

Definition at line 284 of file dpa_nvqual_sample.c.

◆ excluded_eus_param_callback()

static doca_error_t excluded_eus_param_callback ( void *  param,
void *  config 
)
static

ARGP Callback - Handle excluded eus parameter.

Parameters
[in]

Definition at line 253 of file dpa_nvqual_sample.c.

◆ get_available_eus()

static doca_error_t get_available_eus ( struct doca_dpa *  dpa,
unsigned int  total_num_eus,
bool available_eus,
unsigned int *  available_eus_size 
)
static

Get available EUs.

This function indicates in a boolian array which EU is available

@dpa [in]: Doca DPA struct @total_num_eus [in]: Total number of possible EUs @available_eus [out]: Boolian array of EUs filled with 'true' if availble @available_eus_size [out]: Size of available EUs

Returns
: DOCA_SUCCESS on success and DOCA_ERROR otherwise

Definition at line 71 of file dpa_nvqual_sample.c.

◆ get_num_used_eus()

static size_t get_num_used_eus ( bool available_eus,
bool excluded_eus,
unsigned int  total_num_eus 
)
static

Get number of used EUs.

This function returns the number of used EUs

@available_eus [in]: Boolian array of availble EUs @excluded_eus [in]: Boolian array of excluded EUs @total_num_eus [in]: Total number of possible EUs

Returns
: Number of used EUs

Definition at line 157 of file dpa_nvqual_sample.c.

◆ iteration_complete_cb()

static doca_error_t iteration_complete_cb ( struct dpa_nvqual nvq,
uint64_t  ret_val 
)
static

Iteration complete updates.

This function updates the DPA nvqual's average latency of single operation when an iteration is completed

@nvq [in]: DPA nvqual struct @ret_val [in]: return value

Returns
: DOCA_SUCCESS on success

Definition at line 177 of file dpa_nvqual_sample.c.

◆ print_sample_data()

static doca_error_t print_sample_data ( struct dpa_nvqual_run_output output,
struct dpa_nvqual_flow_config flow_cfg 
)
static

Print sample's data.

This function prints sample's data

@output [in]: DPA nvqual output struct @flow_cfg [in]: DPA flow configuration struct

Returns
: DOCA_SUCCESS on success

Definition at line 375 of file dpa_nvqual_sample.c.

◆ run_flow()

static doca_error_t run_flow ( struct dpa_nvqual nvq)
static

Run sample's flow.

This function runs sample's flow

@nvq [in]: DPA nvqual struct

Returns
: DOCA_SUCCESS on success and DOCA_ERROR otherwise

Definition at line 879 of file dpa_nvqual_sample.c.

◆ setup()

static doca_error_t setup ( struct dpa_nvqual_config nvqual_argp_cfg,
struct dpa_nvqual nvq 
)
static

Setup sample's configuration.

This function sets up DPA nvqual configuration

@nvqual_argp_cfg [in]: DPA nvqual argp configuration @nvq [in]: DPA nvqual struct

Returns
: DOCA_SUCCESS on success and DOCA_ERROR otherwise

Definition at line 474 of file dpa_nvqual_sample.c.

◆ sigint_handler()

static void sigint_handler ( int  signum)
static

Signal interrupt handler.

This function updates interrupted flag

@signum [in]: signal number

Definition at line 53 of file dpa_nvqual_sample.c.

◆ tear_down()

static doca_error_t tear_down ( struct dpa_nvqual nvq)
static

Tear down sample's configuration.

This function tears down DPA nvqual configuration

@nvq [in]: DPA nvqual struct

Returns
: DOCA_SUCCESS on success

Definition at line 814 of file dpa_nvqual_sample.c.

◆ test_duration_sec_param_callback()

static doca_error_t test_duration_sec_param_callback ( void *  param,
void *  config 
)
static

ARGP Callback - Handle duration seconds parameter.

Parameters
[in]

Definition at line 215 of file dpa_nvqual_sample.c.

◆ user_factor_param_callback()

static doca_error_t user_factor_param_callback ( void *  param,
void *  config 
)
static

ARGP Callback - Handle user factor parameter.

Parameters
[in]

Definition at line 234 of file dpa_nvqual_sample.c.

Variable Documentation

◆ dpa_nvqual_entry_point

doca_dpa_func_t dpa_nvqual_entry_point

Definition at line 40 of file dpa_nvqual_sample.c.

◆ dpa_nvqual_kernel

doca_dpa_func_t dpa_nvqual_kernel ( void  )

kernel/RPC declaration

Definition at line 39 of file dpa_nvqual_sample.c.

◆ interrupted

bool interrupted = false
static

Definition at line 44 of file dpa_nvqual_sample.c.

◆ stdout_logger

struct doca_log_backend* stdout_logger = NULL

Definition at line 42 of file dpa_nvqual_sample.c.