From 98c6292105d4461875d900949c8fd62353d27d22 Mon Sep 17 00:00:00 2001 From: Pavan Nikhilesh Date: Fri, 6 Apr 2018 20:43:23 +0530 Subject: [PATCH] app/eventdev: add options for event timer adapter Add options to configure expiry timeout, max number of timers and number of event timer adapters through command line parameters. Signed-off-by: Pavan Nikhilesh Acked-by: Erik Gabriel Carrillo Acked-by: Jerin Jacob --- app/test-eventdev/evt_options.c | 65 +++++++++++++++++++++++++++++++ app/test-eventdev/evt_options.h | 5 +++ doc/guides/tools/testeventdev.rst | 32 +++++++++++++++ 3 files changed, 102 insertions(+) diff --git a/app/test-eventdev/evt_options.c b/app/test-eventdev/evt_options.c index 1b60eb2ef0..5f311a5700 100644 --- a/app/test-eventdev/evt_options.c +++ b/app/test-eventdev/evt_options.c @@ -140,6 +140,56 @@ evt_parse_nb_pkts(struct evt_options *opt, const char *arg) return ret; } +static int +evt_parse_nb_timers(struct evt_options *opt, const char *arg) +{ + int ret; + + ret = parser_read_uint64(&(opt->nb_timers), arg); + + return ret; +} + +static int +evt_parse_timer_tick_nsec(struct evt_options *opt, const char *arg) +{ + int ret; + + ret = parser_read_uint64(&(opt->timer_tick_nsec), arg); + + return ret; +} + +static int +evt_parse_max_tmo_nsec(struct evt_options *opt, const char *arg) +{ + int ret; + + ret = parser_read_uint64(&(opt->max_tmo_nsec), arg); + + return ret; +} + +static int +evt_parse_expiry_nsec(struct evt_options *opt, const char *arg) +{ + int ret; + + ret = parser_read_uint64(&(opt->expiry_nsec), arg); + + return ret; +} + +static int +evt_parse_nb_timer_adptrs(struct evt_options *opt, const char *arg) +{ + int ret; + + ret = parser_read_uint8(&(opt->nb_timer_adptrs), arg); + + return ret; +} + static int evt_parse_pool_sz(struct evt_options *opt, const char *arg) { @@ -196,6 +246,11 @@ usage(char *program) "\t in ns.\n" "\t--prod_type_timerdev_burst : use timer device as producer\n" "\t burst mode.\n" + "\t--nb_timers : number of timers to arm.\n" + "\t--nb_timer_adptrs : number of timer adapters to use.\n" + "\t--timer_tick_nsec : timer tick interval in ns.\n" + "\t--max_tmo_nsec : max timeout interval in ns.\n" + "\t--expiry_ns : event timer expiry ns.\n" ); printf("available tests:\n"); evt_test_dump_names(); @@ -259,6 +314,11 @@ static struct option lgopts[] = { { EVT_PROD_ETHDEV, 0, 0, 0 }, { EVT_PROD_TIMERDEV, 0, 0, 0 }, { EVT_PROD_TIMERDEV_BURST, 0, 0, 0 }, + { EVT_NB_TIMERS, 1, 0, 0 }, + { EVT_NB_TIMER_ADPTRS, 1, 0, 0 }, + { EVT_TIMER_TICK_NSEC, 1, 0, 0 }, + { EVT_MAX_TMO_NSEC, 1, 0, 0 }, + { EVT_EXPIRY_NSEC, 1, 0, 0 }, { EVT_HELP, 0, 0, 0 }, { NULL, 0, 0, 0 } }; @@ -285,6 +345,11 @@ evt_opts_parse_long(int opt_idx, struct evt_options *opt) { EVT_PROD_ETHDEV, evt_parse_eth_prod_type}, { EVT_PROD_TIMERDEV, evt_parse_timer_prod_type}, { EVT_PROD_TIMERDEV_BURST, evt_parse_timer_prod_type_burst}, + { EVT_NB_TIMERS, evt_parse_nb_timers}, + { EVT_NB_TIMER_ADPTRS, evt_parse_nb_timer_adptrs}, + { EVT_TIMER_TICK_NSEC, evt_parse_timer_tick_nsec}, + { EVT_MAX_TMO_NSEC, evt_parse_max_tmo_nsec}, + { EVT_EXPIRY_NSEC, evt_parse_expiry_nsec}, }; for (i = 0; i < RTE_DIM(parsermap); i++) { diff --git a/app/test-eventdev/evt_options.h b/app/test-eventdev/evt_options.h index e5e6327838..c059f7084e 100644 --- a/app/test-eventdev/evt_options.h +++ b/app/test-eventdev/evt_options.h @@ -34,6 +34,11 @@ #define EVT_PROD_ETHDEV ("prod_type_ethdev") #define EVT_PROD_TIMERDEV ("prod_type_timerdev") #define EVT_PROD_TIMERDEV_BURST ("prod_type_timerdev_burst") +#define EVT_NB_TIMERS ("nb_timers") +#define EVT_NB_TIMER_ADPTRS ("nb_timer_adptrs") +#define EVT_TIMER_TICK_NSEC ("timer_tick_ns") +#define EVT_MAX_TMO_NSEC ("max_tmo_nsec") +#define EVT_EXPIRY_NSEC ("expiry_ns") #define EVT_HELP ("help") enum evt_prod_type { diff --git a/doc/guides/tools/testeventdev.rst b/doc/guides/tools/testeventdev.rst index 156702cdb4..46effd8714 100644 --- a/doc/guides/tools/testeventdev.rst +++ b/doc/guides/tools/testeventdev.rst @@ -131,6 +131,28 @@ The following are the application command-line options: Use burst mode event timer adapter as producer. + * ``--timer_tick_nsec`` + + Used to dictate number of nano seconds between bucket traversal of the + event timer adapter. Refer `rte_event_timer_adapter_conf`. + + * ``--max_tmo_nsec`` + + Used to configure event timer adapter max arm timeout in nano seconds. + + * ``--expiry_nsec`` + + Dictate the number of nano seconds after which the event timer expires. + + * ``--nb_timers`` + + Number of event timers each producer core will generate. + + * ``--nb_timer_adptrs`` + + Number of event timer adapters to be used. Each adapter is used in + round robin manner by the producer cores. + Eventdev Tests -------------- @@ -357,6 +379,11 @@ Supported application command line options are following:: --prod_type_ethdev --prod_type_timerdev_burst --prod_type_timerdev + --timer_tick_nsec + --max_tmo_nsec + --expiry_nsec + --nb_timers + --nb_timer_adptrs Example ^^^^^^^ @@ -451,6 +478,11 @@ Supported application command line options are following:: --prod_type_ethdev --prod_type_timerdev_burst --prod_type_timerdev + --timer_tick_nsec + --max_tmo_nsec + --expiry_nsec + --nb_timers + --nb_timer_adptrs Example ^^^^^^^ -- 2.20.1