2695db95a1
This commit adds cycle-count mode to the compression perf tool. The new mode enhances the compression performance tool to allow cycle-count measurement of both hardware and softwate PMDs. Signed-off-by: Artur Trybula <arturx.trybula@intel.com> Acked-by: Fiona Trahe <fiona.trahe@intel.com>
87 lines
1.6 KiB
C
87 lines
1.6 KiB
C
/* SPDX-License-Identifier: BSD-3-Clause
|
|
* Copyright(c) 2018 Intel Corporation
|
|
*/
|
|
|
|
#ifndef _COMP_PERF_OPS_
|
|
#define _COMP_PERF_OPS_
|
|
|
|
#define MAX_LIST 32
|
|
#define MIN_COMPRESSED_BUF_SIZE 8
|
|
#define EXPANSE_RATIO 1.1
|
|
#define MAX_MBUF_DATA_SIZE (UINT16_MAX - RTE_PKTMBUF_HEADROOM)
|
|
#define MAX_SEG_SIZE ((int)(MAX_MBUF_DATA_SIZE / EXPANSE_RATIO))
|
|
|
|
extern const char *comp_perf_test_type_strs[];
|
|
|
|
/* Cleanup state machine */
|
|
enum cleanup_st {
|
|
ST_CLEAR = 0,
|
|
ST_TEST_DATA,
|
|
ST_COMPDEV,
|
|
ST_INPUT_DATA,
|
|
ST_MEMORY_ALLOC,
|
|
ST_DURING_TEST
|
|
};
|
|
|
|
enum cperf_test_type {
|
|
CPERF_TEST_TYPE_THROUGHPUT,
|
|
CPERF_TEST_TYPE_VERIFY,
|
|
CPERF_TEST_TYPE_PMDCC
|
|
};
|
|
|
|
enum comp_operation {
|
|
COMPRESS_ONLY,
|
|
DECOMPRESS_ONLY,
|
|
COMPRESS_DECOMPRESS
|
|
};
|
|
|
|
struct range_list {
|
|
uint8_t min;
|
|
uint8_t max;
|
|
uint8_t inc;
|
|
uint8_t count;
|
|
uint8_t list[MAX_LIST];
|
|
};
|
|
|
|
struct comp_test_data {
|
|
char driver_name[RTE_DEV_NAME_MAX_LEN];
|
|
char input_file[PATH_MAX];
|
|
enum cperf_test_type test;
|
|
|
|
uint8_t *input_data;
|
|
size_t input_data_sz;
|
|
uint16_t nb_qps;
|
|
uint16_t seg_sz;
|
|
uint16_t out_seg_sz;
|
|
uint16_t burst_sz;
|
|
uint32_t pool_sz;
|
|
uint32_t num_iter;
|
|
uint16_t max_sgl_segs;
|
|
uint32_t total_segs;
|
|
|
|
enum rte_comp_huffman huffman_enc;
|
|
enum comp_operation test_op;
|
|
int window_sz;
|
|
struct range_list level_lst;
|
|
uint8_t level;
|
|
int use_external_mbufs;
|
|
|
|
double ratio;
|
|
enum cleanup_st cleanup;
|
|
int perf_comp_force_stop;
|
|
|
|
uint32_t cyclecount_delay;
|
|
};
|
|
|
|
int
|
|
comp_perf_options_parse(struct comp_test_data *test_data, int argc,
|
|
char **argv);
|
|
|
|
void
|
|
comp_perf_options_default(struct comp_test_data *test_data);
|
|
|
|
int
|
|
comp_perf_options_check(struct comp_test_data *test_data);
|
|
|
|
#endif
|