[PATCH 1/2] app/dma-perf: skip support in dma-perf application

Jiang, Cheng1 cheng1.jiang at intel.com
Thu Sep 21 05:00:01 CEST 2023


Hi,

> -----Original Message-----
> From: Amit Prakash Shukla <amitprakashs at marvell.com>
> Sent: Monday, August 7, 2023 9:06 PM
> To: Jiang, Cheng1 <cheng1.jiang at intel.com>
> Cc: dev at dpdk.org; jerinj at marvell.com; Amit Prakash Shukla
> <amitprakashs at marvell.com>
> Subject: [PATCH 1/2] app/dma-perf: skip support in dma-perf application
> 
> Add support to skip running a dma-perf test-case.
> 

Sorry for the late reply.
Generally I like your idea. But I might not be able to review in a timely manner, as I'm leaving Intel.
If you're in a hurry, you might need to find someone else to help with the review.

Thanks for your work,
Cheng

> Signed-off-by: Amit Prakash Shukla <amitprakashs at marvell.com>
> ---
>  app/test-dma-perf/config.ini |  2 ++
>  app/test-dma-perf/main.c     | 23 +++++++++++++++++++++++
>  app/test-dma-perf/main.h     |  1 +
>  3 files changed, 26 insertions(+)
> 
> diff --git a/app/test-dma-perf/config.ini b/app/test-dma-perf/config.ini
> index b550f4b23f..4d59234b2a 100644
> --- a/app/test-dma-perf/config.ini
> +++ b/app/test-dma-perf/config.ini
> @@ -36,6 +36,8 @@
>  ; If you do not specify a result file, one will be generated with the same
> name as the configuration  ; file, with the addition of "_result.csv" at the end.
> 
> +; "skip" To skip a test-case set skip to 1.
> +
>  [case1]
>  type=DMA_MEM_COPY
>  mem_size=10
> diff --git a/app/test-dma-perf/main.c b/app/test-dma-perf/main.c index
> e5bccc27da..61260fa072 100644
> --- a/app/test-dma-perf/main.c
> +++ b/app/test-dma-perf/main.c
> @@ -320,6 +320,7 @@ load_configs(const char *path)
>  	const char *case_type;
>  	const char *lcore_dma;
>  	const char *mem_size_str, *buf_size_str, *ring_size_str,
> *kick_batch_str;
> +	const char *skip;
>  	int args_nr, nb_vp;
>  	bool is_dma;
> 
> @@ -339,6 +340,13 @@ load_configs(const char *path)
>  	for (i = 0; i < nb_sections; i++) {
>  		snprintf(section_name, CFG_NAME_LEN, "case%d", i + 1);
>  		test_case = &test_cases[i];
> +
> +		skip = rte_cfgfile_get_entry(cfgfile, section_name, "skip");
> +		if (skip && (atoi(skip) == 1)) {
> +			test_case->is_skip = true;
> +			continue;
> +		}
> +
>  		case_type = rte_cfgfile_get_entry(cfgfile, section_name,
> "type");
>  		if (case_type == NULL) {
>  			printf("Error: No case type in case %d, the test will be
> finished here.\n", @@ -523,6 +531,21 @@ main(int argc, char *argv[])
> 
>  	printf("Running cases...\n");
>  	for (i = 0; i < case_nb; i++) {
> +		if (test_cases[i].is_skip) {
> +			printf("Test case %d configured to be skipped.\n\n", i
> + 1);
> +			snprintf(output_str[0], MAX_OUTPUT_STR_LEN,
> "Skip the test-case %d\n",
> +				 i + 1);
> +
> +			fd = fopen(rst_path_ptr, "a");
> +			if (!fd) {
> +				printf("Open output CSV file error.\n");
> +				return 0;
> +			}
> +			output_csv(true);
> +			fclose(fd);
> +			continue;
> +		}
> +
>  		if (!test_cases[i].is_valid) {
>  			printf("Invalid test case %d.\n\n", i + 1);
>  			snprintf(output_str[0], MAX_OUTPUT_STR_LEN,
> "Invalid case %d\n", i + 1); diff --git a/app/test-dma-perf/main.h b/app/test-
> dma-perf/main.h index f65e264378..be89cb2b65 100644
> --- a/app/test-dma-perf/main.h
> +++ b/app/test-dma-perf/main.h
> @@ -41,6 +41,7 @@ struct lcore_dma_map_t {
> 
>  struct test_configure {
>  	bool is_valid;
> +	bool is_skip;
>  	uint8_t test_type;
>  	const char *test_type_str;
>  	uint16_t src_numa_node;
> --
> 2.25.1



More information about the dev mailing list