From patchwork Wed Dec 13 13:56:55 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Akhil Goyal X-Patchwork-Id: 32223 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 0B8B11B010; Wed, 13 Dec 2017 15:00:43 +0100 (CET) Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0070.outbound.protection.outlook.com [104.47.40.70]) by dpdk.org (Postfix) with ESMTP id C2A482030 for ; Wed, 13 Dec 2017 15:00:40 +0100 (CET) Received: from CY4PR03CA0082.namprd03.prod.outlook.com (2603:10b6:910:4d::23) by SN2PR03MB2365.namprd03.prod.outlook.com (2603:10b6:804:e::16) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.302.9; Wed, 13 Dec 2017 14:00:39 +0000 Received: from BN1BFFO11FD042.protection.gbl (2a01:111:f400:7c10::1:192) by CY4PR03CA0082.outlook.office365.com (2603:10b6:910:4d::23) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id 15.20.302.9 via Frontend Transport; Wed, 13 Dec 2017 14:00:39 +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 BN1BFFO11FD042.mail.protection.outlook.com (10.58.144.105) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.20.282.5 via Frontend Transport; Wed, 13 Dec 2017 14:00:31 +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 vBDE0WHi023690; Wed, 13 Dec 2017 07:00:36 -0700 From: Akhil Goyal To: CC: , , Date: Wed, 13 Dec 2017 19:26:55 +0530 Message-ID: <20171213135659.32648-2-akhil.goyal@nxp.com> X-Mailer: git-send-email 2.9.3 In-Reply-To: <20171213135659.32648-1-akhil.goyal@nxp.com> References: <20171213135659.32648-1-akhil.goyal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131576472319526126; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(336005)(39860400002)(39380400002)(376002)(346002)(2980300002)(1109001)(1110001)(339900001)(189003)(199004)(305945005)(356003)(47776003)(51416003)(76176011)(2906002)(36756003)(1076002)(6666003)(2950100002)(8656006)(6916009)(8936002)(53936002)(16586007)(4326008)(97736004)(104016004)(85426001)(8676002)(81166006)(81156014)(50226002)(50466002)(316002)(106466001)(77096006)(296002)(48376002)(2351001)(54906003)(5660300001)(68736007)(498600001)(105606002)(86362001); DIR:OUT; SFP:1101; SCL:1; SRVR:SN2PR03MB2365; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; MX:1; A:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD042; 1:/CXrk/mZk9ZlEDtO+uUwJKl1E/xcYffxnVeSKSkQXdFGkGAnLOjdUlXFG/v/4tcVzOpbH9GNi2innIsFv733jPOBJPCYzKsD8nuXEUVmVIV/ZucyaKa/3uYzUrLKSsoy MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 7e844769-a344-462b-84ee-08d54231dfde X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(5600026)(4604075)(4534020)(4628075)(201703131517081)(2017052603307); SRVR:SN2PR03MB2365; X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB2365; 3:q74ch2LQFbsqu7Hco/k70QA95839NnqVMTdc8DHJ1bFMKjmcl6XxG5AkjsX1rBBZEeVl8OhMwbUpBYup+1wRtoy+vYBo4tNbFwbYj7zVQhcHPwF3vSaJ35ghLxM5MczDqCKqwXJbOwLaYsxKvoSMPlAuO6WhrIIc27VHoW7+cQxzWkOUQpC96dqRC5xmeDFuc1UUOY/uh1HdLd8KAPSaWM8tcbVQdMoN3YvMA4lD6mhBkK1dQqyk9HM40Q/jnDXIB4tYKISMzm2Fqr0JtPYxQccI+UJn0dLeARzgxCju0ljKlkkgdg7h5XFQ48duRH4wRgyzHvpq4GfIppWtGv+XSidNiNmn1Tl30cGkJCKV0j4=; 25:i7rPRK34ovuEb9SWSEihMhPQ5FkcDiOGKISmV9hZ1tlfLcNWiMCwaGmvawTtrHTL3Wa0G8+c30DymRAQGtN3mJNyPSbUq/GBnWoWl/tfbaTabvtlxTOatd9IYdbgc3X69MMst4FkD1iRr+YoBaLvwchfigNX/+Y2bh6RL+RvhIopmiIz0guoR2Lwx60lUTDoYznWPbUpRjTGaCu/YexnlFR1y6PV1BUu8qocQQiq87Zpm6mlPycF265iz9K9uQt/z1GXIEObq587IL01ijwWA3HtxQQIy+7CseuG0Ov6ojjeR5zuPf/2AGCzu6n8zeL5gxYpxPcGgFEftoY7HW58gg== X-MS-TrafficTypeDiagnostic: SN2PR03MB2365: X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB2365; 31:Ss0xaDbmDczVji4WI0SHWLohsfeX+nqybwxRP2mNqHNW6BZLQY2BX/2DsMM5+1FvEab3PlIdpDO5G1QPBjeScA1u34G32LdK+OlAzowRbwqLmdd7Epyq7LboXjNJ1jg5ImD/eYV/dqbRIqrhnx93Q6dBe/eJfy9Ro9ShCwe2J1e6wIqcLCjrfyvWyBJ/RvmB+mniiYzNH65WijLj1qDngDjLfb/+lMCucENWftXGkmM=; 4:ue8cyS7vlsHuRpJAwjXTYFWFyNWgtreyjjUr0Wa0oyvmnVNUsk89/pum800elOSPgPMseVoPBMA5IkXf8nPBN8oV++vEU/KCwEWyk45NYbN7YT1kcUhqFIIDp5YLa9mQ+HwqdYBoyU/XTrSue8f9mj3zjeKlLpwRH/Lsc8HslI79OZTB164jranSFipTCysAfEiFwVMIhuFCB/NqDyB8qVZw8F0lllN7Rv1z2ErLPUgK7L0GfeJXuuZ99ImCA/VllNWE84qyVzpCgJMC4RmoF/aCuDadJ8252Z0RV8YuBrd3ct3jIaAS5jKzTDSwTTda 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)(3231023)(93006095)(93001095)(10201501046)(3002001)(6055026)(6096035)(201703131430075)(201703131520075)(201703131433075)(201703131448075)(201703161259150)(201703151042153)(20161123563025)(20161123556025)(20161123561025)(20161123565025)(20161123559100)(201708071742011); SRVR:SN2PR03MB2365; BCL:0; PCL:0; RULEID:(100000803101)(100110400095)(400006); SRVR:SN2PR03MB2365; X-Forefront-PRVS: 052017CAF1 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; SN2PR03MB2365; 23:iRFIhhto/tZlDAjn57Qh/DZZVWBH1S52gvuqbsyD/?= 1wPxrE7P4CyfpfJnkUR+HCsRmQkGtU6PYG7ndt673+MHFUwDoOakJQoqRkC/G1NYVT0q3wtEbU/mAtzStcJ8KzxWrsMoh5vQKczwfhj+m47SerznAdc8vaF9KH1S25dSt4dYtaadFxIhiXsXHegFzE2uLhW78QNtAaKPkg5PXp3j1+o6J1TdbQQr51Al14QiL3E2vuqaKC7XYZVqIVE/22ew+pzp5cN//vH0ucTgHML23A6UrfHg/HSgeE9SI/T/KNTXEYrzV4uJhWDZX+05GLP/SiJgwhHOamRhGge4N95V/HLonUfQfXF+PiqYAs0J+2H+aGkQmY+G51O7uC+VQ+vgeZ9YumN8crONNe4/RVwBWV1yHnQZoZun6U2KGeHdTNQsKUJcCSdlCM20ltH4hmOFxupC94HBRzyWEUOJ3YxqnO5PjDvw6Jw8pdiOdN89GgM9rxLr2t54js6ZJr55qdA/pbkA4Lpx0omFYgXQm2bTzQgj8XfJoeXhZLejoBQrlg2t1Pl1xMhhfSkXQ4TK3bFoEGyobwsXCPaJUexvB81+uFFgL5HPGDzoglIYB+hr+7Np4Wu7XIEGz7rsL4eVV4xbV+vwhTEtC1dLyOIU1SlKDaBhFcvve1smjphbN3XtFjBV57SaDZDpv6rz9adyvflynTsPJQdi5Ve2vU/p399XrYTFi1idg4/7giN8uTfN6s9Ip48qx8kD1zsqShrCyWywbm06Iki7ZLnMu0Co15fx+300iEuAnVI+YvFWtmo4/F67asZ7VWAbjjeVDnOGcrISgCwN7XR9QK38vP5nbST35YobnP8n0G9PrYj7I272qAvHewtNOXJSNOySIvKzgAZNceJq4PdcuPd9YVDqctpdHY4JqscVe3uFzyNBQR5vY8EmLtSUwUJzc4Gbkr1Lfsqjm9LCjkZnBA6GIpq2PMHvJ//IP94eLThG/EOtJm+WLO9fTTOJvVR6Mo4mDUI+Jh2XCWlgNkUQ0CLQIwCULUPTdXNhk2cDA/9wvJCwiDCbklaHDGXAWM9/6aikAglIAY68y1U0hfphuy9GtFGrjhVpA== X-Microsoft-Exchange-Diagnostics: 1; SN2PR03MB2365; 6:1mUPZ1UOX9fL/qqdp/IH18uAM/ZUcAKx45lUXe80pSED78kXvyD6LUNPSqe5SQ1ovkn1jrSLUw903UwZ/o58KURUvhv+/k5xAzHC+mvWeRT3ZSU36LCf72yibP5KiGgCOtJ88NQlbFbyGtFx45ZDdZUqnD2zHI2ZkTb4Au6JiCFLSbKC0QhYddZ8jLmtpGqSC0qplDEHiIELcnSspB3Uc+PTo9pNBl0V6+I8fcWLVSXcbFmUjFJKWNK0GvB7gNYDgev/RdIDnDg9HCA6WyRanRuAf1kFgBVjnR2izLcsn6kP20M7C4gI/lT9FzteTz4RVcrCEPTHwOkraQmueZMLKsk8/51P3Fkrq4iqddWpI7U=; 5:vHdXM/YC9E28KH0LfhSm51rJIIV+T6VH9h7xjZ9TkMnW6ymR1BCiXXP0PCoAPjpbq/MG+sy3eNqOcILlfzpAkjlkYj/zADDzVNjrnF2TaEQNsyrPM8uM5zAdmxxK/AHCMua6x0EeZKcK3QMzI6O/xktQbTn9B13lg2rZxtbtvxk=; 24:TwqJpDbnVhooXqrpYSu/ZfeYsYILbDhd4VJucsvBSEvpCG2IlnRz4RNqU/sie4OdiAbj7vE8B4LLVSAQlAqZd4OBPrCxzgVJH9ZLj27eYHQ=; 7:NMjhFsgAydB5W6QfA6V8zqRTcuDgR+MzEAl3iYQCYY+22U4A6MIgzj50vCsK1iTkmxn61vsvmaLDKY9jAtq2NEcACiOybjqZsWTKBX+Fek2Ej8R15l72/osKwJgsWA7YMnNZg47GrFfZxOs5eOznWvRdrGbHb3asO9u/5YRJh/nH0Vg9d8tuYwnQTOftOO4gA15YIjrXiQCSjmDskkPRy6GVD8aDVANaAFkNqrc29ZrCxw1O2zAk1C6TP7lXhtSc SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-MS-Exchange-CrossTenant-OriginalArrivalTime: 13 Dec 2017 14:00:31.7654 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 7e844769-a344-462b-84ee-08d54231dfde 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: SN2PR03MB2365 Subject: [dpdk-dev] [PATCH 1/5] 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 16155b1..a1271be 100644 --- a/drivers/crypto/dpaa_sec/dpaa_sec.c +++ b/drivers/crypto/dpaa_sec/dpaa_sec.c @@ -106,6 +106,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; } @@ -130,6 +132,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) { @@ -589,7 +598,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); @@ -603,7 +612,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; @@ -657,7 +666,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]; @@ -703,7 +712,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; @@ -748,7 +757,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; @@ -762,7 +771,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; @@ -814,7 +823,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; @@ -844,7 +853,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; @@ -858,7 +867,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 af3f255..eba07b6 100644 --- a/drivers/crypto/dpaa_sec/dpaa_sec.h +++ b/drivers/crypto/dpaa_sec/dpaa_sec.h @@ -181,6 +181,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]; };