From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 808694C9F for ; Wed, 27 Mar 2019 18:08:59 +0100 (CET) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x2RGuaBj012646 for ; Wed, 27 Mar 2019 10:08:58 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=4BOIAtskcyBXECtwNP+MVVhp3xSp5JDGxnm2+3cJpVg=; b=iLoUAw5T4h7Ks/yXB4rHxWDg4xjszJ2ebiW+uvSnoM9Et9rRpKbb5qRWkd8ZUS8m+Gwh ZhR/hhHQJKEKyh+PKpO6Bayn4imaOeWtRF4Q9V0BY/0hsPd49kYtNn//d5WUk/pIw0NL 6IJaVEtRxN3fJJMa3sukIODhs33NIpLqlYmhPp3gOPDyTbww0/szsPAwo+DmEmWLDTPi td3q16ErZ6l9qddp++kW9B3GGVG2UzZv35EzU6LRG3VcD4f0ZIsCHd9x1p4SSjHtg8lm ykpOf+PLsjDQ0LcyAcMf4PgRItubSeUPagBqTygtfALoZBjd3tNjzO/A2DQIIZS0kw1T 0Q== Received: from sc-exch03.marvell.com ([199.233.58.183]) by mx0b-0016f401.pphosted.com with ESMTP id 2rg6e09j70-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Wed, 27 Mar 2019 10:08:58 -0700 Received: from SC-EXCH02.marvell.com (10.93.176.82) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Wed, 27 Mar 2019 10:07:35 -0700 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.36.54) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Wed, 27 Mar 2019 10:07:35 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4BOIAtskcyBXECtwNP+MVVhp3xSp5JDGxnm2+3cJpVg=; b=StoB3enbDDTylpELHv02CSVxi64JrLnd8ias4VOVWikc4stCKFrHTPgnqx0nqpA9fZlkDQKqiFz6lCf7XrAI6a9F2sMEJmXuy/VVUZatSJEzmruD0lwxcySA8rKbkXZ0KsKv8t+geed1FwI5OywT/dN2mJrx3ihA8IOpUSLZlOY= Received: from CY4PR1801MB1863.namprd18.prod.outlook.com (10.171.255.14) by CY4PR1801MB2056.namprd18.prod.outlook.com (10.171.255.161) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1750.15; Wed, 27 Mar 2019 17:07:30 +0000 Received: from CY4PR1801MB1863.namprd18.prod.outlook.com ([fe80::286d:5e93:974e:8bfa]) by CY4PR1801MB1863.namprd18.prod.outlook.com ([fe80::286d:5e93:974e:8bfa%2]) with mapi id 15.20.1750.014; Wed, 27 Mar 2019 17:07:30 +0000 From: Pavan Nikhilesh Bhagavatula To: Jerin Jacob Kollanukkaran CC: "dev@dpdk.org" , Pavan Nikhilesh Bhagavatula Thread-Topic: [dpdk-dev] [PATCH v2] app/eventdev: add option to set global dequeue tmo Thread-Index: AQHU5L+PWNbLm75Ol0OSA8glUavm/A== Date: Wed, 27 Mar 2019 17:07:30 +0000 Message-ID: <20190327170640.7096-1-pbhagavatula@marvell.com> References: <20190319061845.12343-1-pbhagavatula@marvell.com> In-Reply-To: <20190319061845.12343-1-pbhagavatula@marvell.com> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: SG2PR02CA0077.apcprd02.prod.outlook.com (2603:1096:4:90::17) To CY4PR1801MB1863.namprd18.prod.outlook.com (2603:10b6:910:7a::14) x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.21.0 x-originating-ip: [122.167.18.62] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 16c9a590-b861-4d0d-f46c-08d6b2d6b1d1 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600127)(711020)(4605104)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:CY4PR1801MB2056; x-ms-traffictypediagnostic: CY4PR1801MB2056: x-microsoft-antispam-prvs: x-forefront-prvs: 0989A7979C x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(346002)(396003)(39860400002)(366004)(376002)(199004)(189003)(71190400001)(71200400001)(25786009)(37006003)(50226002)(316002)(78486014)(99286004)(53936002)(6506007)(102836004)(476003)(11346002)(68736007)(2616005)(52116002)(386003)(97736004)(76176011)(30864003)(6636002)(54906003)(1076003)(256004)(14444005)(486006)(106356001)(14454004)(105586002)(5660300002)(81166006)(107886003)(81156014)(86362001)(8676002)(6862004)(478600001)(66066001)(4326008)(6512007)(7736002)(8936002)(2906002)(6486002)(446003)(6436002)(26005)(3846002)(186003)(305945005)(36756003)(6116002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR1801MB2056; H:CY4PR1801MB1863.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: gQQiI7fszWnKWr/5NLllrST0G/IX8qm/5TD1jhLL02tKzNA+s1JGQ2Qv3L3NQl4FnJw8uyO98IAFNbkjKfmsME1AEKhQcwRBrT9pMwv2U0dFS3MWOfcAL1H/GflIrVMaSXQfjPu/0a69ZwBtr/cbkwoS3na1CLBcaHmqNu5VGg8luxx8mVyt+0CsI9DiXIcWz2jSsuJR3t952FXsWIVrhkgJYE66Rcl5C601nszy9FdPitRa9qk5gwkeTmlLQF0oMwJL/2utYA7CohaF33PyLW0qc8G0yXwlfjvC/mCHdgnmoM+98BFO5k6NkiJttDRIm89yvh+VqOxLUIYq80XIBqIFoTxXfbbFgYdeJ53NOwLTS7VVAMSiLD1zpP/LcWQnTh27GOaI3Ocz8hgy0d0CTq8BKxRuqsq5JTHzKl7PRqY= Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 16c9a590-b861-4d0d-f46c-08d6b2d6b1d1 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Mar 2019 17:07:30.0539 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1801MB2056 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-03-27_11:, , signatures=0 Subject: [dpdk-dev] [PATCH v2] app/eventdev: add option to set global dequeue tmo X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 27 Mar 2019 17:08:59 -0000 From: Pavan Nikhilesh Add option to provide a global dequeue timeout that is used to create the eventdev. The dequeue timeout provided will be common across all the worker ports. If the eventdev hardware supports power management through dequeue timeout then this option can be used for verifying power demands at various packet rates. Signed-off-by: Pavan Nikhilesh --- v2 Changes: - Update documentation and fix indentation. - Add check to see if provided dequeue timeout is within range and adjust = as required app/test-eventdev/evt_options.c | 13 ++++++++ app/test-eventdev/evt_options.h | 2 ++ app/test-eventdev/test_order_atq.c | 25 ++++++++++++--- app/test-eventdev/test_order_queue.c | 25 ++++++++++++--- app/test-eventdev/test_perf_atq.c | 14 +++++++++ app/test-eventdev/test_perf_queue.c | 14 +++++++++ app/test-eventdev/test_pipeline_atq.c | 14 +++++++++ app/test-eventdev/test_pipeline_queue.c | 15 +++++++++ doc/guides/tools/testeventdev.rst | 41 ++++++++++++++++--------- 9 files changed, 141 insertions(+), 22 deletions(-) diff --git a/app/test-eventdev/evt_options.c b/app/test-eventdev/evt_option= s.c index cfa43a165..af5c08bac 100644 --- a/app/test-eventdev/evt_options.c +++ b/app/test-eventdev/evt_options.c @@ -84,6 +84,16 @@ evt_parse_queue_priority(struct evt_options *opt, const = char *arg __rte_unused) return 0; } +static int +evt_parse_deq_tmo_nsec(struct evt_options *opt, const char *arg) +{ + int ret; + + ret =3D parser_read_uint32(&(opt->deq_tmo_nsec), arg); + + return ret; +} + static int evt_parse_eth_prod_type(struct evt_options *opt, const char *arg __rte_unu= sed) { @@ -240,6 +250,7 @@ usage(char *program) "\t--worker_deq_depth : dequeue depth of the worker\n" "\t--fwd_latency : perform fwd_latency measurement\n" "\t--queue_priority : enable queue priority\n" + "\t--deq_tmo_nsec : global dequeue timeout\n" "\t--prod_type_ethdev : use ethernet device as producer.\n" "\t--prod_type_timerdev : use event timer device as producer.\n" "\t expity_nsec would be the timeout\n" @@ -311,6 +322,7 @@ static struct option lgopts[] =3D { { EVT_SCHED_TYPE_LIST, 1, 0, 0 }, { EVT_FWD_LATENCY, 0, 0, 0 }, { EVT_QUEUE_PRIORITY, 0, 0, 0 }, + { EVT_DEQ_TMO_NSEC, 1, 0, 0 }, { EVT_PROD_ETHDEV, 0, 0, 0 }, { EVT_PROD_TIMERDEV, 0, 0, 0 }, { EVT_PROD_TIMERDEV_BURST, 0, 0, 0 }, @@ -342,6 +354,7 @@ evt_opts_parse_long(int opt_idx, struct evt_options *op= t) { EVT_SCHED_TYPE_LIST, evt_parse_sched_type_list}, { EVT_FWD_LATENCY, evt_parse_fwd_latency}, { EVT_QUEUE_PRIORITY, evt_parse_queue_priority}, + { EVT_DEQ_TMO_NSEC, evt_parse_deq_tmo_nsec}, { 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}, diff --git a/app/test-eventdev/evt_options.h b/app/test-eventdev/evt_option= s.h index f3de48a17..c486c4185 100644 --- a/app/test-eventdev/evt_options.h +++ b/app/test-eventdev/evt_options.h @@ -31,6 +31,7 @@ #define EVT_SCHED_TYPE_LIST ("stlist") #define EVT_FWD_LATENCY ("fwd_latency") #define EVT_QUEUE_PRIORITY ("queue_priority") +#define EVT_DEQ_TMO_NSEC ("deq_tmo_nsec") #define EVT_PROD_ETHDEV ("prod_type_ethdev") #define EVT_PROD_TIMERDEV ("prod_type_timerdev") #define EVT_PROD_TIMERDEV_BURST ("prod_type_timerdev_burst") @@ -71,6 +72,7 @@ struct evt_options { uint8_t dev_id; uint32_t fwd_latency:1; uint32_t q_priority:1; + uint32_t deq_tmo_nsec; enum evt_prod_type prod_type; uint8_t timdev_use_burst; uint8_t timdev_cnt; diff --git a/app/test-eventdev/test_order_atq.c b/app/test-eventdev/test_or= der_atq.c index 4a8546e7f..0e98cc07e 100644 --- a/app/test-eventdev/test_order_atq.c +++ b/app/test-eventdev/test_order_atq.c @@ -113,18 +113,35 @@ static int order_atq_eventdev_setup(struct evt_test *test, struct evt_options *opt) { int ret; - const uint8_t nb_workers =3D evt_nr_active_lcores(opt->wlcores); /* number of active worker cores + 1 producer */ const uint8_t nb_ports =3D nb_workers + 1; + struct rte_event_dev_info info; + + rte_event_dev_info_get(opt->dev_id, &info); + if (opt->deq_tmo_nsec) { + if (opt->deq_tmo_nsec < info.min_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D info.min_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too low, using %d", + opt->deq_tmo_nsec); + } + if (opt->deq_tmo_nsec > info.max_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D info.max_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too high, using %d", + opt->deq_tmo_nsec); + } + } const struct rte_event_dev_config config =3D { + .dequeue_timeout_ns =3D opt->deq_tmo_nsec, .nb_event_queues =3D NB_QUEUES,/* one all types queue */ .nb_event_ports =3D nb_ports, - .nb_events_limit =3D 4096, + .nb_events_limit =3D info.max_num_events, .nb_event_queue_flows =3D opt->nb_flows, - .nb_event_port_dequeue_depth =3D 128, - .nb_event_port_enqueue_depth =3D 128, + .nb_event_port_dequeue_depth =3D + info.max_event_port_dequeue_depth, + .nb_event_port_enqueue_depth =3D + info.max_event_port_enqueue_depth, }; ret =3D rte_event_dev_configure(opt->dev_id, &config); diff --git a/app/test-eventdev/test_order_queue.c b/app/test-eventdev/test_= order_queue.c index a272c7a57..aba824a96 100644 --- a/app/test-eventdev/test_order_queue.c +++ b/app/test-eventdev/test_order_queue.c @@ -113,18 +113,35 @@ static int order_queue_eventdev_setup(struct evt_test *test, struct evt_options *opt) { int ret; - const uint8_t nb_workers =3D evt_nr_active_lcores(opt->wlcores); /* number of active worker cores + 1 producer */ const uint8_t nb_ports =3D nb_workers + 1; + struct rte_event_dev_info info; + + rte_event_dev_info_get(opt->dev_id, &info); + if (opt->deq_tmo_nsec) { + if (opt->deq_tmo_nsec < info.min_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D info.min_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too low, using %d", + opt->deq_tmo_nsec); + } + if (opt->deq_tmo_nsec > info.max_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D info.max_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too high, using %d", + opt->deq_tmo_nsec); + } + } const struct rte_event_dev_config config =3D { + .dequeue_timeout_ns =3D opt->deq_tmo_nsec, .nb_event_queues =3D NB_QUEUES,/* q0 ordered, q1 atomic */ .nb_event_ports =3D nb_ports, - .nb_events_limit =3D 4096, + .nb_events_limit =3D info.max_num_events, .nb_event_queue_flows =3D opt->nb_flows, - .nb_event_port_dequeue_depth =3D 128, - .nb_event_port_enqueue_depth =3D 128, + .nb_event_port_dequeue_depth =3D + info.max_event_port_dequeue_depth, + .nb_event_port_enqueue_depth =3D + info.max_event_port_enqueue_depth, }; ret =3D rte_event_dev_configure(opt->dev_id, &config); diff --git a/app/test-eventdev/test_perf_atq.c b/app/test-eventdev/test_per= f_atq.c index 73f31e564..a762370f5 100644 --- a/app/test-eventdev/test_perf_atq.c +++ b/app/test-eventdev/test_perf_atq.c @@ -175,7 +175,21 @@ perf_atq_eventdev_setup(struct evt_test *test, struct = evt_options *opt) return ret; } + if (opt->deq_tmo_nsec) { + if (opt->deq_tmo_nsec < dev_info.min_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D dev_info.min_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too low, using %d", + opt->deq_tmo_nsec); + } + if (opt->deq_tmo_nsec > dev_info.max_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D dev_info.max_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too high, using %d", + opt->deq_tmo_nsec); + } + } + const struct rte_event_dev_config config =3D { + .dequeue_timeout_ns =3D opt->deq_tmo_nsec, .nb_event_queues =3D nb_queues, .nb_event_ports =3D nb_ports, .nb_events_limit =3D dev_info.max_num_events, diff --git a/app/test-eventdev/test_perf_queue.c b/app/test-eventdev/test_p= erf_queue.c index d89491364..5d5f8cada 100644 --- a/app/test-eventdev/test_perf_queue.c +++ b/app/test-eventdev/test_perf_queue.c @@ -176,7 +176,21 @@ perf_queue_eventdev_setup(struct evt_test *test, struc= t evt_options *opt) return ret; } + if (opt->deq_tmo_nsec) { + if (opt->deq_tmo_nsec < dev_info.min_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D dev_info.min_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too low, using %d", + opt->deq_tmo_nsec); + } + if (opt->deq_tmo_nsec > dev_info.max_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D dev_info.max_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too high, using %d", + opt->deq_tmo_nsec); + } + } + const struct rte_event_dev_config config =3D { + .dequeue_timeout_ns =3D opt->deq_tmo_nsec, .nb_event_queues =3D nb_queues, .nb_event_ports =3D nb_ports, .nb_events_limit =3D dev_info.max_num_events, diff --git a/app/test-eventdev/test_pipeline_atq.c b/app/test-eventdev/test= _pipeline_atq.c index 998a56cfd..a05170353 100644 --- a/app/test-eventdev/test_pipeline_atq.c +++ b/app/test-eventdev/test_pipeline_atq.c @@ -314,7 +314,21 @@ pipeline_atq_eventdev_setup(struct evt_test *test, str= uct evt_options *opt) rte_event_dev_info_get(opt->dev_id, &info); + if (opt->deq_tmo_nsec) { + if (opt->deq_tmo_nsec < info.min_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D info.min_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too low, using %d", + opt->deq_tmo_nsec); + } + if (opt->deq_tmo_nsec > info.max_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D info.max_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too high, using %d", + opt->deq_tmo_nsec); + } + } + const struct rte_event_dev_config config =3D { + .dequeue_timeout_ns =3D opt->deq_tmo_nsec, .nb_event_queues =3D nb_queues, .nb_event_ports =3D nb_ports, .nb_events_limit =3D info.max_num_events, diff --git a/app/test-eventdev/test_pipeline_queue.c b/app/test-eventdev/te= st_pipeline_queue.c index 7da89dad5..c1b190777 100644 --- a/app/test-eventdev/test_pipeline_queue.c +++ b/app/test-eventdev/test_pipeline_queue.c @@ -334,7 +334,22 @@ pipeline_queue_eventdev_setup(struct evt_test *test, s= truct evt_options *opt) memset(queue_arr, 0, sizeof(uint8_t) * RTE_EVENT_MAX_QUEUES_PER_DEV); rte_event_dev_info_get(opt->dev_id, &info); + + if (opt->deq_tmo_nsec) { + if (opt->deq_tmo_nsec < info.min_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D info.min_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too low, using %d", + opt->deq_tmo_nsec); + } + if (opt->deq_tmo_nsec > info.max_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D info.max_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too high, using %d", + opt->deq_tmo_nsec); + } + } + const struct rte_event_dev_config config =3D { + .dequeue_timeout_ns =3D opt->deq_tmo_nsec, .nb_event_queues =3D nb_queues, .nb_event_ports =3D nb_ports, .nb_events_limit =3D info.max_num_events, diff --git a/doc/guides/tools/testeventdev.rst b/doc/guides/tools/testevent= dev.rst index cddba3be0..db5c4378b 100644 --- a/doc/guides/tools/testeventdev.rst +++ b/doc/guides/tools/testeventdev.rst @@ -129,31 +129,38 @@ The following are the application command-line option= s: Use event timer adapter as producer. - * ``--prod_type_timerdev_burst`` +* ``--prod_type_timerdev_burst`` - Use burst mode event timer adapter as producer. + Use burst mode event timer adapter as producer. - * ``--timer_tick_nsec`` +* ``--timer_tick_nsec`` - Used to dictate number of nano seconds between bucket traversal of= the - event timer adapter. Refer `rte_event_timer_adapter_conf`. + Used to dictate number of nano seconds between bucket traversal of = the + event timer adapter. Refer `rte_event_timer_adapter_conf`. - * ``--max_tmo_nsec`` +* ``--max_tmo_nsec`` - Used to configure event timer adapter max arm timeout in nano seco= nds. + Used to configure event timer adapter max arm timeout in nano secon= ds. - * ``--expiry_nsec`` +* ``--expiry_nsec`` - Dictate the number of nano seconds after which the event timer exp= ires. + Dictate the number of nano seconds after which the event timer expi= res. - * ``--nb_timers`` +* ``--nb_timers`` - Number of event timers each producer core will generate. + Number of event timers each producer core will generate. - * ``--nb_timer_adptrs`` +* ``--nb_timer_adptrs`` + + Number of event timer adapters to be used. Each adapter is used in + round robin manner by the producer cores. + +* ``--deq_tmo_nsec`` + + Global dequeue timeout for all the event ports if the provided dequ= eue + timeout is out of the supported range of event device it will be + adjusted to the highest/lowest supported dequeue timeout supported. - Number of event timer adapters to be used. Each adapter is used in - round robin manner by the producer cores. Eventdev Tests -------------- @@ -225,6 +232,7 @@ Supported application command line options are followin= g:: --nb_flows --nb_pkts --worker_deq_depth + --deq_tmo_nsec Example ^^^^^^^ @@ -287,6 +295,7 @@ Supported application command line options are followin= g:: --nb_flows --nb_pkts --worker_deq_depth + --deq_tmo_nsec Example ^^^^^^^ @@ -386,6 +395,7 @@ Supported application command line options are followin= g:: --expiry_nsec --nb_timers --nb_timer_adptrs + --deq_tmo_nsec Example ^^^^^^^ @@ -485,6 +495,7 @@ Supported application command line options are followin= g:: --expiry_nsec --nb_timers --nb_timer_adptrs + --deq_tmo_nsec Example ^^^^^^^ @@ -598,6 +609,7 @@ Supported application command line options are followin= g:: --stlist --worker_deq_depth --prod_type_ethdev + --deq_tmo_nsec .. Note:: @@ -689,6 +701,7 @@ Supported application command line options are followin= g:: --stlist --worker_deq_depth --prod_type_ethdev + --deq_tmo_nsec .. Note:: -- 2.21.0 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id EADE1A05D3 for ; Wed, 27 Mar 2019 18:09:01 +0100 (CET) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 03A474CA9; Wed, 27 Mar 2019 18:09:01 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by dpdk.org (Postfix) with ESMTP id 808694C9F for ; Wed, 27 Mar 2019 18:08:59 +0100 (CET) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x2RGuaBj012646 for ; Wed, 27 Mar 2019 10:08:58 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : references : in-reply-to : content-type : content-transfer-encoding : mime-version; s=pfpt0818; bh=4BOIAtskcyBXECtwNP+MVVhp3xSp5JDGxnm2+3cJpVg=; b=iLoUAw5T4h7Ks/yXB4rHxWDg4xjszJ2ebiW+uvSnoM9Et9rRpKbb5qRWkd8ZUS8m+Gwh ZhR/hhHQJKEKyh+PKpO6Bayn4imaOeWtRF4Q9V0BY/0hsPd49kYtNn//d5WUk/pIw0NL 6IJaVEtRxN3fJJMa3sukIODhs33NIpLqlYmhPp3gOPDyTbww0/szsPAwo+DmEmWLDTPi td3q16ErZ6l9qddp++kW9B3GGVG2UzZv35EzU6LRG3VcD4f0ZIsCHd9x1p4SSjHtg8lm ykpOf+PLsjDQ0LcyAcMf4PgRItubSeUPagBqTygtfALoZBjd3tNjzO/A2DQIIZS0kw1T 0Q== Received: from sc-exch03.marvell.com ([199.233.58.183]) by mx0b-0016f401.pphosted.com with ESMTP id 2rg6e09j70-5 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT) for ; Wed, 27 Mar 2019 10:08:58 -0700 Received: from SC-EXCH02.marvell.com (10.93.176.82) by SC-EXCH03.marvell.com (10.93.176.83) with Microsoft SMTP Server (TLS) id 15.0.1367.3; Wed, 27 Mar 2019 10:07:35 -0700 Received: from NAM02-SN1-obe.outbound.protection.outlook.com (104.47.36.54) by SC-EXCH02.marvell.com (10.93.176.82) with Microsoft SMTP Server (TLS) id 15.0.1367.3 via Frontend Transport; Wed, 27 Mar 2019 10:07:35 -0700 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.onmicrosoft.com; s=selector1-marvell-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4BOIAtskcyBXECtwNP+MVVhp3xSp5JDGxnm2+3cJpVg=; b=StoB3enbDDTylpELHv02CSVxi64JrLnd8ias4VOVWikc4stCKFrHTPgnqx0nqpA9fZlkDQKqiFz6lCf7XrAI6a9F2sMEJmXuy/VVUZatSJEzmruD0lwxcySA8rKbkXZ0KsKv8t+geed1FwI5OywT/dN2mJrx3ihA8IOpUSLZlOY= Received: from CY4PR1801MB1863.namprd18.prod.outlook.com (10.171.255.14) by CY4PR1801MB2056.namprd18.prod.outlook.com (10.171.255.161) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1750.15; Wed, 27 Mar 2019 17:07:30 +0000 Received: from CY4PR1801MB1863.namprd18.prod.outlook.com ([fe80::286d:5e93:974e:8bfa]) by CY4PR1801MB1863.namprd18.prod.outlook.com ([fe80::286d:5e93:974e:8bfa%2]) with mapi id 15.20.1750.014; Wed, 27 Mar 2019 17:07:30 +0000 From: Pavan Nikhilesh Bhagavatula To: Jerin Jacob Kollanukkaran CC: "dev@dpdk.org" , Pavan Nikhilesh Bhagavatula Thread-Topic: [dpdk-dev] [PATCH v2] app/eventdev: add option to set global dequeue tmo Thread-Index: AQHU5L+PWNbLm75Ol0OSA8glUavm/A== Date: Wed, 27 Mar 2019 17:07:30 +0000 Message-ID: <20190327170640.7096-1-pbhagavatula@marvell.com> References: <20190319061845.12343-1-pbhagavatula@marvell.com> In-Reply-To: <20190319061845.12343-1-pbhagavatula@marvell.com> Accept-Language: en-IN, en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: SG2PR02CA0077.apcprd02.prod.outlook.com (2603:1096:4:90::17) To CY4PR1801MB1863.namprd18.prod.outlook.com (2603:10b6:910:7a::14) x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.21.0 x-originating-ip: [122.167.18.62] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 16c9a590-b861-4d0d-f46c-08d6b2d6b1d1 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(5600127)(711020)(4605104)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(2017052603328)(7153060)(7193020); SRVR:CY4PR1801MB2056; x-ms-traffictypediagnostic: CY4PR1801MB2056: x-microsoft-antispam-prvs: x-forefront-prvs: 0989A7979C x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(136003)(346002)(396003)(39860400002)(366004)(376002)(199004)(189003)(71190400001)(71200400001)(25786009)(37006003)(50226002)(316002)(78486014)(99286004)(53936002)(6506007)(102836004)(476003)(11346002)(68736007)(2616005)(52116002)(386003)(97736004)(76176011)(30864003)(6636002)(54906003)(1076003)(256004)(14444005)(486006)(106356001)(14454004)(105586002)(5660300002)(81166006)(107886003)(81156014)(86362001)(8676002)(6862004)(478600001)(66066001)(4326008)(6512007)(7736002)(8936002)(2906002)(6486002)(446003)(6436002)(26005)(3846002)(186003)(305945005)(36756003)(6116002); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR1801MB2056; H:CY4PR1801MB1863.namprd18.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: marvell.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: gQQiI7fszWnKWr/5NLllrST0G/IX8qm/5TD1jhLL02tKzNA+s1JGQ2Qv3L3NQl4FnJw8uyO98IAFNbkjKfmsME1AEKhQcwRBrT9pMwv2U0dFS3MWOfcAL1H/GflIrVMaSXQfjPu/0a69ZwBtr/cbkwoS3na1CLBcaHmqNu5VGg8luxx8mVyt+0CsI9DiXIcWz2jSsuJR3t952FXsWIVrhkgJYE66Rcl5C601nszy9FdPitRa9qk5gwkeTmlLQF0oMwJL/2utYA7CohaF33PyLW0qc8G0yXwlfjvC/mCHdgnmoM+98BFO5k6NkiJttDRIm89yvh+VqOxLUIYq80XIBqIFoTxXfbbFgYdeJ53NOwLTS7VVAMSiLD1zpP/LcWQnTh27GOaI3Ocz8hgy0d0CTq8BKxRuqsq5JTHzKl7PRqY= Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-CrossTenant-Network-Message-Id: 16c9a590-b861-4d0d-f46c-08d6b2d6b1d1 X-MS-Exchange-CrossTenant-originalarrivaltime: 27 Mar 2019 17:07:30.0539 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 70e1fb47-1155-421d-87fc-2e58f638b6e0 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1801MB2056 X-OriginatorOrg: marvell.com X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:, , definitions=2019-03-27_11:, , signatures=0 Subject: [dpdk-dev] [PATCH v2] app/eventdev: add option to set global dequeue tmo X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Message-ID: <20190327170730.Y1gNi1v_DX48mGUo7SrxV3sD7NIe_oiV9EaLIK88kOc@z> From: Pavan Nikhilesh Add option to provide a global dequeue timeout that is used to create the eventdev. The dequeue timeout provided will be common across all the worker ports. If the eventdev hardware supports power management through dequeue timeout then this option can be used for verifying power demands at various packet rates. Signed-off-by: Pavan Nikhilesh --- v2 Changes: - Update documentation and fix indentation. - Add check to see if provided dequeue timeout is within range and adjust = as required app/test-eventdev/evt_options.c | 13 ++++++++ app/test-eventdev/evt_options.h | 2 ++ app/test-eventdev/test_order_atq.c | 25 ++++++++++++--- app/test-eventdev/test_order_queue.c | 25 ++++++++++++--- app/test-eventdev/test_perf_atq.c | 14 +++++++++ app/test-eventdev/test_perf_queue.c | 14 +++++++++ app/test-eventdev/test_pipeline_atq.c | 14 +++++++++ app/test-eventdev/test_pipeline_queue.c | 15 +++++++++ doc/guides/tools/testeventdev.rst | 41 ++++++++++++++++--------- 9 files changed, 141 insertions(+), 22 deletions(-) diff --git a/app/test-eventdev/evt_options.c b/app/test-eventdev/evt_option= s.c index cfa43a165..af5c08bac 100644 --- a/app/test-eventdev/evt_options.c +++ b/app/test-eventdev/evt_options.c @@ -84,6 +84,16 @@ evt_parse_queue_priority(struct evt_options *opt, const = char *arg __rte_unused) return 0; } +static int +evt_parse_deq_tmo_nsec(struct evt_options *opt, const char *arg) +{ + int ret; + + ret =3D parser_read_uint32(&(opt->deq_tmo_nsec), arg); + + return ret; +} + static int evt_parse_eth_prod_type(struct evt_options *opt, const char *arg __rte_unu= sed) { @@ -240,6 +250,7 @@ usage(char *program) "\t--worker_deq_depth : dequeue depth of the worker\n" "\t--fwd_latency : perform fwd_latency measurement\n" "\t--queue_priority : enable queue priority\n" + "\t--deq_tmo_nsec : global dequeue timeout\n" "\t--prod_type_ethdev : use ethernet device as producer.\n" "\t--prod_type_timerdev : use event timer device as producer.\n" "\t expity_nsec would be the timeout\n" @@ -311,6 +322,7 @@ static struct option lgopts[] =3D { { EVT_SCHED_TYPE_LIST, 1, 0, 0 }, { EVT_FWD_LATENCY, 0, 0, 0 }, { EVT_QUEUE_PRIORITY, 0, 0, 0 }, + { EVT_DEQ_TMO_NSEC, 1, 0, 0 }, { EVT_PROD_ETHDEV, 0, 0, 0 }, { EVT_PROD_TIMERDEV, 0, 0, 0 }, { EVT_PROD_TIMERDEV_BURST, 0, 0, 0 }, @@ -342,6 +354,7 @@ evt_opts_parse_long(int opt_idx, struct evt_options *op= t) { EVT_SCHED_TYPE_LIST, evt_parse_sched_type_list}, { EVT_FWD_LATENCY, evt_parse_fwd_latency}, { EVT_QUEUE_PRIORITY, evt_parse_queue_priority}, + { EVT_DEQ_TMO_NSEC, evt_parse_deq_tmo_nsec}, { 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}, diff --git a/app/test-eventdev/evt_options.h b/app/test-eventdev/evt_option= s.h index f3de48a17..c486c4185 100644 --- a/app/test-eventdev/evt_options.h +++ b/app/test-eventdev/evt_options.h @@ -31,6 +31,7 @@ #define EVT_SCHED_TYPE_LIST ("stlist") #define EVT_FWD_LATENCY ("fwd_latency") #define EVT_QUEUE_PRIORITY ("queue_priority") +#define EVT_DEQ_TMO_NSEC ("deq_tmo_nsec") #define EVT_PROD_ETHDEV ("prod_type_ethdev") #define EVT_PROD_TIMERDEV ("prod_type_timerdev") #define EVT_PROD_TIMERDEV_BURST ("prod_type_timerdev_burst") @@ -71,6 +72,7 @@ struct evt_options { uint8_t dev_id; uint32_t fwd_latency:1; uint32_t q_priority:1; + uint32_t deq_tmo_nsec; enum evt_prod_type prod_type; uint8_t timdev_use_burst; uint8_t timdev_cnt; diff --git a/app/test-eventdev/test_order_atq.c b/app/test-eventdev/test_or= der_atq.c index 4a8546e7f..0e98cc07e 100644 --- a/app/test-eventdev/test_order_atq.c +++ b/app/test-eventdev/test_order_atq.c @@ -113,18 +113,35 @@ static int order_atq_eventdev_setup(struct evt_test *test, struct evt_options *opt) { int ret; - const uint8_t nb_workers =3D evt_nr_active_lcores(opt->wlcores); /* number of active worker cores + 1 producer */ const uint8_t nb_ports =3D nb_workers + 1; + struct rte_event_dev_info info; + + rte_event_dev_info_get(opt->dev_id, &info); + if (opt->deq_tmo_nsec) { + if (opt->deq_tmo_nsec < info.min_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D info.min_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too low, using %d", + opt->deq_tmo_nsec); + } + if (opt->deq_tmo_nsec > info.max_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D info.max_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too high, using %d", + opt->deq_tmo_nsec); + } + } const struct rte_event_dev_config config =3D { + .dequeue_timeout_ns =3D opt->deq_tmo_nsec, .nb_event_queues =3D NB_QUEUES,/* one all types queue */ .nb_event_ports =3D nb_ports, - .nb_events_limit =3D 4096, + .nb_events_limit =3D info.max_num_events, .nb_event_queue_flows =3D opt->nb_flows, - .nb_event_port_dequeue_depth =3D 128, - .nb_event_port_enqueue_depth =3D 128, + .nb_event_port_dequeue_depth =3D + info.max_event_port_dequeue_depth, + .nb_event_port_enqueue_depth =3D + info.max_event_port_enqueue_depth, }; ret =3D rte_event_dev_configure(opt->dev_id, &config); diff --git a/app/test-eventdev/test_order_queue.c b/app/test-eventdev/test_= order_queue.c index a272c7a57..aba824a96 100644 --- a/app/test-eventdev/test_order_queue.c +++ b/app/test-eventdev/test_order_queue.c @@ -113,18 +113,35 @@ static int order_queue_eventdev_setup(struct evt_test *test, struct evt_options *opt) { int ret; - const uint8_t nb_workers =3D evt_nr_active_lcores(opt->wlcores); /* number of active worker cores + 1 producer */ const uint8_t nb_ports =3D nb_workers + 1; + struct rte_event_dev_info info; + + rte_event_dev_info_get(opt->dev_id, &info); + if (opt->deq_tmo_nsec) { + if (opt->deq_tmo_nsec < info.min_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D info.min_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too low, using %d", + opt->deq_tmo_nsec); + } + if (opt->deq_tmo_nsec > info.max_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D info.max_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too high, using %d", + opt->deq_tmo_nsec); + } + } const struct rte_event_dev_config config =3D { + .dequeue_timeout_ns =3D opt->deq_tmo_nsec, .nb_event_queues =3D NB_QUEUES,/* q0 ordered, q1 atomic */ .nb_event_ports =3D nb_ports, - .nb_events_limit =3D 4096, + .nb_events_limit =3D info.max_num_events, .nb_event_queue_flows =3D opt->nb_flows, - .nb_event_port_dequeue_depth =3D 128, - .nb_event_port_enqueue_depth =3D 128, + .nb_event_port_dequeue_depth =3D + info.max_event_port_dequeue_depth, + .nb_event_port_enqueue_depth =3D + info.max_event_port_enqueue_depth, }; ret =3D rte_event_dev_configure(opt->dev_id, &config); diff --git a/app/test-eventdev/test_perf_atq.c b/app/test-eventdev/test_per= f_atq.c index 73f31e564..a762370f5 100644 --- a/app/test-eventdev/test_perf_atq.c +++ b/app/test-eventdev/test_perf_atq.c @@ -175,7 +175,21 @@ perf_atq_eventdev_setup(struct evt_test *test, struct = evt_options *opt) return ret; } + if (opt->deq_tmo_nsec) { + if (opt->deq_tmo_nsec < dev_info.min_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D dev_info.min_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too low, using %d", + opt->deq_tmo_nsec); + } + if (opt->deq_tmo_nsec > dev_info.max_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D dev_info.max_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too high, using %d", + opt->deq_tmo_nsec); + } + } + const struct rte_event_dev_config config =3D { + .dequeue_timeout_ns =3D opt->deq_tmo_nsec, .nb_event_queues =3D nb_queues, .nb_event_ports =3D nb_ports, .nb_events_limit =3D dev_info.max_num_events, diff --git a/app/test-eventdev/test_perf_queue.c b/app/test-eventdev/test_p= erf_queue.c index d89491364..5d5f8cada 100644 --- a/app/test-eventdev/test_perf_queue.c +++ b/app/test-eventdev/test_perf_queue.c @@ -176,7 +176,21 @@ perf_queue_eventdev_setup(struct evt_test *test, struc= t evt_options *opt) return ret; } + if (opt->deq_tmo_nsec) { + if (opt->deq_tmo_nsec < dev_info.min_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D dev_info.min_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too low, using %d", + opt->deq_tmo_nsec); + } + if (opt->deq_tmo_nsec > dev_info.max_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D dev_info.max_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too high, using %d", + opt->deq_tmo_nsec); + } + } + const struct rte_event_dev_config config =3D { + .dequeue_timeout_ns =3D opt->deq_tmo_nsec, .nb_event_queues =3D nb_queues, .nb_event_ports =3D nb_ports, .nb_events_limit =3D dev_info.max_num_events, diff --git a/app/test-eventdev/test_pipeline_atq.c b/app/test-eventdev/test= _pipeline_atq.c index 998a56cfd..a05170353 100644 --- a/app/test-eventdev/test_pipeline_atq.c +++ b/app/test-eventdev/test_pipeline_atq.c @@ -314,7 +314,21 @@ pipeline_atq_eventdev_setup(struct evt_test *test, str= uct evt_options *opt) rte_event_dev_info_get(opt->dev_id, &info); + if (opt->deq_tmo_nsec) { + if (opt->deq_tmo_nsec < info.min_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D info.min_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too low, using %d", + opt->deq_tmo_nsec); + } + if (opt->deq_tmo_nsec > info.max_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D info.max_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too high, using %d", + opt->deq_tmo_nsec); + } + } + const struct rte_event_dev_config config =3D { + .dequeue_timeout_ns =3D opt->deq_tmo_nsec, .nb_event_queues =3D nb_queues, .nb_event_ports =3D nb_ports, .nb_events_limit =3D info.max_num_events, diff --git a/app/test-eventdev/test_pipeline_queue.c b/app/test-eventdev/te= st_pipeline_queue.c index 7da89dad5..c1b190777 100644 --- a/app/test-eventdev/test_pipeline_queue.c +++ b/app/test-eventdev/test_pipeline_queue.c @@ -334,7 +334,22 @@ pipeline_queue_eventdev_setup(struct evt_test *test, s= truct evt_options *opt) memset(queue_arr, 0, sizeof(uint8_t) * RTE_EVENT_MAX_QUEUES_PER_DEV); rte_event_dev_info_get(opt->dev_id, &info); + + if (opt->deq_tmo_nsec) { + if (opt->deq_tmo_nsec < info.min_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D info.min_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too low, using %d", + opt->deq_tmo_nsec); + } + if (opt->deq_tmo_nsec > info.max_dequeue_timeout_ns) { + opt->deq_tmo_nsec =3D info.max_dequeue_timeout_ns; + evt_info("dequeue_timeout_ns too high, using %d", + opt->deq_tmo_nsec); + } + } + const struct rte_event_dev_config config =3D { + .dequeue_timeout_ns =3D opt->deq_tmo_nsec, .nb_event_queues =3D nb_queues, .nb_event_ports =3D nb_ports, .nb_events_limit =3D info.max_num_events, diff --git a/doc/guides/tools/testeventdev.rst b/doc/guides/tools/testevent= dev.rst index cddba3be0..db5c4378b 100644 --- a/doc/guides/tools/testeventdev.rst +++ b/doc/guides/tools/testeventdev.rst @@ -129,31 +129,38 @@ The following are the application command-line option= s: Use event timer adapter as producer. - * ``--prod_type_timerdev_burst`` +* ``--prod_type_timerdev_burst`` - Use burst mode event timer adapter as producer. + Use burst mode event timer adapter as producer. - * ``--timer_tick_nsec`` +* ``--timer_tick_nsec`` - Used to dictate number of nano seconds between bucket traversal of= the - event timer adapter. Refer `rte_event_timer_adapter_conf`. + Used to dictate number of nano seconds between bucket traversal of = the + event timer adapter. Refer `rte_event_timer_adapter_conf`. - * ``--max_tmo_nsec`` +* ``--max_tmo_nsec`` - Used to configure event timer adapter max arm timeout in nano seco= nds. + Used to configure event timer adapter max arm timeout in nano secon= ds. - * ``--expiry_nsec`` +* ``--expiry_nsec`` - Dictate the number of nano seconds after which the event timer exp= ires. + Dictate the number of nano seconds after which the event timer expi= res. - * ``--nb_timers`` +* ``--nb_timers`` - Number of event timers each producer core will generate. + Number of event timers each producer core will generate. - * ``--nb_timer_adptrs`` +* ``--nb_timer_adptrs`` + + Number of event timer adapters to be used. Each adapter is used in + round robin manner by the producer cores. + +* ``--deq_tmo_nsec`` + + Global dequeue timeout for all the event ports if the provided dequ= eue + timeout is out of the supported range of event device it will be + adjusted to the highest/lowest supported dequeue timeout supported. - Number of event timer adapters to be used. Each adapter is used in - round robin manner by the producer cores. Eventdev Tests -------------- @@ -225,6 +232,7 @@ Supported application command line options are followin= g:: --nb_flows --nb_pkts --worker_deq_depth + --deq_tmo_nsec Example ^^^^^^^ @@ -287,6 +295,7 @@ Supported application command line options are followin= g:: --nb_flows --nb_pkts --worker_deq_depth + --deq_tmo_nsec Example ^^^^^^^ @@ -386,6 +395,7 @@ Supported application command line options are followin= g:: --expiry_nsec --nb_timers --nb_timer_adptrs + --deq_tmo_nsec Example ^^^^^^^ @@ -485,6 +495,7 @@ Supported application command line options are followin= g:: --expiry_nsec --nb_timers --nb_timer_adptrs + --deq_tmo_nsec Example ^^^^^^^ @@ -598,6 +609,7 @@ Supported application command line options are followin= g:: --stlist --worker_deq_depth --prod_type_ethdev + --deq_tmo_nsec .. Note:: @@ -689,6 +701,7 @@ Supported application command line options are followin= g:: --stlist --worker_deq_depth --prod_type_ethdev + --deq_tmo_nsec .. Note:: -- 2.21.0