From patchwork Thu Dec 14 07:19:23 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Akhil Goyal X-Patchwork-Id: 32256 X-Patchwork-Delegate: pablo.de.lara.guarch@intel.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id 1757D1B00D; Thu, 14 Dec 2017 08:23:04 +0100 (CET) Received: from NAM03-DM3-obe.outbound.protection.outlook.com (mail-dm3nam03on0045.outbound.protection.outlook.com [104.47.41.45]) by dpdk.org (Postfix) with ESMTP id A5E222030 for ; Thu, 14 Dec 2017 08:23:01 +0100 (CET) Received: from MWHPR03CA0055.namprd03.prod.outlook.com (10.174.173.172) by BN3PR03MB2355.namprd03.prod.outlook.com (10.166.74.150) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.302.9; Thu, 14 Dec 2017 07:23:00 +0000 Received: from BN1BFFO11FD016.protection.gbl (2a01:111:f400:7c10::1:173) by MWHPR03CA0055.outlook.office365.com (2603:10b6:301:3b::44) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.302.9 via Frontend Transport; Thu, 14 Dec 2017 07:22:59 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; NXP1.onmicrosoft.com; dkim=none (message not signed) header.d=none;NXP1.onmicrosoft.com; dmarc=fail action=none header.from=nxp.com; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BN1BFFO11FD016.mail.protection.outlook.com (10.58.144.79) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.282.5 via Frontend Transport; Thu, 14 Dec 2017 07:22:50 +0000 Received: from netperf2.ap.freescale.net ([10.232.133.164]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id vBE7Msce003366; Thu, 14 Dec 2017 00:22:55 -0700 From: Akhil Goyal To: CC: , , , , Akhil Goyal Date: Thu, 14 Dec 2017 12:49:23 +0530 Message-ID: <20171214071923.10087-1-akhil.goyal@nxp.com> X-Mailer: git-send-email 2.9.3 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131577097710934448; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(7966004)(336005)(39860400002)(346002)(396003)(376002)(39380400002)(2980300002)(1110001)(1109001)(339900001)(199004)(189003)(8656006)(86362001)(4326008)(1076002)(68736007)(104016004)(77096006)(36756003)(6916009)(6666003)(47776003)(81166006)(2351001)(106466001)(50466002)(105606002)(53936002)(356003)(305945005)(81156014)(48376002)(296002)(16586007)(50226002)(498600001)(97736004)(85426001)(54906003)(51416003)(2906002)(316002)(8676002)(5660300001)(8936002); DIR:OUT; SFP:1101; SCL:1; SRVR:BN3PR03MB2355; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD016; 1:WmguDzwSi1fLv0BMub2YZj+kolRzjrEF3tzea65mdRjVTlYUrrSBRRbTLf6n/LplPNgMpAJC8EP838hBcRIOjCrpHsqrLlMNIWHRBb2B1RWmDxemcB8hEmCAdQ2Bh4wq MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: f4562655-147b-4081-b85d-08d542c37c17 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(4534020)(4628075)(201703131517081)(5600026)(4604075)(2017052603307); SRVR:BN3PR03MB2355; X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB2355; 3:8O6e0e6vlJX64Eah+SeGmKiMi3PG2DZWnQxtgulzlzZswp3ka8LmSI/i/duPvh4giLERjTOo/4HpP+OyHwjWs70CpFc424RiXNv8Bi4uNPuJxgb5/M3d/w8maCckDZ2hA/tzZ5+b9u9MS3F+PIll9aNTclkjRgn7K/QgJuIjEnR8mgxazvN9e4veC/V+q10cOi33cc1IjqA0m/dS1B6PRWu3dAcy9MC6so4bICgWhJ9dWKK57LwIrMA39Rg/P2F7t94zIIHuRvb0xQ5gJ5zz+ye6d1rShVmNUO4KWk+XwIxdve14v+u/d615OaOFh3EH1PUwmuCzbl4O6SXcD9KuAvC+Mfe/S4RF1Srp30PqFzE=; 25:iBmV5P8nT1BHXlpTs8sp50DKR/abce7qgfr3VvVQK20vDKmWWkctVzpuvXNVL2HfIWGF48HgpNTqUvtaMpjeCsiZkQeDbdZ+/u8Xv4TKg/Jnm+vWWDJ3XAr3JGJgY6Aykoq/UG5jXgTPixl8ypkCb0thXgkzv8zycHWhBNMJzZkkBCg4OrXGCa9oGVvzm8g1Lbxh6GaYnXy9tnN9Fawr0pcAix40fit2yPq5+IT9WUuM9rRhF3bsKsHrJ2riUTCK4BePqqJuasTk/FDN5Qx39pjrR7ja8Itp6EvoemhOV/mmcXiz0AoCwsD160+fWq/5Idd5XgoCm2oLB+k05/I3RQ== X-MS-TrafficTypeDiagnostic: BN3PR03MB2355: X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB2355; 31:/jfeMyAExWIWTLl17at8hhu5HMJPWLd8RmHeqGJE6FLNiej9nqyoRHSkBVUtMwSRaUO2JTRH6sIrTRbYVfpphuhDvZx3INToTsRsLY+GFuv9oqx4SZvbKwqpAsKoMyTAZyqXMOfhodvHGVL5ChYMPqVoLwhU3mPa3LdP/v9eDE6lHhSYxuT870Csx7kCtD9a8hL/i/UbPgGanIuKiz+wUD6cXP6AMVf2KrZPABh8mlc=; 4:B6znXPd2GKWn0x4B6GKbVZSUqwuc6TGwNYqLySZV3ttIWjeIRFJ0Li7usjjAaB4xb5sa93QEHkpIu8BDE3aLjHBTjD0EWoh0kRtXRXebq2AKcVgQyXeQCfvAWvIZWwaWDW8QpwgUIZGm/YvasiM+YqW2lcCF7T9kEoTxdDALQf6yxp1s+yLp9Kva1suzQ/ump0ggJm1Ge/u76Pvygc7pCQPrXXWiaa4iAJDPpLoYsn9yEMTyGtrBMPGuyfapgqYAYzv/ngb9RPE9l2HO5UxjaWS3/XvDgs83tUSiLozHGJkUkGS5sra6XQhrXBiuNbSI X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095135)(2401047)(5005006)(8121501046)(10201501046)(3002001)(93006095)(93001095)(3231023)(6055026)(6096035)(20161123559100)(20161123556025)(20161123561025)(20161123563025)(20161123565025)(201703131430075)(201703131520075)(201703131441075)(201703131448075)(201703131433075)(201703161259150)(201708071742011); SRVR:BN3PR03MB2355; BCL:0; PCL:0; RULEID:(100000803101)(100110400095)(400006); SRVR:BN3PR03MB2355; X-Forefront-PRVS: 05214FD68E X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN3PR03MB2355; 23:OeKNVgtcR7Qolu7PXVEVfZomO055fujfn2/B3kcu4?= jO7FViA5eMKbqr6TDqWtnbBzG29dXwdPdCcql9xjuF6DYYaFBHAEZzDKvMvMP+nNd6wVliCYfqfB3w6Ko7QLsG9CIGb7EiEfGo/OaVuJPrqp0c5eeGmns3Uh3PaOmGypi1zWurHfhMDGUiiD72I/UJ3Ijefwl+BJ8zbL3+jExHePhWgR0ipqbizG3UvUhQWe2cwJw/WNVmdU3Ien/gWbxb4E3EnYn7PbSFQ84sqODQuOCLMzgtX3zEenCeoxd9WTOQTZEsG8ImbiXC8BPqvtrTsb49p7ymooQUOE9KRKrplx9N9hpOBH3dE4DhVG0E25VI6upv/hyoc3/DsjzB9fs4nyTrOfufVZ3/qekc2VASXQ3TRsZZlJ5WV/NW9SqP/znIUsiKgYeElzgHzCbTeG/E0o7FMUJe4UOrirMy9wEM2EuijUFKB24OTDzl1ugDI/zlG/7xKqXrdeK8yir1bq2VP6dL6iZfFK1N8/RGXKVQat3FM5pA8wlJFOH1UdWEuiHHfkE+nzu1vGb3gW3fAJ0b/d+/W28i/SNPbH8kjz+6hDZ6t5heu3SuG8Yt7qmVrUIRiV3AdK36kNU/nIMwM7dVqLHPso6d6NixYo4WgiEICvtX9d2MsKhB6W3jS+I2jyB3YxISlBLvcmAFVZAY6N+68LqmApAj8DwBUXIzXjjMoQdL+frFR1P5mjiDfs7EdexV/cXym9qSdVZyAUTEPd2d1TTKVX9o0VVp9hwRE7OTgoWECnhc95H895M5Qxdb7ork6eyoKbVE7n0yFCQTmNPR17J7qNQWbMeJq0p10OwOQY75TL3vgoPzWc38+kTtaeIMxpqzRFqqxf8i2eKyuuudTdzNmoLywoD2qoM2MmDLBrGCpLF3GW4G6nIxYRNNp6SHw4glt93Kftcn4LiiLT1moZiRAMckwyr+iB2so0o7t5aroU+nWMqKTURsith7vf7Lo1RQNG2QmR+aUXgbZMlXBRPCgzs6HWoR+xAwxDSZFJ6O58d8xieio7fbNPwPx+O4l6AbMIyNqEOabERPqfemMKPKOd01/c39vuWK451HFfA== X-Microsoft-Exchange-Diagnostics: 1; BN3PR03MB2355; 6:wGWP2BQnSFIvA1H3s1NByRLsYpTMRYFB8pe0Ut2+Aneo+b7o6/uXLrSc304XX7DRM0VGRGYJuNWzpr/NRqoGVPJFoACw4BZvwYv+pRVqYqB6Kqy3PnV7qifGBFw39LmzPNz0sFEgacGLdwyBWAvXwSWsPNNDxN0P25jwgOuU5AR22jX3Ttyck/OGOe8nifhBGCO+LZmAHk9mz66NRo08BzzVanGeUTm+SX7kvaK5I1wjuXOTC0NoRQ6dRmmv9ru8otnQy345PH74mlLEK+b9JI2TC48F6glM9iWq9N53If8nvklNth8rpPfHqPM8V4aPMRI2aZg3nmsmUCKzBnYj4cB6SusyKPLo/JCFdVCNG6U=; 5:lEMiW+IlXj/0SyE9K/5CTAUlGUb+hTwYQQJ7d8o4U7BD0pmgP8lv/SGoTOMYTiS6cX2qGrGodcPP5BrJVRy6iDpaknuYdLyPnoY2IA03QSlBQtN+8y85SdLD9Lxir6lsm0XWjS0D/UF5vdoYLPN9ckaC+U+syPpqx5JiCQayLQM=; 24:YXdANaZiALjIGElmvTYA5epiOOVh6ODmbxkYf3eAUvmwz+Fknai3VjbX5NxNW4bAojROekHoA00Wy5pbHAk2Mk+q+IVLICkyPgFkpDDsouI=; 7:5ebk1e73PKdbP2Jl5H7/EwwydVOcy/lcKIFLSc8RVlP+hOAM6HvsoQs5txOKbQeZMcFHb818vPaeqnefFv+OAVLU6cCXeZp/qT1OKPaLcuDFEYPvBZ6DlMba5wExSO6cpxPhg7IPC7//K6qzjcmg+rG7otXseH11hu6h72XwDNdRyQgzi86atkzCjwk97B+TP/XTQBPrhRM9RHk7b7ULYAu+AIyklgw6/W0OkRg/+xh52jTTVX5d90wNBONUzwhf SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 14 Dec 2017 07:22:50.9062 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: f4562655-147b-4081-b85d-08d542c37c17 X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN3PR03MB2355 Subject: [dpdk-dev] [PATCH] examples/ipsec-secgw: improve ipsec dequeue logic 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" Since the processing of crypto operations may take time due to hardware offload, all the packets may not be available in the single dequeue command. So it may happen that there is leakage of cops, and there is nobody to dequeue the packets because dequeue of crypto ops is done only once for a particular queue pair even if it has more packets in flight. This patch dequeue the packets again if the inflight packets are more than the max packet burst. Signed-off-by: Akhil Goyal Acked-by: Radu Nicolau --- examples/ipsec-secgw/ipsec.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/examples/ipsec-secgw/ipsec.c b/examples/ipsec-secgw/ipsec.c index 70ed227..69ffc3b 100644 --- a/examples/ipsec-secgw/ipsec.c +++ b/examples/ipsec-secgw/ipsec.c @@ -369,12 +369,10 @@ ipsec_dequeue(ipsec_xform_fn xform_func, struct ipsec_ctx *ipsec_ctx, struct ipsec_sa *sa; struct rte_mbuf *pkt; - for (i = 0; i < ipsec_ctx->nb_qps && nb_pkts < max_pkts; i++) { + for (i = 0; i < ipsec_ctx->nb_qps && nb_pkts < max_pkts;) { struct cdev_qp *cqp; - cqp = &ipsec_ctx->tbl[ipsec_ctx->last_qp++]; - if (ipsec_ctx->last_qp == ipsec_ctx->nb_qps) - ipsec_ctx->last_qp %= ipsec_ctx->nb_qps; + cqp = &ipsec_ctx->tbl[ipsec_ctx->last_qp]; while (cqp->ol_pkts_cnt > 0 && nb_pkts < max_pkts) { pkt = cqp->ol_pkts[--cqp->ol_pkts_cnt]; @@ -389,8 +387,13 @@ ipsec_dequeue(ipsec_xform_fn xform_func, struct ipsec_ctx *ipsec_ctx, pkts[nb_pkts++] = pkt; } - if (cqp->in_flight == 0) + if (cqp->in_flight == 0) { + ipsec_ctx->last_qp++; + if (ipsec_ctx->last_qp == ipsec_ctx->nb_qps) + ipsec_ctx->last_qp %= ipsec_ctx->nb_qps; + i++; continue; + } nb_cops = rte_cryptodev_dequeue_burst(cqp->id, cqp->qp, cops, max_pkts - nb_pkts); @@ -414,6 +417,12 @@ ipsec_dequeue(ipsec_xform_fn xform_func, struct ipsec_ctx *ipsec_ctx, } } pkts[nb_pkts++] = pkt; + if (cqp->in_flight < max_pkts) { + ipsec_ctx->last_qp++; + if (ipsec_ctx->last_qp == ipsec_ctx->nb_qps) + ipsec_ctx->last_qp %= ipsec_ctx->nb_qps; + i++; + } } }