examples/eventdev: fix run forever with -n option
authorHarry van Haaren <harry.van.haaren@intel.com>
Fri, 4 Aug 2017 15:49:10 +0000 (16:49 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Fri, 4 Aug 2017 23:38:01 +0000 (01:38 +0200)
During the refactoring of the sample app to be more generic, the
option to set -n0 and process a huge number of packets was lost.
This commit re-adds -n0, and will process INT64_MAX number of packets.

Fixes: adb5d5486c39 ("examples/eventdev_pipeline_sw_pmd: add sample app")

Signed-off-by: Harry van Haaren <harry.van.haaren@intel.com>
examples/eventdev_pipeline_sw_pmd/main.c

index 91dddb1..dd75cb7 100644 (file)
@@ -91,7 +91,7 @@ static struct fastpath_data *fdata;
 struct config_data {
        unsigned int active_cores;
        unsigned int num_workers;
-       long num_packets;
+       int64_t num_packets;
        unsigned int num_fids;
        int queue_type;
        int worker_cycles;
@@ -121,7 +121,6 @@ core_in_use(unsigned int lcore_id) {
                fdata->tx_core[lcore_id] || fdata->worker_core[lcore_id]);
 }
 
-
 static void
 eth_tx_buffer_retry(struct rte_mbuf **pkts, uint16_t unsent,
                        void *userdata)
@@ -471,7 +470,9 @@ parse_app_args(int argc, char **argv)
                int popcnt = 0;
                switch (c) {
                case 'n':
-                       cdata.num_packets = (unsigned long)atol(optarg);
+                       cdata.num_packets = (int64_t)atol(optarg);
+                       if (cdata.num_packets == 0)
+                               cdata.num_packets = INT64_MAX;
                        break;
                case 'f':
                        cdata.num_fids = (unsigned int)atoi(optarg);
@@ -908,7 +909,7 @@ main(int argc, char **argv)
                printf("  Config:\n");
                printf("\tports: %u\n", num_ports);
                printf("\tworkers: %u\n", cdata.num_workers);
-               printf("\tpackets: %lu\n", cdata.num_packets);
+               printf("\tpackets: %"PRIi64"\n", cdata.num_packets);
                printf("\tQueue-prio: %u\n", cdata.enable_queue_priorities);
                if (cdata.queue_type == RTE_EVENT_QUEUE_CFG_ORDERED_ONLY)
                        printf("\tqid0 type: ordered\n");