From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0077.outbound.protection.outlook.com [104.47.38.77]) by dpdk.org (Postfix) with ESMTP id 447431B1A0 for ; Mon, 11 Dec 2017 12:13:25 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=r+KheLniIetb+IqxRsNsm25NFvFzxrvRJ721KMZnTd0=; b=AEjnJcKrjZk9O4YjFoI3xsjg5vDxpy54VfYeDLw/pYBZuyDdGCpx8+/iBH53VtRDHluEqzEHGqPAZT6iVHxhTwvaA6MikFHQOGjDnhq+ukgW3+0NsOzB71ZMSAkwtNQVxEn5Ujqb8uiYRU9f/Hi9z2LjvltdH9heST9zX2aJnF8= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Pavan.Bhagavatula@cavium.com; Received: from Pavan-LT.caveonetworks.com (111.93.218.67) by BN6PR07MB3458.namprd07.prod.outlook.com (10.161.153.21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.302.9; Mon, 11 Dec 2017 11:13:20 +0000 From: Pavan Nikhilesh To: jerin.jacob@caviumnetworks.com, bruce.richardson@intel.com, harry.van.haaren@intel.com, gage.eads@intel.com, hemant.agrawal@nxp.com, nipun.gupta@nxp.com, nikhil.rao@intel.com, santosh.shukla@caviumnetworks.com Cc: dev@dpdk.org, Pavan Nikhilesh Date: Mon, 11 Dec 2017 16:42:34 +0530 Message-Id: <20171211111236.1331-6-pbhagavatula@caviumnetworks.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20171211111236.1331-1-pbhagavatula@caviumnetworks.com> References: <1508330348-30060-1-git-send-email-pbhagavatula@caviumnetworks.com> <20171211111236.1331-1-pbhagavatula@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: BN6PR1301CA0010.namprd13.prod.outlook.com (10.174.84.151) To BN6PR07MB3458.namprd07.prod.outlook.com (10.161.153.21) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 3b7e90fc-d9b9-40ed-d110-08d54088316a X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(5600026)(4604075)(4534020)(4602075)(4627115)(201703031133081)(201702281549075)(2017052603307); SRVR:BN6PR07MB3458; X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3458; 3:gePIy0m+IG6go8sUXo9CuMEAsYUHH4IgKDO8ILHZZBEI0mXvcnQNyktFKsJBWKS+I1LWDiqGbOaik7rAB+WKJL8C1GMwJXPSO7/FQavL64pJgEjtcd+zUq0p2aCyPoktX3sJTxdSYbRrlcaKJMIYGhIEoCJrhPAUmstDpiH4lv17omK+79r98RGRiFTyqmPB9aJvb3WhBDfcOu1USOLk2Eh1o/QiS6bLs0NLbIsfeDWA3dDYetn/AMs3+vqI6x+d; 25:i6vd6e/nnfxL7mpAX6QyFTPMRpK5cQys8uw79x6Yc0ZQkQYJu1D9T65zT1AUV4/DENpHGaPkrabz3fagFzs1MGhjc+R1Co52hdDpz7lrAPEba1TatNAqbkzxqmpLa3SAwJYNWha2lIipzrBGVp4eOLej+JlxWvILNdLBFirwZGBsKpFozMUQv7uO0NO/61NDKWNXaXTRnRpPPX8Dnl3GSnPd6gxbNSVvDGdlAszbfjLeh6gYze3cJU7tTqslsH6w20I25wj5cF2HtKT6lJC/DXpVlh3YULhaGYLus209r8DGMjYDk/z2gGn0APZjjT9LoAzdLGjMedT9BrDiPXcNffNeB0PHva2RnHA90YKNLuw=; 31:QV5n8beExqWsFuml+cXHf6mJDYPYg8FqaX3icfGL62+rttav+jq9KwuOxTKjGo2SQesrepHHdqPCjJoNgi7dEbFd2XyRlaKT2ByIm/BswbCYxL/K9BSV2JQMywd/Y1LqWNRDPBot1YZ8JOMe2yF95RZVluPv9B/kwVNWjBXGcTNSMxHREUz4eIdXhHMb3jWCs9ujtXrWfMzxNmOPeXzzmBQVQcubLNe9AtMlt07mnWI= X-MS-TrafficTypeDiagnostic: BN6PR07MB3458: X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3458; 20:TlXdfkfV/ap5c1QXAzdoDBcfbEEiAUuf8c6agYiaosAtvwpQ5jYieeyTkA/FAbk2M80A701YDTybUjrU+z6buEl/N0LANatnjML4L01Mv4V7nNMsy7cmCdaUPk6PWfDZeHpZyehhAca6jArmv0iMU5Hh7Ea985o/PoI4QHzLoGyUUSHzF0cPZ8wagq2/37+No1t2HEDa5SyG6vu0l8/WCRwrWZlAQgQ4a8cNzpN/4p0t4wMyz8nKkYmz1+KSsCHRTnFw6ZLvjASZBFH0/pa25yN0LOL+EpZwWIJy9mwX4alclUPoTFKRWThrjJqd2tAqHeFvfKKEKcYxQMAS5lpuP9VGufsAh8u3unnA1jbLtAKpkBcSCrUPL7uQ1/PHSl/RZw0nGJfTM6eBXLeSk/igmdMR7Q9Q6/NzRp+tWjsE9h2Yd0/cQlt9UHeC40e8RT00eI85fVYImGE9XhXo4Xd8wpj8nJ7melhpda2rZ4VfU2cp2wmYDqXfdt8aHpqkmfe+ENEg4dbnRQC89tM6JS9IDNloD8PaHOcSKjHNMyzSc3NSUg4p+2/h3aSv8hbIAL8vG8dRdWba/1CxyTlLAMf+RytrnvFWyA7VWPhXyOBVdZA=; 4:YCwL2PkrrUlL/r21x4qHSDq5Uk9OLyVVOur8ZOb7kayk4hJxAnen+xGAiN8D/8MUM65Zfy4dcUQGVMaQ7f7/qaeBJrI2gRDdQ6CyjjDHcIZK2NpDWdyuuZHyeRSbkJX+PbxElrYiWDIW+TC+gz5Ms0YbkhINLVLITT/X0JqDVzA1qoJZFPmNewIOO9bFpyp76ecQ0CDNSl7av2gO1Um6ff/pZW64s0EHOeZ5cYfz4B9AQvAiij7kgnsfRoGd1J04MajXGaNU2tUJqQsz6s5Dvg== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040450)(2401047)(5005006)(8121501046)(93006095)(3231022)(10201501046)(3002001)(6041248)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(20161123558100)(20161123555025)(20161123560025)(20161123564025)(20161123562025)(6072148)(201708071742011); SRVR:BN6PR07MB3458; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:BN6PR07MB3458; X-Forefront-PRVS: 0518EEFB48 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(346002)(366004)(376002)(189003)(199004)(76176011)(51416003)(105586002)(48376002)(59450400001)(5660300001)(52116002)(6506006)(3846002)(2906002)(50466002)(106356001)(97736004)(66066001)(316002)(25786009)(305945005)(2950100002)(8656006)(478600001)(4326008)(16586007)(16526018)(42882006)(81166006)(6636002)(8676002)(81156014)(72206003)(8936002)(33646002)(107886003)(36756003)(68736007)(69596002)(6486002)(6666003)(50226002)(53936002)(47776003)(6116002)(53416004)(5009440100003)(1076002)(6512007)(7736002)(42262002); DIR:OUT; SFP:1101; SCL:1; SRVR:BN6PR07MB3458; H:Pavan-LT.caveonetworks.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN6PR07MB3458; 23:gKjmAO752UqjfAZzpUqZuVPxH36yoQ5h2eH23IjiD?= =?us-ascii?Q?qkCM4WAFwl+rBPavvprkZJOB0s7nydtS+GZvfKeK7Mj0fDH6/Prs6Kwfl0QY?= =?us-ascii?Q?QT3ty4zaCdhMuBpdfDvmPnqo163EyzNQui+Hf+AkdE3NmM9aEXY9PShi1C2x?= =?us-ascii?Q?Q/NhRldSZT4iBte5pdS7jMqxDVo5suUHjKTl/zWfKT4cBzTBlUa4PmlC2vFD?= =?us-ascii?Q?XsGr6AE5gcqo0kHHimFfS9oVZlmyDRQ2/6vMjIM6qQ8Jc+jDAZBF/RpKTFKs?= =?us-ascii?Q?0TZ5dsm9gad/6cKj+xgpSNJaLh+XN8ReVvKazRuLJo/7yHiM0BYs6NOhJJYE?= =?us-ascii?Q?DsBfBR5w1z+SSn6o4RJekUdnGHJQr1OdAILI8SvJUNxW/3Q0F+s2M15GOb1a?= =?us-ascii?Q?YOHz7yMai/Dt5JKi9eAiOh1THc5l47z704v+78gpVKTbeJClwhMQ9x5T/zd+?= =?us-ascii?Q?JQ3j8bzwBGPyqIoZm7IVukFnJEfnuNS8RplY3keNKHrzAr3f94eEvYanXEVG?= =?us-ascii?Q?vxA/8+w9PfjW0KX2rTuaPNNw7Yh0MgftnkrLqBvSexyqEVh43jr8om9li/q0?= =?us-ascii?Q?2er/ImtO/rQk+bmcq5l48X41ilR2KmE+F4InyWteoQ8RXQL6xEuKZURkBOUB?= =?us-ascii?Q?jGUGf2BzoMpEhL9uaZry57vNHk96tVch2kBpBde8zarYzUErPoO8PDn16gBc?= =?us-ascii?Q?co8s4NsscgEXyKrs0pCnzp7vXMcUzNu5umIhSRp2LVxyZawq0ApTK5CdNHHI?= =?us-ascii?Q?jJtE6g7DlCyJ2KUP/Oko8OqJHJwSEqwv5sld2ZYLUWyBGf9nJ2o365cL/B8i?= =?us-ascii?Q?MDdxOFlelPXnJ8H6gslhbRniMjQ2o7bnreNqXx9MyswS4FguvejNGA0gdFAU?= =?us-ascii?Q?twqK5LO0eKWu/PnDosm900UxT2ThNCjTeuQz/1oIluIZvYxw9VCUqM960HsY?= =?us-ascii?Q?6h9yArEwO0D6ZYACSmzCm20OYdEgCf/8ytj0wL6EV3mDSd9Wb0D1Qwm/FTgZ?= =?us-ascii?Q?BqKWSU0lobY67wVdS6H6aunXctURr501ctikxROk+eyJEGyykHasKyhaqnci?= =?us-ascii?Q?yT0PPv7ukaWX5NJ1R2phq16TeuKLFFv91fzLF3yYWrn7yi1kGpvGKTyKCrvf?= =?us-ascii?Q?EY9uYii9ekvGxZWNG46er9t/g5hSta1QMYpNPpcCJ6mmk60Cmn1EG+7uQ6Xe?= =?us-ascii?Q?P4oMD4gCjtBOIhfEHvLQzi1Y3om2mMkK5M1?= X-Microsoft-Exchange-Diagnostics: 1; BN6PR07MB3458; 6:uI16Wm7vH9rgv6tH4gUiwAoFulEyEkXRpXlRi0pCCvstwf9gWv47YehS9tEHAmbC2IM/jR0e24tZJMzOnkemfgCllrRLzYc/CAd0z//vV6upcmgzy2L6i0ufs9hcL6Pp6v09M+Fp0dzKPeCMPZ0jV2wQFYZYTME4peRJUXufv7t98jW9JvW1f6lyITx2Y3BUnCHY6CIEGZzmbL5evuPTiQlNOBjltS7sfdvy1jNhCfva4W59Jcz+XUAB27589w2Aq8yCcldZgxGVIleLLT4HWYgFlQeaOZoYCMQ9G2z/gg55uqwlSD9ED4xzYIw46V18TLKpfkONKAb1jHQRKj9d5zMrmo3c1OjUvpwzFoOxwkY=; 5:TgNu9SLsJ4PjYbZu5NLonyRzDdWk7h2BBbLL8O+HuusFpH3Pptr72nEIvHbFCwzYRok54mZxYdQjMUCPryZsKbqcp5zt1BZ69/N9pO8/HpUQBrkYvg20roJwM55zslD3O95Lvvhmpf2COlct21UWoL+winNivILTGquoFFLY2so=; 24:KPL0GGpgrUrPvFAimZpL25sJTETZZzcgs5ZqWUNKem374atPCIERlbftx4aORYcKswslcNgiyf/W3eE4FR5P1ZvvHBOzU/2mgkINSAZVoI8=; 7:AF+dWu/ozwxeW5Gn61FjC/ooZCKBOG17qn3UodbPlQJHCyR1zxl9xzDnhVwrCXrjMd9rrYNkU9jBIwj3vyOAwlIK09GkfK77hbSwTuTb4WRz/tUPKsNINDg0WnNIMITtO+oF3TvxTrPTVJ0n5HQ/Q9Nxh8fKCU9j/Nfwf1CUDfKyiRHzyddbn6+zRbD4GTcGp8siOTlL+pxUhNdFXQXkK1Gbniamd0vHB17jnIfzUZzERnopYmbNeMpoMrkl1+Ek SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Dec 2017 11:13:20.1763 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 3b7e90fc-d9b9-40ed-d110-08d54088316a X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN6PR07MB3458 Subject: [dpdk-dev] [PATCH v2 6/8] app/eventdev: add event Rx adapter setup 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: Mon, 11 Dec 2017 11:13:25 -0000 Add functions to setup and configure Rx adapter based on the number of ethdev ports setup. Signed-off-by: Pavan Nikhilesh Acked-by: Jerin Jacob --- v2 Changes: - Used default eventdev config values instead of hardcoded values. app/test-eventdev/test_perf_atq.c | 19 ++++-- app/test-eventdev/test_perf_common.c | 111 +++++++++++++++++++++++++++++------ app/test-eventdev/test_perf_common.h | 1 + app/test-eventdev/test_perf_queue.c | 16 ++++- 4 files changed, 120 insertions(+), 27 deletions(-) diff --git a/app/test-eventdev/test_perf_atq.c b/app/test-eventdev/test_perf_atq.c index 3aa12f56f..1fe16ed63 100644 --- a/app/test-eventdev/test_perf_atq.c +++ b/app/test-eventdev/test_perf_atq.c @@ -187,6 +187,7 @@ perf_atq_eventdev_setup(struct evt_test *test, struct evt_options *opt) uint8_t queue; uint8_t nb_queues; uint8_t nb_ports; + struct rte_event_dev_info dev_info; nb_ports = evt_nr_active_lcores(opt->wlcores); nb_ports += opt->prod_type == EVT_PROD_TYPE_ETH_RX_ADPTR ? 0 : @@ -195,13 +196,22 @@ perf_atq_eventdev_setup(struct evt_test *test, struct evt_options *opt) nb_queues = opt->prod_type == EVT_PROD_TYPE_ETH_RX_ADPTR ? rte_eth_dev_count() : atq_nb_event_queues(opt); + memset(&dev_info, 0, sizeof(struct rte_event_dev_info)); + ret = rte_event_dev_info_get(opt->dev_id, &dev_info); + if (ret) { + evt_err("failed to get eventdev info %d", opt->dev_id); + return ret; + } + const struct rte_event_dev_config config = { .nb_event_queues = nb_queues, .nb_event_ports = nb_ports, - .nb_events_limit = 4096, + .nb_events_limit = dev_info.max_num_events, .nb_event_queue_flows = opt->nb_flows, - .nb_event_port_dequeue_depth = 128, - .nb_event_port_enqueue_depth = 128, + .nb_event_port_dequeue_depth = + dev_info.max_event_port_dequeue_depth, + .nb_event_port_enqueue_depth = + dev_info.max_event_port_enqueue_depth, }; ret = rte_event_dev_configure(opt->dev_id, &config); @@ -225,8 +235,7 @@ perf_atq_eventdev_setup(struct evt_test *test, struct evt_options *opt) } } - ret = perf_event_dev_port_setup(test, opt, 1 /* stride */, - nb_queues); + ret = perf_event_dev_port_setup(test, opt, 1 /* stride */, nb_queues); if (ret) return ret; diff --git a/app/test-eventdev/test_perf_common.c b/app/test-eventdev/test_perf_common.c index 03be8171c..483103b11 100644 --- a/app/test-eventdev/test_perf_common.c +++ b/app/test-eventdev/test_perf_common.c @@ -231,19 +231,79 @@ perf_launch_lcores(struct evt_test *test, struct evt_options *opt, return 0; } +static int +perf_event_rx_adapter_setup(struct evt_options *opt, uint8_t stride, + struct rte_event_port_conf prod_conf) +{ + int ret = 0; + uint16_t prod; + + struct rte_event_eth_rx_adapter_queue_conf queue_conf = { + .ev.event = 0, + .ev.sched_type = opt->sched_type_list[0], + }; + + for (prod = 0; prod < rte_eth_dev_count(); prod++) { + uint32_t cap; + + ret = rte_event_eth_rx_adapter_caps_get(opt->dev_id, + prod, &cap); + if (ret) { + evt_err("failed to get event rx adapter[%d]" + " capabilities", + opt->dev_id); + return ret; + } + queue_conf.ev.queue_id = prod * stride; + ret = rte_event_eth_rx_adapter_create(prod, opt->dev_id, + &prod_conf); + if (ret) { + evt_err("failed to create rx adapter[%d]", prod); + return ret; + } + ret = rte_event_eth_rx_adapter_queue_add(prod, prod, -1, + &queue_conf); + if (ret) { + evt_err("failed to add rx queues to adapter[%d]", prod); + return ret; + } + + ret = rte_eth_dev_start(prod); + if (ret) { + evt_err("Ethernet dev [%d] failed to start." + " Using synthetic producer", prod); + return ret; + } + + ret = rte_event_eth_rx_adapter_start(prod); + if (ret) { + evt_err("Rx adapter[%d] start failed", prod); + return ret; + } + printf("%s: Port[%d] using Rx adapter[%d] started\n", __func__, + prod, prod); + } + + return ret; +} + int perf_event_dev_port_setup(struct evt_test *test, struct evt_options *opt, uint8_t stride, uint8_t nb_queues) { struct test_perf *t = evt_test_priv(test); - uint8_t port, prod; + uint16_t port, prod; int ret = -1; + struct rte_event_port_conf port_conf; + + memset(&port_conf, 0, sizeof(struct rte_event_port_conf)); + rte_event_port_default_conf_get(opt->dev_id, 0, &port_conf); /* port configuration */ const struct rte_event_port_conf wkr_p_conf = { .dequeue_depth = opt->wkr_deq_dep, - .enqueue_depth = 64, - .new_event_threshold = 4096, + .enqueue_depth = port_conf.enqueue_depth, + .new_event_threshold = port_conf.new_event_threshold, }; /* setup one port per worker, linking to all queues */ @@ -271,26 +331,38 @@ perf_event_dev_port_setup(struct evt_test *test, struct evt_options *opt, } /* port for producers, no links */ - const struct rte_event_port_conf prod_conf = { - .dequeue_depth = 8, - .enqueue_depth = 32, - .new_event_threshold = 1200, + struct rte_event_port_conf prod_conf = { + .dequeue_depth = port_conf.dequeue_depth, + .enqueue_depth = port_conf.enqueue_depth, + .new_event_threshold = port_conf.new_event_threshold, }; - prod = 0; - for ( ; port < perf_nb_event_ports(opt); port++) { - struct prod_data *p = &t->prod[port]; - - p->dev_id = opt->dev_id; - p->port_id = port; - p->queue_id = prod * stride; - p->t = t; + if (opt->prod_type == EVT_PROD_TYPE_ETH_RX_ADPTR) { + for ( ; port < perf_nb_event_ports(opt); port++) { + struct prod_data *p = &t->prod[port]; + p->t = t; + } - ret = rte_event_port_setup(opt->dev_id, port, &prod_conf); - if (ret) { - evt_err("failed to setup port %d", port); + ret = perf_event_rx_adapter_setup(opt, stride, prod_conf); + if (ret) return ret; + } else { + prod = 0; + for ( ; port < perf_nb_event_ports(opt); port++) { + struct prod_data *p = &t->prod[port]; + + p->dev_id = opt->dev_id; + p->port_id = port; + p->queue_id = prod * stride; + p->t = t; + + ret = rte_event_port_setup(opt->dev_id, port, + &prod_conf); + if (ret) { + evt_err("failed to setup port %d", port); + return ret; + } + prod++; } - prod++; } return ret; @@ -479,6 +551,7 @@ void perf_ethdev_destroy(struct evt_test *test, struct evt_options *opt) if (opt->prod_type == EVT_PROD_TYPE_ETH_RX_ADPTR) { for (i = 0; i < rte_eth_dev_count(); i++) { + rte_event_eth_rx_adapter_stop(i); rte_eth_dev_stop(i); rte_eth_dev_close(i); } diff --git a/app/test-eventdev/test_perf_common.h b/app/test-eventdev/test_perf_common.h index f33365628..95a217495 100644 --- a/app/test-eventdev/test_perf_common.h +++ b/app/test-eventdev/test_perf_common.h @@ -40,6 +40,7 @@ #include #include #include +#include #include #include #include diff --git a/app/test-eventdev/test_perf_queue.c b/app/test-eventdev/test_perf_queue.c index d606878a1..e446c5437 100644 --- a/app/test-eventdev/test_perf_queue.c +++ b/app/test-eventdev/test_perf_queue.c @@ -184,6 +184,7 @@ perf_queue_eventdev_setup(struct evt_test *test, struct evt_options *opt) int ret; int nb_ports; int nb_queues; + struct rte_event_dev_info dev_info; nb_ports = evt_nr_active_lcores(opt->wlcores); nb_ports += opt->prod_type == EVT_PROD_TYPE_ETH_RX_ADPTR ? 0 : @@ -193,13 +194,22 @@ perf_queue_eventdev_setup(struct evt_test *test, struct evt_options *opt) rte_eth_dev_count() * nb_stages : perf_queue_nb_event_queues(opt); + memset(&dev_info, 0, sizeof(struct rte_event_dev_info)); + ret = rte_event_dev_info_get(opt->dev_id, &dev_info); + if (ret) { + evt_err("failed to get eventdev info %d", opt->dev_id); + return ret; + } + const struct rte_event_dev_config config = { .nb_event_queues = nb_queues, .nb_event_ports = nb_ports, - .nb_events_limit = 4096, + .nb_events_limit = dev_info.max_num_events, .nb_event_queue_flows = opt->nb_flows, - .nb_event_port_dequeue_depth = 128, - .nb_event_port_enqueue_depth = 128, + .nb_event_port_dequeue_depth = + dev_info.max_event_port_dequeue_depth, + .nb_event_port_enqueue_depth = + dev_info.max_event_port_enqueue_depth, }; ret = rte_event_dev_configure(opt->dev_id, &config); -- 2.14.1