app/eventdev: add options for event timer adapter
authorPavan Nikhilesh <pbhagavatula@caviumnetworks.com>
Fri, 6 Apr 2018 15:13:23 +0000 (20:43 +0530)
committerThomas Monjalon <thomas@monjalon.net>
Mon, 16 Apr 2018 09:11:06 +0000 (11:11 +0200)
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 <pbhagavatula@caviumnetworks.com>
Acked-by: Erik Gabriel Carrillo <erik.g.carrillo@intel.com>
Acked-by: Jerin Jacob <jerin.jacob@caviumnetworks.com>
app/test-eventdev/evt_options.c
app/test-eventdev/evt_options.h
doc/guides/tools/testeventdev.rst

index 1b60eb2..5f311a5 100644 (file)
@@ -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++) {
index e5e6327..c059f70 100644 (file)
 #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 {
index 156702c..46effd8 100644 (file)
@@ -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
 ^^^^^^^