From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0055.outbound.protection.outlook.com [104.47.36.55]) by dpdk.org (Postfix) with ESMTP id 38C3A1B311 for ; Tue, 16 Jan 2018 16:41:16 +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=HvX9QJLnG/GqOck0i8KTrrNiJEqYA8O5ig67YxfGHsg=; b=GpD2zoARvXYL+sWg24HSiCOFKF1UZaEd90abyjSEGJO2IBzxropLhMI11eRLTBwOfbGknd/DTnwtqq98UdyiB8JFGFHC51KT7LMOnpEuF2lAq22U+H7NVUGf2zppzWPCQnx1u/0czEgzR0pg1MA7KGQGkKUwO7v45U9q8KvyLq0= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Pavan.Bhagavatula@cavium.com; Received: from Pavan-LT.caveonetworks.com (111.93.218.67) by CY4PR07MB3464.namprd07.prod.outlook.com (10.171.252.145) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.407.7; Tue, 16 Jan 2018 15:41:11 +0000 From: Pavan Nikhilesh To: jerin.jacob@caviumnetworks.com, santosh.shukla@caviumnetworks.com, harry.van.haaren@intel.com, gage.eads@intel.com, hemant.agrawal@nxp.com, nipun.gupta@nxp.com, liang.j.ma@intel.com Cc: dev@dpdk.org, Pavan Nikhilesh Date: Tue, 16 Jan 2018 21:10:01 +0530 Message-Id: <20180116154003.3762-12-pbhagavatula@caviumnetworks.com> X-Mailer: git-send-email 2.14.1 In-Reply-To: <20180116154003.3762-1-pbhagavatula@caviumnetworks.com> References: <20171130072406.15605-1-pbhagavatula@caviumnetworks.com> <20180116154003.3762-1-pbhagavatula@caviumnetworks.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: MWHPR02CA0016.namprd02.prod.outlook.com (10.168.209.154) To CY4PR07MB3464.namprd07.prod.outlook.com (10.171.252.145) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: b5969551-eadc-4e93-e17e-08d55cf79397 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(5600026)(4604075)(2017052603307)(7153060)(7193020); SRVR:CY4PR07MB3464; X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3464; 3:Kid3/hFwGggnh8OPkM5Gk2kcioq0rtY+tjaLuklsDJTflDOmve0rQsbbxW+O96x/8nzAzYb+TB8Piq1pUKmZnKuOSmcNEsFRJnGcrb0OU/z4mfx7TsYuaMGAQ21b5WBL7ySY/Et8YoM97zOXEqXx2t/l+Qj/vhmmuJDXd/OyeuG/jbFXx97lvImJi7S5jsPoNC14SE5+amXzHcCQLhONUzMpd3tAI4FnrwIPATjVOk6QaQ2meXF7F6glNnCburdp; 25:q0mN3+pu0qW3Pt/4RMeeMI0NXjRruNf1aGkNuZp+UXcC3NNpW38+hjWtnV6DJdOPI1Hfw6Y3kObJJPMFPqUx9WfHqOMpZyq7p1q0zDEOmsfq++EMa3Ns59wDh1mr+AvCaLYQL4UqLJXl8WgeW0LKu+fqqHbggTpFy52z3wC1v5deAY9dLcO4xuCymHm2yzgUOuuvYsBhUZFxYQ19Fq8ox3abtjxMxD2UTgwoEwB1nuxtH15IGgKzqTaUKK/MmvZ8plAWWoQTUz/6JVY6MqxtrpBtDD2bvoP3sSxgfC06bPOjDGWM7Aaxevs3upiSzSfBeLVP5kvzi0/M8LXFeM2Geg==; 31:coLszCdf2jNrkg/VxufYTckmedtEBs+R2B1lV3gLzpbKWjmJfSs1/UHhXTItCcou/gwy3GP04dajZnf6/1j7JsGkRH2ojo/Dac2k//qT7FYZwFZRw2wOQ0Dzxir6I23+y+pdaxUneZRHEdDkl16eNy313u37G2vAADOHM00jHfqlWT+kZgII8/8NoSPa4O3+skVNONApFX3dteBzngu5auaXkzoe70t80kTSMN4Aqt8= X-MS-TrafficTypeDiagnostic: CY4PR07MB3464: X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3464; 20:TAlHN0TOsAxHvmu7LL8FIwbjlTrfcXGO04SiuBAW+XjbrMI58vU41YwosOD4qY+FWEcGxzI8A6dTg0hnzAR5hwzN7apX/TxzjBuPlr4P5np0hPMwPJT4b0PP3hwsLdy9gY7pp1phb/0lR6HPpP8VQL6mduvPbgN9bnb4OsftgGQSd40woBlgZdxRH1MsdEeEyiue1dBqUaaz122MVPZOBsWvFAbWvxR+6Jek3hJF6oPXIFmwEGB/lfvtuMoTQKnETfThJ/AeV76P4C8EuQDu2jpmyIFsVFnRE3uz4DPBylgZ1vf5Myjx6RiR6GOJuDhKyGYN31TbkZv8AFtTZ1mjv6aQV3ZwS5OphyP8sarCvb4X/nH2uw8comI5xD9FQ/jSrFdxbYtiWsXo3BJLaNJkhKGnUFZzgeyOstjym0/Kv/TIknFkOiG48QZOHPCj+MDVkVAPp5yF39Qi7M6sue+w8Ku1ie4eumDrHrmEgibWslYX4Qk7s7vrW9K2il83720D/6hzBfVB6AvqEF20CNhS3U3MM2azE64SVArcRuccom1T/I9H/obMiyCCLsa6F6WwppXFx693w9lNrV/0ECr7ceP8gHFWdwsQal4kd//afN4=; 4:y0Hy+LX4GxR287uAoyG8x8JwS+mde+pL9tITA6u+us41i7nGzk36LCjvKDI2Dgw6aXH/vsQ49pUVfZWfwzvlKkQxp1CUnI/eXEx7mq6aP1hXBh4FvMKpiQmCzhfYD2tYLgno03DwfNGzu7hKbsDhudTlP44mTYdf2nb1dnKiL06knkK5bSQpMmJLk9nZnLcoxzH4D/Yu5ZuGM3iMDGLh+0LgIzlX100oQBTzuwp1FygIxD2gSUfva9MnIStm+ULH+oeTieYQIm+TBCTVX9wprEo0Xq4rzpWLnU8n6SuwBWtVs19tqGKTDwy+7SZYs4Y8 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040470)(2401047)(5005006)(8121501046)(93006095)(3231023)(944501161)(10201501046)(3002001)(6041268)(20161123564045)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123558120)(20161123562045)(6072148)(201708071742011); SRVR:CY4PR07MB3464; BCL:0; PCL:0; RULEID:(100000803101)(100110400095); SRVR:CY4PR07MB3464; X-Forefront-PRVS: 0554B1F54F X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(979002)(39860400002)(366004)(346002)(39380400002)(396003)(376002)(189003)(199004)(81166006)(97736004)(8676002)(6116002)(5009440100003)(52116002)(305945005)(8936002)(107886003)(1076002)(51416003)(81156014)(25786009)(8656006)(4326008)(50466002)(50226002)(6486002)(5660300001)(3846002)(7736002)(16526018)(68736007)(69596002)(42882006)(106356001)(26005)(76176011)(53936002)(6512007)(59450400001)(47776003)(48376002)(16586007)(386003)(6506007)(66066001)(72206003)(2950100002)(36756003)(2906002)(478600001)(105586002)(316002)(53416004)(6666003)(42262002)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:CY4PR07MB3464; 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; CY4PR07MB3464; 23:B0Goq0bIjv5Gh1JdTdLgn4DbSrxsfcRMcUVdhJczm?= =?us-ascii?Q?YMyUCXiacjNt+VoMwQxrVFv5FMPTEHU1DPnwFcNVc+sUFGm/0d254fP1VZQR?= =?us-ascii?Q?NxFR6ORjMxNDm0DpVKEnDXaV6CUJMHH18VjQ/QMkGebwjFmcQtIfGdljrwkW?= =?us-ascii?Q?HHkSYfh/TWluEUmcr+NZEHwfZ0QmiZflhv61MJVQrfv8dVaBnidr3PYz+a2z?= =?us-ascii?Q?QxatYwB0Uu40H7Or0oJuSrmvQ0YeH15MilHjx+vTGmqq/4R7wlFOxkCAWDn7?= =?us-ascii?Q?mjbnjXp86vqD/agxXvpTkEggZXwwvcoMEsuXw5Rs7kezizT9u2uLLOZhNou2?= =?us-ascii?Q?xCcWIpgy0jCqqrrFDPF1ymEEBt4iFwC8dxgTeZE16y9ea2MFFAjUL8KD1Czl?= =?us-ascii?Q?9giDAooavE9ztfDH6RV2+HHeIC492B83C5KXX/6Xty1c5NhRoe9t4rJgthME?= =?us-ascii?Q?g3nalReKsxjCsLJrb1RLHfkOTdKzULSsafrqh0xqYImpHsU2Ud9NXRocjyDP?= =?us-ascii?Q?atrv8SB2Z442MyPbgb0gt/dmiQS6UqLBiEAXJL48pi8UrsJscrGXBhEWQOsX?= =?us-ascii?Q?2mdtPH984fK6e4K8c1XaL7lEUN3VHiUNMG81N4x5QRpkhXunjP9O2q6GIlaZ?= =?us-ascii?Q?Qw5ByvOocD1Ps5upxN2vzwRzlR5K8yWLxcEzmYOXv/HLp9v0qMy/fGOdF43B?= =?us-ascii?Q?VJBQKOsUXJw6dw05kxuFr+W/C/JfSHHnjedOrRRL7Qf8uIP2jZre1M3J8aDb?= =?us-ascii?Q?bOnxVqYPynP9C5XCKrbV8ambj7NGDJqoTg6V0JPz+dlIdw3yLMmsWJOcX1Ip?= =?us-ascii?Q?az/mHubqpg1rVgppiLg4NkVyVJsQScP9nrDtwFfCr5dIavzwN2LLEJ/Fs4LG?= =?us-ascii?Q?bxWSTbwg/+7MOqIefUQSXQWdN+B0uW/M3od4CEjmIhBkEfD1fEvPTF/1F+0x?= =?us-ascii?Q?Vo/VhG3IdZ0UHgGCsSB8I04NSHoqnDONjuTagbQhm1wHJSdThzRV/KOohsC/?= =?us-ascii?Q?2NvmIgOSamS9+cIa8wKbVgmJwplKkBS7iM/LU5Cr4vNDbWQIYeWIhUiOTvl9?= =?us-ascii?Q?ykZJx1u39mlJTO/fQmMMM06M1UYdm28ItiNLOYy6CDG4KJav95u4AkJoj3wm?= =?us-ascii?Q?qY7Z9FvTfhyTzkvW/2rIizqkI4OetwFlzt7Na8RRS19pR5DoqvDUy9oXt2eu?= =?us-ascii?Q?qScRIv10bflbShqCzBv2kLd+/LSoR4tka3an/0Q1umywMo5oivpNtySZaPiA?= =?us-ascii?Q?+REnCRfSArqbCSB6ireo8z5aqmrQP8yTco89uZH+xp/i9k44TaMzF0RpcV2i?= =?us-ascii?Q?AxmBbRo3Zj3qg9rMoC9EoS1t80qPpChoRVeUgVgOiMnf7R6xpU4SOKTnlZwh?= =?us-ascii?Q?CIPUw=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; CY4PR07MB3464; 6:6uroSBPYlck/3FSiNKJNbmds5WqHiKyDSfYEEfG54r9x5PkeKJIR1IJ9M3eA3eglwzG/6hZYDzAkP0f05TKSjD2eJRAf7GbR3ApwJCzJZhmxkrOvg6Y73jmT3Bgt2MgGdg4fpXuToS0I4cGEEVc5evu2EVIMrfV0NV3Al/jYvzP+QW2yO6EwFScPEsPFtnWA48IuxuhnMw80mqArRODchbDPkoYm5AE/a0CI8lnivTl0KvX98N8sfKSojyK7L8L9vZRoaBFpuVvVvVQaXJDiMdGvLZ+F0RL4eRJWKLc9TklTFv0QwkOSgwCl7GrxR8VoP8C3nawTmYNjxBpQHxmTXn3R3fIJiPfr/eutylfsf/Q=; 5:KlyND6jAEUd5tIxEKy5yvcxfOq1vM37Q0sVV/0nfe8yuuYGkJUzpT5o+UUAymNal3tw7RDrg8jRR6LMpIgjQ0Dp1vzw08AogT1DqVC7JnS26ZpLSja0QECPnCJnLXcSQXuxb/7C/9yReMsV8t0L5+0LWJFSujRjQcpjitgmKcj0=; 24:qa5gyNKXF+jfL7+oihieMxvc5/7XDg248IiSr/szF3Nhvep7UHM8OsZDB76V3dl9EF4DmTFngoCrIQzMhb8wNquGAnmHGo+W8CIc8Dw8fSA=; 7:Y4xwaHnAjoKsU7h3Pt0HdxTLNdU7whCgXRXcv836npd/8Y1jGYUYbcrHFYs02kZipav1G8VVC3NPTy9unDr174h60KLDQ07GcqaEg0ddH2bjc9M/acEwmooYWIJU+OlBQ+vHB17Gg2gqe25IjOnSGYiUFGTjvexgzmIcoNKag3tTzbTgqVwBFaMNJ10UD/jobCZacUWfm75+UcRctN61zocV95V1Q+aPM5DQjhmMUbIlM7iyY7P49upYahF2DRxE SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 16 Jan 2018 15:41:11.9893 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: b5969551-eadc-4e93-e17e-08d55cf79397 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR07MB3464 Subject: [dpdk-dev] [PATCH v6 12/14] app/eventdev: add pipeline atq worker functions 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: Tue, 16 Jan 2018 15:41:16 -0000 Signed-off-by: Pavan Nikhilesh Acked-by: Harry van Haaren --- app/test-eventdev/test_pipeline_atq.c | 280 +++++++++++++++++++++++++++++++++- 1 file changed, 279 insertions(+), 1 deletion(-) diff --git a/app/test-eventdev/test_pipeline_atq.c b/app/test-eventdev/test_pipeline_atq.c index 6c9ac6119..36abbddda 100644 --- a/app/test-eventdev/test_pipeline_atq.c +++ b/app/test-eventdev/test_pipeline_atq.c @@ -15,10 +15,288 @@ pipeline_atq_nb_event_queues(struct evt_options *opt) return rte_eth_dev_count(); } +static int +pipeline_atq_worker_single_stage_tx(void *arg) +{ + PIPELINE_WROKER_SINGLE_STAGE_INIT; + + while (t->done == false) { + uint16_t event = rte_event_dequeue_burst(dev, port, &ev, 1, 0); + + if (!event) { + rte_pause(); + continue; + } + + if (ev.sched_type == RTE_SCHED_TYPE_ATOMIC) { + pipeline_tx_pkt(ev.mbuf); + w->processed_pkts++; + continue; + } + pipeline_fwd_event(&ev, RTE_SCHED_TYPE_ATOMIC); + pipeline_event_enqueue(dev, port, &ev); + } + + return 0; +} + +static int +pipeline_atq_worker_single_stage_fwd(void *arg) +{ + PIPELINE_WROKER_SINGLE_STAGE_INIT; + const uint8_t tx_queue = t->tx_service.queue_id; + + while (t->done == false) { + uint16_t event = rte_event_dequeue_burst(dev, port, &ev, 1, 0); + + if (!event) { + rte_pause(); + continue; + } + + w->processed_pkts++; + ev.queue_id = tx_queue; + pipeline_fwd_event(&ev, RTE_SCHED_TYPE_ATOMIC); + pipeline_event_enqueue(dev, port, &ev); + } + + return 0; +} + +static int +pipeline_atq_worker_single_stage_burst_tx(void *arg) +{ + PIPELINE_WROKER_SINGLE_STAGE_BURST_INIT; + + while (t->done == false) { + uint16_t nb_rx = rte_event_dequeue_burst(dev, port, ev, + BURST_SIZE, 0); + + if (!nb_rx) { + rte_pause(); + continue; + } + + for (i = 0; i < nb_rx; i++) { + rte_prefetch0(ev[i + 1].mbuf); + if (ev[i].sched_type == RTE_SCHED_TYPE_ATOMIC) { + + pipeline_tx_pkt(ev[i].mbuf); + ev[i].op = RTE_EVENT_OP_RELEASE; + w->processed_pkts++; + } else + pipeline_fwd_event(&ev[i], + RTE_SCHED_TYPE_ATOMIC); + } + + pipeline_event_enqueue_burst(dev, port, ev, nb_rx); + } + + return 0; +} + +static int +pipeline_atq_worker_single_stage_burst_fwd(void *arg) +{ + PIPELINE_WROKER_SINGLE_STAGE_BURST_INIT; + const uint8_t tx_queue = t->tx_service.queue_id; + + while (t->done == false) { + uint16_t nb_rx = rte_event_dequeue_burst(dev, port, ev, + BURST_SIZE, 0); + + if (!nb_rx) { + rte_pause(); + continue; + } + + for (i = 0; i < nb_rx; i++) { + rte_prefetch0(ev[i + 1].mbuf); + ev[i].queue_id = tx_queue; + pipeline_fwd_event(&ev[i], RTE_SCHED_TYPE_ATOMIC); + w->processed_pkts++; + } + + pipeline_event_enqueue_burst(dev, port, ev, nb_rx); + } + + return 0; +} + +static int +pipeline_atq_worker_multi_stage_tx(void *arg) +{ + PIPELINE_WROKER_MULTI_STAGE_INIT; + const uint8_t nb_stages = t->opt->nb_stages; + + + while (t->done == false) { + uint16_t event = rte_event_dequeue_burst(dev, port, &ev, 1, 0); + + if (!event) { + rte_pause(); + continue; + } + + cq_id = ev.sub_event_type % nb_stages; + + if (cq_id == last_queue) { + if (ev.sched_type == RTE_SCHED_TYPE_ATOMIC) { + + pipeline_tx_pkt(ev.mbuf); + w->processed_pkts++; + continue; + } + pipeline_fwd_event(&ev, RTE_SCHED_TYPE_ATOMIC); + } else { + ev.sub_event_type++; + pipeline_fwd_event(&ev, sched_type_list[cq_id]); + } + + pipeline_event_enqueue(dev, port, &ev); + } + return 0; +} + +static int +pipeline_atq_worker_multi_stage_fwd(void *arg) +{ + PIPELINE_WROKER_MULTI_STAGE_INIT; + const uint8_t nb_stages = t->opt->nb_stages; + const uint8_t tx_queue = t->tx_service.queue_id; + + while (t->done == false) { + uint16_t event = rte_event_dequeue_burst(dev, port, &ev, 1, 0); + + if (!event) { + rte_pause(); + continue; + } + + cq_id = ev.sub_event_type % nb_stages; + + if (cq_id == last_queue) { + w->processed_pkts++; + ev.queue_id = tx_queue; + pipeline_fwd_event(&ev, RTE_SCHED_TYPE_ATOMIC); + } else { + ev.sub_event_type++; + pipeline_fwd_event(&ev, sched_type_list[cq_id]); + } + + pipeline_event_enqueue(dev, port, &ev); + } + return 0; +} + +static int +pipeline_atq_worker_multi_stage_burst_tx(void *arg) +{ + PIPELINE_WROKER_MULTI_STAGE_BURST_INIT; + const uint8_t nb_stages = t->opt->nb_stages; + + while (t->done == false) { + uint16_t nb_rx = rte_event_dequeue_burst(dev, port, ev, + BURST_SIZE, 0); + + if (!nb_rx) { + rte_pause(); + continue; + } + + for (i = 0; i < nb_rx; i++) { + rte_prefetch0(ev[i + 1].mbuf); + cq_id = ev[i].sub_event_type % nb_stages; + + if (cq_id == last_queue) { + if (ev[i].sched_type == RTE_SCHED_TYPE_ATOMIC) { + + pipeline_tx_pkt(ev[i].mbuf); + ev[i].op = RTE_EVENT_OP_RELEASE; + w->processed_pkts++; + continue; + } + + pipeline_fwd_event(&ev[i], + RTE_SCHED_TYPE_ATOMIC); + } else { + ev[i].sub_event_type++; + pipeline_fwd_event(&ev[i], + sched_type_list[cq_id]); + } + } + + pipeline_event_enqueue_burst(dev, port, ev, nb_rx); + } + return 0; +} + +static int +pipeline_atq_worker_multi_stage_burst_fwd(void *arg) +{ + PIPELINE_WROKER_MULTI_STAGE_BURST_INIT; + const uint8_t nb_stages = t->opt->nb_stages; + const uint8_t tx_queue = t->tx_service.queue_id; + + while (t->done == false) { + uint16_t nb_rx = rte_event_dequeue_burst(dev, port, ev, + BURST_SIZE, 0); + + if (!nb_rx) { + rte_pause(); + continue; + } + + for (i = 0; i < nb_rx; i++) { + rte_prefetch0(ev[i + 1].mbuf); + cq_id = ev[i].sub_event_type % nb_stages; + + if (cq_id == last_queue) { + w->processed_pkts++; + ev[i].queue_id = tx_queue; + pipeline_fwd_event(&ev[i], + RTE_SCHED_TYPE_ATOMIC); + } else { + ev[i].sub_event_type++; + pipeline_fwd_event(&ev[i], + sched_type_list[cq_id]); + } + } + + pipeline_event_enqueue_burst(dev, port, ev, nb_rx); + } + return 0; +} + static int worker_wrapper(void *arg) { - RTE_SET_USED(arg); + struct worker_data *w = arg; + struct evt_options *opt = w->t->opt; + const bool burst = evt_has_burst_mode(w->dev_id); + const bool mt_safe = !w->t->mt_unsafe; + const uint8_t nb_stages = opt->nb_stages; + RTE_SET_USED(opt); + + if (nb_stages == 1) { + if (!burst && mt_safe) + return pipeline_atq_worker_single_stage_tx(arg); + else if (!burst && !mt_safe) + return pipeline_atq_worker_single_stage_fwd(arg); + else if (burst && mt_safe) + return pipeline_atq_worker_single_stage_burst_tx(arg); + else if (burst && !mt_safe) + return pipeline_atq_worker_single_stage_burst_fwd(arg); + } else { + if (!burst && mt_safe) + return pipeline_atq_worker_multi_stage_tx(arg); + else if (!burst && !mt_safe) + return pipeline_atq_worker_multi_stage_fwd(arg); + if (burst && mt_safe) + return pipeline_atq_worker_multi_stage_burst_tx(arg); + else if (burst && !mt_safe) + return pipeline_atq_worker_multi_stage_burst_fwd(arg); + } rte_panic("invalid worker\n"); } -- 2.14.1