From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0056.outbound.protection.outlook.com [104.47.34.56]) by dpdk.org (Postfix) with ESMTP id 49F06728B for ; Thu, 11 Jan 2018 12:37:07 +0100 (CET) Received: from MWHPR03CA0039.namprd03.prod.outlook.com (10.174.173.156) by MWHPR03MB2702.namprd03.prod.outlook.com (10.168.207.136) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.386.5; Thu, 11 Jan 2018 11:37:06 +0000 Received: from BL2FFO11FD032.protection.gbl (2a01:111:f400:7c09::167) by MWHPR03CA0039.outlook.office365.com (2603:10b6:301:3b::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.407.7 via Frontend Transport; Thu, 11 Jan 2018 11:37:05 +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 BL2FFO11FD032.mail.protection.outlook.com (10.173.160.73) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.345.12 via Frontend Transport; Thu, 11 Jan 2018 11:36:33 +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 w0BBb0sq031996; Thu, 11 Jan 2018 04:37:03 -0700 From: Akhil Goyal To: CC: , Date: Thu, 11 Jan 2018 17:03:02 +0530 Message-ID: <20180111113304.19709-2-akhil.goyal@nxp.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20180111113304.19709-1-akhil.goyal@nxp.com> References: <20171213135659.32648-1-akhil.goyal@nxp.com> <20180111113304.19709-1-akhil.goyal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131601441935619998; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(376002)(396003)(39380400002)(39860400002)(346002)(2980300002)(1109001)(1110001)(339900001)(199004)(189003)(5660300001)(8656006)(76176011)(50226002)(356003)(51416003)(48376002)(305945005)(54906003)(47776003)(68736007)(4326008)(50466002)(86362001)(77096006)(1076002)(316002)(2906002)(2351001)(85426001)(81166006)(296002)(8676002)(498600001)(6916009)(36756003)(97736004)(106466001)(104016004)(81156014)(16586007)(8936002)(2950100002)(105606002)(53936002); DIR:OUT; SFP:1101; SCL:1; SRVR:MWHPR03MB2702; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BL2FFO11FD032; 1:+TW1OYrBrT63nJvZ32mcXYKE7Dz1Vx6xhVFLSSyDP3fowWDIQCzAq+azlvmJ8nSr+w1e9iCYDHoz2Xz/2hGbNM+toISfF72dcLFM1+QaqvaqXOZytT+n/f5Lqjf8B+Y+ MIME-Version: 1.0 Content-Type: text/plain X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 17f0eaef-1e00-4cd9-779e-08d558e790f7 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020065)(5600026)(4604075)(2017052603307); SRVR:MWHPR03MB2702; X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB2702; 3:Pxvdh7e0adA1Xv9qYaFjfKRVfWlHMVEwHoOTevE0WaB0Lt28RCLf3uKfWEUyYt60r6w5Sq9D6je8ofuo6tO4ZRWudRqpnX0AbcJyoajhzgrsgiysLe3Wv2nbOmbDj1vuog9yxoFZwUptjoRANLmTCtSBrSjvBudq6l8NOHvGWo38sf/Q2JxNG6R6GExcPdsb3GD0zYao3so48hF8t7UDhXxyCYihM2biMEm74KNPG1v3ieetzwdTPsOurqPU8Ck59WrZ87jwVj9fvbLKz6WVZ22lcNjLfFHAMnTRdt5abjrxB9lBF1YEw/0/60FiKaQ0Pw8qdh1lwVfWDjitQ9zpvLvqlNhNQ0DJRqWfNnWLGys=; 25:1AAnEJPEvWtY7C4Zc6L8bEctjeXZCn4JND+qFOovpegPizLQJ7BT2kFnR+9Xwm6MdOUq3Uzb/QZWcBghEYYIWmAbLzyLUbqGSMnIw+SwT0qaMXY1NiO0DOnkMk1p4T51LKliJENt9ZuM1mm8TnMy1JwKuawRPqVGaZaumj5qo9bLJ0YzjxVTw0WZQTN0TbMVI+/k0A24J7wi12B6ZQo8+q5CsBu8oRamhIzKBkBSDug0ys97pmovtKphoDyCoqrxbDDh+1H6ndAiOGzGe9CnbAVL743tzvbBYgFzCY+cyB9h0cbR3/gEPWWxEL6CtMYxTXJwnHTcVzE8ML6vF42ReQ== X-MS-TrafficTypeDiagnostic: MWHPR03MB2702: X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB2702; 31:yyecxNm5aiwinQomPVNhQoJKXehowwJD/akDdmgNAbQtcikUktbw2jkQRwQUIzzBIinM5Btf6RFgDJG7uzSQg6a0RtHsbZvNOEXg+kKkqokZm6AD7KS29E3fYD2XKX8lLb0E0+D+xG7rOsCPnErumktFIpdfiQ4BMKGXo0Sn+oBx10IIysh+70moSwshtrRvy5NPgjqr172QmzZg8x8tpbaPVY4eo904m7us+U3NYmE=; 4:Uc+cFbIM07AeBf8ZEI+QMt5/jasmbAJd2xti2qejEXOMVEwP8PZYLORiqteHbCYQ4Tcsgi4ulXmys1/kuRdGha6nlBjvv/hKHkchjmf3Ob46VL2h1XVUpK0mwN1r2HUr5TaCDxWvYf+OrCwvcQznZrCpptaqr/0nqUQW2nI4V2J70plFM/QFoLgr4dINgA0NLY+lz3yukPl27qbJVUu/aspHxeKTjzdGl74JRUIXuas+MahXEGAxzTG2GxkkJjMIckfT8Yho3ysqrBwp72AJ1b5u3A3EbHqCUdjMIw92vJbd8sC1QAvDeCL+jkHKbREM X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095135)(2401047)(8121501046)(5005006)(10201501046)(3231023)(944501134)(3002001)(93006095)(93001095)(6055026)(6096035)(20161123556025)(20161123559100)(20161123565025)(20161123563025)(201703131430075)(201703131520075)(201703131448075)(201703131433075)(201703151042153)(20161123561025)(201708071742011); SRVR:MWHPR03MB2702; BCL:0; PCL:0; RULEID:(100000803101)(100110400095)(400006); SRVR:MWHPR03MB2702; X-Forefront-PRVS: 0549E6FD50 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; MWHPR03MB2702; 23:UKHaY1PbJJwgsqfc5+FbE7KUQTn+nyh5RSyVdoEBG?= =?us-ascii?Q?oNLqBxQ1ItylEdlmNtkdWWX3MpWsqXTyJojElL1MPjmatZF2zPa3AE/l+8TP?= =?us-ascii?Q?v9CtbMdk65JICGVd7ExoxPz8vnRx11YTjh9UUDtEhdgE1oqr/OqnIIPlkogr?= =?us-ascii?Q?g5zxwfJsi99RI9UblogfB9KiUMJc5FF3SQgDqTx08zC+YmDoJ+UmX5x+Njqr?= =?us-ascii?Q?LwC4TacsF6bOAijVtnxow2zEwoYqSXJ6Wlo2BUlB/NiVTFh/1OyX08saAYiT?= =?us-ascii?Q?ORddv15W8BmGGAr9Jyz48ng5g0il0Mjd0GbvOyxqvk1ia1MXtaI/b3UNdoLC?= =?us-ascii?Q?Jtrc9aM3sV6OyY64VmA8nBDt5rrXpR5Xqf6CZBSZ1MQbcIpLTwrL65SSLWfp?= =?us-ascii?Q?Mf7d7vLeoDy55DIrcAhDDHHRzhwXSOUtkV1FZ2+UgTQallySEBYeg56zAJ/Y?= =?us-ascii?Q?ivo4wOAtMZDbU27KNILGwkIuJyl31yVfN1x6SOujKr/+lkQUtFhLMENJ2QcS?= =?us-ascii?Q?YOP2Tg0RBtA+S7BNHFdD7iS27+dSwJpwRQjPA7E/gXrUlgrjQk49fNPwhBmw?= =?us-ascii?Q?k5hAGvWveM58XEmv0tutcydujLSWi7GCo9+Qw+t+GXPi/a2X6dxDcfGma33i?= =?us-ascii?Q?JweHtBojfAaLYTuYkQLX7glGlvZHFxGNemVax6fjeB72yXpF5ei68tgDboWk?= =?us-ascii?Q?uJhWX0XrU4jQun+Q7VC+Tc7hqcfrvp3C/wnEpidGJRsCKkxqTg9pagwMAfJi?= =?us-ascii?Q?j9/u3ohvSpHjBA+KxRQsi3V4cQojdTkyet9523r6x1JbUlV3b5ghPS5bhPnq?= =?us-ascii?Q?t/ntyo1QQIo4mowm/Co3upF3C51uwo7Te8/YYUolwCJF1JNTlkLBm+jzpBsN?= =?us-ascii?Q?MJ2Oe55O+JIpJv3rNjUhiAacBBT48sZkQL3VH5S9FFPUcnoW4sYqSqy3KtfW?= =?us-ascii?Q?jvp3LWFb8iajKXu+2LXWX7/BW8zSwF60WYK0M5+dxMttqboXx8q+7qlMhX+k?= =?us-ascii?Q?uSEhfhNqjvJ75dDZYgBC6FGC5opawSSXrItq9Igs3Ef6fwgL7XCjDbIFXc84?= =?us-ascii?Q?pQo8kHxk48/0Oo0GaeIs5Y1mKma?= X-Microsoft-Exchange-Diagnostics: 1; MWHPR03MB2702; 6:mwNbo9YVpytXum6lK9jt38HYRtA8rhmcSkgd5Sx1onyNhab9wOMjXsib0b2V8IvT9fwAXO3rQS72bjbQNUR17X+QH/7AtYB17RpXCIs/UnjE7xVxHPqhlxZJ6fHHe4N2xFwe5OvliY5jNqDdV0zDuQbERTG3gNOa21j+wJ8wfhy2UUt0o4+4J7jHG26RzDFV0a+Tt8DgDX/LlDP6cXSrlUxQ9ppLXvMzcY34z63GYP3Ge9qGgjch6X4LsEIEjtp/5i0x3F9sX+jM/3+dfwVxSnZhKFEFxuDjO1xsxN406f5okcfjt9K1II6ZMK72Ackm7afwf1CqGGRhnkwxh1+QnazqEy6F8RwRSQZP9CqzDEg=; 5:Aew5bDbsnN2NMIfdnBqA1tHbat4jVUL1wBvkBLFKAss5Bk3GETwXPpAB8zSNXS/DmA85Ir2kf25Ff4hY9KPJh/BiID8ZKF+IlQu39Q44fpdzptxzEtud5dPlChG3CbRxSn6x6cEbSX6h4/wURR35jb3sZu3lTdvEDwagQNvxRow=; 24:aMKgGYa4whIFI7ayO2NQydTdzpZWue2vpPkgBKhQesiYgULGclhunGNEwlboyZIWbidevJ5Hy8FG+WP2YskEJkkvoAlNEiexlL1iwLwG99U=; 7:QAH35maVCArosD+Pm/U+Ovc6N5+r1gJYJjOFOmb1NL4aakvjrOEDZxnS2BYbWsx8gH+xDIEAMg1YQdfD0sPXL8hQNlgxVflTVnliZ2oHtYPPV8Y19w+4aOZZm9iy+2uGFO8aakG7/Jm2tpj9j1ye3GVEcOSVycGffXIML5xJbWY4Q6S0j4wV8p4E+X02qsZZiI/gJg9uLseqnF7uHM7qpS0InWBQKhiYGQprUrOtVZ/bmXYwwxtvza/C94hE3563 SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Jan 2018 11:36:33.3903 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 17f0eaef-1e00-4cd9-779e-08d558e790f7 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: MWHPR03MB2702 Subject: [dpdk-dev] [PATCH v2 1/3] crypto/dpaa_sec: optimize virt to phy conversion 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: Thu, 11 Jan 2018 11:37:07 -0000 From: Hemant Agrawal Context memory is allocated from mempool. Ideally it will get all memory from single segment, so simple offset calculation is used for address conversion for such addresses from context memory. Signed-off-by: Hemant Agrawal Acked-by: Akhil Goyal --- drivers/crypto/dpaa_sec/dpaa_sec.c | 27 ++++++++++++++++++--------- drivers/crypto/dpaa_sec/dpaa_sec.h | 1 + 2 files changed, 19 insertions(+), 9 deletions(-) diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.c b/drivers/crypto/dpaa_sec/dpaa_sec.c index ad1b309..157eace 100644 --- a/drivers/crypto/dpaa_sec/dpaa_sec.c +++ b/drivers/crypto/dpaa_sec/dpaa_sec.c @@ -80,6 +80,8 @@ dpaa_sec_alloc_ctx(dpaa_sec_session *ses) dcbz_64(&ctx->job.sg[SG_CACHELINE_3]); ctx->ctx_pool = ses->ctx_pool; + ctx->vtop_offset = (uint64_t) ctx + - rte_mempool_virt2iova(ctx); return ctx; } @@ -104,6 +106,13 @@ dpaa_mem_vtop(void *vaddr) return (rte_iova_t)(NULL); } +/* virtual address conversin when mempool support is available for ctx */ +static inline phys_addr_t +dpaa_mem_vtop_ctx(struct dpaa_sec_op_ctx *ctx, void *vaddr) +{ + return (uint64_t)vaddr - ctx->vtop_offset; +} + static inline void * dpaa_mem_ptov(rte_iova_t paddr) { @@ -563,7 +572,7 @@ build_auth_only(struct rte_crypto_op *op, dpaa_sec_session *ses) if (is_decode(ses)) { /* need to extend the input to a compound frame */ sg->extension = 1; - qm_sg_entry_set64(sg, dpaa_mem_vtop(&cf->sg[2])); + qm_sg_entry_set64(sg, dpaa_mem_vtop_ctx(ctx, &cf->sg[2])); sg->length = sym->auth.data.length + ses->digest_length; sg->final = 1; cpu_to_hw_sg(sg); @@ -577,7 +586,7 @@ build_auth_only(struct rte_crypto_op *op, dpaa_sec_session *ses) cpu_to_hw_sg(sg); /* let's check digest by hw */ - start_addr = dpaa_mem_vtop(old_digest); + start_addr = dpaa_mem_vtop_ctx(ctx, old_digest); sg++; qm_sg_entry_set64(sg, start_addr); sg->length = ses->digest_length; @@ -631,7 +640,7 @@ build_cipher_only(struct rte_crypto_op *op, dpaa_sec_session *ses) sg->extension = 1; sg->final = 1; sg->length = sym->cipher.data.length + ses->iv.length; - qm_sg_entry_set64(sg, dpaa_mem_vtop(&cf->sg[2])); + qm_sg_entry_set64(sg, dpaa_mem_vtop_ctx(ctx, &cf->sg[2])); cpu_to_hw_sg(sg); sg = &cf->sg[2]; @@ -677,7 +686,7 @@ build_cipher_auth_gcm(struct rte_crypto_op *op, dpaa_sec_session *ses) /* input */ rte_prefetch0(cf->sg); sg = &cf->sg[2]; - qm_sg_entry_set64(&cf->sg[1], dpaa_mem_vtop(sg)); + qm_sg_entry_set64(&cf->sg[1], dpaa_mem_vtop_ctx(ctx, sg)); if (is_encode(ses)) { qm_sg_entry_set64(sg, dpaa_mem_vtop(IV_ptr)); sg->length = ses->iv.length; @@ -722,7 +731,7 @@ build_cipher_auth_gcm(struct rte_crypto_op *op, dpaa_sec_session *ses) ses->digest_length); sg++; - qm_sg_entry_set64(sg, dpaa_mem_vtop(ctx->digest)); + qm_sg_entry_set64(sg, dpaa_mem_vtop_ctx(ctx, ctx->digest)); sg->length = ses->digest_length; length += sg->length; sg->final = 1; @@ -736,7 +745,7 @@ build_cipher_auth_gcm(struct rte_crypto_op *op, dpaa_sec_session *ses) /* output */ sg++; - qm_sg_entry_set64(&cf->sg[0], dpaa_mem_vtop(sg)); + qm_sg_entry_set64(&cf->sg[0], dpaa_mem_vtop_ctx(ctx, sg)); qm_sg_entry_set64(sg, dst_start_addr + sym->aead.data.offset - ses->auth_only_len); sg->length = sym->aead.data.length + ses->auth_only_len; @@ -788,7 +797,7 @@ build_cipher_auth(struct rte_crypto_op *op, dpaa_sec_session *ses) /* input */ rte_prefetch0(cf->sg); sg = &cf->sg[2]; - qm_sg_entry_set64(&cf->sg[1], dpaa_mem_vtop(sg)); + qm_sg_entry_set64(&cf->sg[1], dpaa_mem_vtop_ctx(ctx, sg)); if (is_encode(ses)) { qm_sg_entry_set64(sg, dpaa_mem_vtop(IV_ptr)); sg->length = ses->iv.length; @@ -818,7 +827,7 @@ build_cipher_auth(struct rte_crypto_op *op, dpaa_sec_session *ses) ses->digest_length); sg++; - qm_sg_entry_set64(sg, dpaa_mem_vtop(ctx->digest)); + qm_sg_entry_set64(sg, dpaa_mem_vtop_ctx(ctx, ctx->digest)); sg->length = ses->digest_length; length += sg->length; sg->final = 1; @@ -832,7 +841,7 @@ build_cipher_auth(struct rte_crypto_op *op, dpaa_sec_session *ses) /* output */ sg++; - qm_sg_entry_set64(&cf->sg[0], dpaa_mem_vtop(sg)); + qm_sg_entry_set64(&cf->sg[0], dpaa_mem_vtop_ctx(ctx, sg)); qm_sg_entry_set64(sg, dst_start_addr + sym->cipher.data.offset); sg->length = sym->cipher.data.length; length = sg->length; diff --git a/drivers/crypto/dpaa_sec/dpaa_sec.h b/drivers/crypto/dpaa_sec/dpaa_sec.h index 9342949..e82f4fb 100644 --- a/drivers/crypto/dpaa_sec/dpaa_sec.h +++ b/drivers/crypto/dpaa_sec/dpaa_sec.h @@ -155,6 +155,7 @@ struct dpaa_sec_op_ctx { struct rte_crypto_op *op; struct rte_mempool *ctx_pool; /* mempool pointer for dpaa_sec_op_ctx */ uint32_t fd_status; + int64_t vtop_offset; uint8_t digest[DPAA_MAX_NB_MAX_DIGEST]; }; -- 2.9.3