Patch Detail
get:
Show a patch.
patch:
Update a patch.
put:
Update a patch.
GET /api/patches/74119/?format=api
http://patches.dpdk.org/api/patches/74119/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/patch/20200715155043.12476-4-arkadiuszx.kusztal@intel.com/", "project": { "id": 1, "url": "http://patches.dpdk.org/api/projects/1/?format=api", "name": "DPDK", "link_name": "dpdk", "list_id": "dev.dpdk.org", "list_email": "dev@dpdk.org", "web_url": "http://core.dpdk.org", "scm_url": "git://dpdk.org/dpdk", "webscm_url": "http://git.dpdk.org/dpdk", "list_archive_url": "https://inbox.dpdk.org/dev", "list_archive_url_format": "https://inbox.dpdk.org/dev/{}", "commit_url_format": "" }, "msgid": "<20200715155043.12476-4-arkadiuszx.kusztal@intel.com>", "list_archive_url": "https://inbox.dpdk.org/dev/20200715155043.12476-4-arkadiuszx.kusztal@intel.com", "date": "2020-07-15T15:50:41", "name": "[v3,3/5] app/mp_crypto: add function to allocatie mempools", "commit_ref": null, "pull_url": null, "state": "changes-requested", "archived": true, "hash": "a4de3ab764a6d59e1ab8b57039c143b58f6ddefa", "submitter": { "id": 452, "url": "http://patches.dpdk.org/api/people/452/?format=api", "name": "Arkadiusz Kusztal", "email": "arkadiuszx.kusztal@intel.com" }, "delegate": { "id": 6690, "url": "http://patches.dpdk.org/api/users/6690/?format=api", "username": "akhil", "first_name": "akhil", "last_name": "goyal", "email": "gakhil@marvell.com" }, "mbox": "http://patches.dpdk.org/project/dpdk/patch/20200715155043.12476-4-arkadiuszx.kusztal@intel.com/mbox/", "series": [ { "id": 11057, "url": "http://patches.dpdk.org/api/series/11057/?format=api", "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=11057", "date": "2020-07-15T15:50:38", "name": "app: add multi process crypto application", "version": 3, "mbox": "http://patches.dpdk.org/series/11057/mbox/" } ], "comments": "http://patches.dpdk.org/api/patches/74119/comments/", "check": "fail", "checks": "http://patches.dpdk.org/api/patches/74119/checks/", "tags": {}, "related": [], "headers": { "Return-Path": "<dev-bounces@dpdk.org>", "X-Original-To": "patchwork@inbox.dpdk.org", "Delivered-To": "patchwork@inbox.dpdk.org", "Received": [ "from dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 21971A0547;\n\tWed, 15 Jul 2020 17:51:18 +0200 (CEST)", "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 3465A1BDFD;\n\tWed, 15 Jul 2020 17:50:57 +0200 (CEST)", "from mga01.intel.com (mga01.intel.com [192.55.52.88])\n by dpdk.org (Postfix) with ESMTP id 8D83F1BDFD\n for <dev@dpdk.org>; Wed, 15 Jul 2020 17:50:55 +0200 (CEST)", "from fmsmga002.fm.intel.com ([10.253.24.26])\n by fmsmga101.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 15 Jul 2020 08:50:55 -0700", "from akusztax-mobl.ger.corp.intel.com ([10.104.121.32])\n by fmsmga002.fm.intel.com with ESMTP; 15 Jul 2020 08:50:53 -0700" ], "IronPort-SDR": [ "\n 6qekRj28V21NaYyaHM5WKBuNF60iIwptMIrc527p4cl1f0+Gz9VoR9mGTbaAwza+ufn4UKSCSn\n fF7DjA06NS/A==", "\n aAm5GC7SNsOV5wr+YlqJnR9d3o9tF0mdbufJmjgT53gqQ6jIX41wF3ctNgQiIyncJM5dzwYc+x\n t1URYP30dhQQ==" ], "X-IronPort-AV": [ "E=McAfee;i=\"6000,8403,9683\"; a=\"167303564\"", "E=Sophos;i=\"5.75,355,1589266800\"; d=\"scan'208\";a=\"167303564\"", "E=Sophos;i=\"5.75,355,1589266800\"; d=\"scan'208\";a=\"318102543\"" ], "X-Amp-Result": "SKIPPED(no attachment in message)", "X-Amp-File-Uploaded": "False", "X-ExtLoop1": "1", "From": "Arek Kusztal <arkadiuszx.kusztal@intel.com>", "To": "dev@dpdk.org", "Cc": "akhil.goyal@nxp.com, fiona.trahe@intel.com,\n Arek Kusztal <arkadiuszx.kusztal@intel.com>", "Date": "Wed, 15 Jul 2020 17:50:41 +0200", "Message-Id": "<20200715155043.12476-4-arkadiuszx.kusztal@intel.com>", "X-Mailer": "git-send-email 2.19.1.windows.1", "In-Reply-To": "<20200715155043.12476-1-arkadiuszx.kusztal@intel.com>", "References": "<20200715155043.12476-1-arkadiuszx.kusztal@intel.com>", "MIME-Version": "1.0", "Content-Transfer-Encoding": "8bit", "Subject": "[dpdk-dev] [PATCH v3 3/5] app/mp_crypto: add function to allocatie\n\tmempools", "X-BeenThere": "dev@dpdk.org", "X-Mailman-Version": "2.1.15", "Precedence": "list", "List-Id": "DPDK patches and discussions <dev.dpdk.org>", "List-Unsubscribe": "<https://mails.dpdk.org/options/dev>,\n <mailto:dev-request@dpdk.org?subject=unsubscribe>", "List-Archive": "<http://mails.dpdk.org/archives/dev/>", "List-Post": "<mailto:dev@dpdk.org>", "List-Help": "<mailto:dev-request@dpdk.org?subject=help>", "List-Subscribe": "<https://mails.dpdk.org/listinfo/dev>,\n <mailto:dev-request@dpdk.org?subject=subscribe>", "Errors-To": "dev-bounces@dpdk.org", "Sender": "\"dev\" <dev-bounces@dpdk.org>" }, "content": "Add mempool allocation functions to multi process crypto\napplcation which will be needed for crypto processing.\n\nSigned-off-by: Arek Kusztal <arkadiuszx.kusztal@intel.com>\n---\n app/test-mp-crypto/main.c | 205 +++++++++++++++++++++++++++++++++++++++++\n app/test-mp-crypto/mp_crypto.c | 19 ++++\n app/test-mp-crypto/mp_crypto.h | 15 +++\n 3 files changed, 239 insertions(+)", "diff": "diff --git a/app/test-mp-crypto/main.c b/app/test-mp-crypto/main.c\nindex 680faf0..46c8055 100644\n--- a/app/test-mp-crypto/main.c\n+++ b/app/test-mp-crypto/main.c\n@@ -117,6 +117,12 @@ void mp_crypto_exit_app(void)\n \tif (mp_shared_data == NULL)\n \t\treturn;\n \n+/*\trte_mempool_free(mp_crypto_op_pool);\n+ *\trte_mempool_free(mp_crypto_mbuf_pool);\n+ */\n+\trte_mempool_free(mp_crypto_session_mempool_local);\n+\trte_mempool_free(mp_crypto_priv_session_mp_local);\n+\n \tif (rte_eal_process_type() == RTE_PROC_PRIMARY) {\n \t\t/* Inform of exit intention,\n \t\t * wait until all processes finish\n@@ -146,6 +152,9 @@ void mp_crypto_exit_app(void)\n \t\t\t\"One or more processes did not exit normally\");\n \t\t}\n \n+\t\trte_mempool_free(mp_crypto_session_mempool);\n+\t\trte_mempool_free(mp_crypto_priv_session_mp);\n+\n \t\tmp_shared_data->proc_counter = 0;\n \t} else {\n \t\t/* Inform primary of exiting */\n@@ -366,8 +375,198 @@ mp_crypto_setup_qps(void)\n \treturn 0;\n }\n \n+int mp_crypto_setup_mpool(void)\n+{\n+\tint i;\n+\tchar crypto_op_mpool_name[RTE_MEMZONE_NAMESIZE];\n+\tchar mbuf_pool_name[RTE_MEMZONE_NAMESIZE];\n+\tchar session_mpool_name_local[RTE_MEMZONE_NAMESIZE];\n+\tchar session_priv_name_local[RTE_MEMZONE_NAMESIZE];\n+\n+\t/* Op pool */\n+\tint n = snprintf(crypto_op_mpool_name, sizeof(crypto_op_mpool_name),\n+\t\t\t\t\"%s_%hu\", MP_APP_CRYPTO_OP_POOL_NAME,\n+\t\t\t\t\tmp_shared_data->proc_counter_total);\n+\n+\tif (n >= (int)sizeof(crypto_op_mpool_name)) {\n+\t\tMP_APP_LOG_2(ERR, COL_RED, \"Failed to create mpool name\");\n+\t\treturn -1;\n+\t}\n+\n+\t/* mbuf pool */\n+\tn = snprintf(mbuf_pool_name, sizeof(mbuf_pool_name),\n+\t\t\t\t\"%s_%hu\", MP_APP_MBUFPOOL_NAME,\n+\t\t\t\tmp_shared_data->proc_counter_total);\n+\n+\tif (n >= (int)sizeof(mbuf_pool_name)) {\n+\t\tRTE_LOG(ERR, USER1, \"Failed to create mbuf pool name\");\n+\t\treturn -1;\n+\t}\n+\n+\t/* Local session pool */\n+\tn = snprintf(session_mpool_name_local,\n+\t\t\tsizeof(session_mpool_name_local),\n+\t\t\t\"%s_%hu\", MP_APP_SESSION_POOL_NAME_LOC,\n+\t\t\tmp_shared_data->proc_counter_total);\n+\n+\tif (n >= (int)sizeof(session_mpool_name_local)) {\n+\t\tMP_APP_LOG_2(ERR, COL_RED,\n+\t\t\t\"Failed to local session mpool name\");\n+\t\treturn -1;\n+\t}\n+\n+\t/* Local priv session pool */\n+\tn = snprintf(session_priv_name_local, sizeof(session_priv_name_local),\n+\t\t\t\t\"%s_%hu\", MP_APP_PRIV_SESSION_POOL_NAME_LOC,\n+\t\t\t\tmp_shared_data->proc_counter_total);\n+\n+\tif (n >= (int)sizeof(session_priv_name_local)) {\n+\t\tMP_APP_LOG_2(ERR, COL_RED,\n+\t\t\"Failed to local session private mpool name\");\n+\t\treturn -1;\n+\t}\n+\n+\t/* Op pool */\n+\tmp_crypto_op_pool =\n+\t\trte_mempool_lookup(crypto_op_mpool_name);\n+\n+\tif (!mp_crypto_op_pool) {\n+\t\tmp_crypto_op_pool = rte_crypto_op_pool_create(\n+\t\t\tcrypto_op_mpool_name,\n+\t\t\tRTE_CRYPTO_OP_TYPE_SYMMETRIC,\n+\t\t\tMP_APP_NUM_MBUFS, MP_APP_MBUF_CACHE_SIZE,\n+\t\t\tMP_APP_DEFAULT_NUM_XFORMS *\n+\t\t\tsizeof(struct rte_crypto_sym_xform) +\n+\t\t\tMP_APP_MAXIMUM_IV_LENGTH,\n+\t\t\trte_socket_id());\n+\t}\n+\n+\tif (mp_crypto_op_pool == NULL) {\n+\t\tMP_APP_LOG_2(ERR, COL_RED, \"Error in mempool creation for ops\");\n+\t\treturn -1;\n+\t}\n+\n+\t/* Set session pools for this process */\n+\tmp_crypto_session_mempool_local =\n+\t\trte_cryptodev_sym_session_pool_create(\n+\t\tsession_mpool_name_local, MAX_NUM_OF_SESSIONS,\n+\t\tsizeof(struct rte_cryptodev_sym_session), 0, 0,\n+\t\tSOCKET_ID_ANY);\n+\n+\tif (!mp_crypto_session_mempool_local) {\n+\t\tMP_APP_LOG_2(ERR, COL_RED,\n+\t\t\"Failed to create local session mpool\");\n+\t\treturn -1;\n+\t}\n+\n+\t/* Set private session pool for this process */\n+\tmp_crypto_priv_session_mp_local = rte_mempool_create(\n+\t\t\tsession_priv_name_local,\n+\t\t\tMAX_NUM_OF_SESSIONS,\n+\t\t\trte_cryptodev_sym_get_private_session_size(\n+\t\t\t\tmp_app_device_id),\n+\t\t\t0, 0, NULL, NULL, NULL,\n+\t\t\tNULL, SOCKET_ID_ANY,\n+\t\t\t0);\n+\tif (!mp_crypto_priv_session_mp_local) {\n+\t\tMP_APP_LOG_2(ERR, COL_RED,\n+\t\t\t\"Failed to create local session priv mpool\");\n+\t\treturn -1;\n+\t}\n+\n+\tint dev_id = mp_app_devs[0].id;\n+\t/* All devices use same driver so the same size of private data */\n+\tif (rte_eal_process_type() == RTE_PROC_PRIMARY) {\n+\t\t/* Set mempools for sessions */\n+\t\tmp_crypto_session_mempool =\n+\t\t\trte_cryptodev_sym_session_pool_create(\n+\t\t\tMP_APP_SESSION_POOL_NAME, MAX_NUM_OF_SESSIONS,\n+\t\t\tsizeof(struct rte_cryptodev_sym_session), 0, 0,\n+\t\t\tSOCKET_ID_ANY);\n+\n+\t\tif (!mp_crypto_session_mempool) {\n+\t\t\tMP_APP_LOG_2(ERR, COL_RED,\n+\t\t\t\t\"Failed to create session mpool\");\n+\t\t\treturn -1;\n+\t\t}\n+\n+\t\tmp_crypto_priv_session_mp = rte_mempool_create(\n+\t\t\tMP_APP_PRIV_SESSION_POOL_NAME,\n+\t\t\tMAX_NUM_OF_SESSIONS,\n+\t\t\trte_cryptodev_sym_get_private_session_size(dev_id),\n+\t\t\t0, 0, NULL, NULL, NULL,\n+\t\t\tNULL, SOCKET_ID_ANY,\n+\t\t\t0);\n+\t\tif (!mp_crypto_priv_session_mp) {\n+\t\t\tMP_APP_LOG_2(ERR, COL_RED,\n+\t\t\t\"Failed to create priv mpool\");\n+\t\t\treturn -1;\n+\t\t}\n+\t\t/* Set mempools for ops */\n+\n+\t} else {\n+\t\tmp_crypto_session_mempool =\n+\t\t\trte_mempool_lookup(MP_APP_SESSION_POOL_NAME);\n+\t\tif (!mp_crypto_session_mempool) {\n+\t\t\tMP_APP_LOG_2(ERR, COL_RED,\n+\t\t\t\"Failed to get sess mpool, was it allocated?\");\n+\t\t\treturn -1;\n+\t\t}\n+\t\tmp_crypto_priv_session_mp =\n+\t\t\trte_mempool_lookup(MP_APP_PRIV_SESSION_POOL_NAME);\n+\t\tif (!mp_crypto_session_mempool) {\n+\t\t\tMP_APP_LOG_2(ERR, COL_RED,\n+\t\t\t\"Failed to get priv session mpool, was it allocated?\");\n+\t\t\treturn -1;\n+\t\t}\n+\t}\n+\n+\t/* Mbuf pool */\n+\tmp_crypto_mbuf_pool =\n+\t\trte_mempool_lookup(mbuf_pool_name);\n+\tif (mp_crypto_mbuf_pool == NULL) {\n+\t\tmp_crypto_mbuf_pool = rte_pktmbuf_pool_create(\n+\t\t\t\tmbuf_pool_name,\n+\t\t\t\tMP_APP_NUM_MBUFS, MP_APP_MBUF_CACHE_SIZE, 0,\n+\t\t\t\tMP_APP_MBUF_SIZE,\n+\t\t\t\trte_socket_id());\n+\t}\n+\tif (mp_crypto_mbuf_pool == NULL) {\n+\t\tMP_APP_LOG_2(ERR, COL_RED,\n+\t\t\t\"Error in pool creation for mbuf data\");\n+\t\treturn -1;\n+\t}\n+\n+\t/* Create ops and mbufs */\n+\tfor (i = 0; i < MP_CRYPTO_QP_DESC_NUM; i++)\t{\n+\t\tmp_crypto_mbufs[i] = rte_pktmbuf_alloc(mp_crypto_mbuf_pool);\n+\t\tif (mp_crypto_mbufs[i] == NULL)\t{\n+\t\t\tMP_APP_LOG_2(ERR, COL_RED, \"Error allocating mbufs\");\n+\t\t\treturn -1;\n+\t\t}\n+\t\tmemset(rte_pktmbuf_mtod(mp_crypto_mbufs[i], uint8_t *), 0,\n+\t\t\trte_pktmbuf_data_len(mp_crypto_mbufs[i]));\n+\t}\n+\n+\tfor (i = 0; i < MP_CRYPTO_QP_DESC_NUM; i++) {\n+\t\tmp_crypto_ops[i] = rte_crypto_op_alloc(mp_crypto_op_pool,\n+\t\t\tRTE_CRYPTO_OP_TYPE_SYMMETRIC);\n+\t\tif (mp_crypto_ops[i] == NULL) {\n+\t\t\tMP_APP_LOG_2(ERR, COL_RED,\n+\t\t\t\t\"Error allocating crypto op\");\n+\t\t\treturn -1;\n+\t\t}\n+\t\tmp_crypto_ops[i]->sym->m_src = mp_crypto_mbufs[i];\n+\t}\n+\n+\treturn 0;\n+}\n+\n int main(int argc, char *argv[])\n {\n+\n+\tint ret = 0;\n+\n \tif (mp_app_init(argc, argv) < 0) {\n \t\tMP_APP_LOG_2(ERR, COL_RED, \"Error when initializing\");\n \t\tgoto err;\n@@ -383,6 +582,12 @@ int main(int argc, char *argv[])\n \t\tgoto err;\n \t};\n \n+\tret = mp_crypto_setup_mpool();\n+\tif (ret < 0) {\n+\t\tMP_APP_LOG_2(ERR, COL_RED, \"Cannot create mempools\");\n+\t\tgoto err;\n+\t}\n+\n \tmp_crypto_exit_app();\n \treturn 0;\n err:\ndiff --git a/app/test-mp-crypto/mp_crypto.c b/app/test-mp-crypto/mp_crypto.c\nindex 3437397..b996cf5 100644\n--- a/app/test-mp-crypto/mp_crypto.c\n+++ b/app/test-mp-crypto/mp_crypto.c\n@@ -24,3 +24,22 @@ struct mp_app_process_data *mp_shared_data;\n \n int mp_crypto_exit_flag;\n /* Global exit flag */\n+\n+struct rte_mempool *mp_crypto_session_mempool;\n+/* Global crypto mempool used by all processes */\n+struct rte_mempool *mp_crypto_session_mempool_local;\n+/* Local crypto mempool used by this process */\n+struct rte_mempool *mp_crypto_priv_session_mp;\n+/* Global crypto private session mempool used by all processes */\n+struct rte_mempool *mp_crypto_priv_session_mp_local;\n+/* Local crypto private session mempool used by this process */\n+struct rte_mempool *mp_crypto_op_pool;\n+/* Per process op pool */\n+struct rte_mempool *mp_crypto_mbuf_pool;\n+/* Per process mbuf pool */\n+struct rte_crypto_op *mp_crypto_ops[MP_CRYPTO_OPS_NUM];\n+/* Per process set of rte crypto ops */\n+struct rte_crypto_op *mp_crypto_ops_ret[MP_CRYPTO_OPS_NUM];\n+/* Per process set of return rte crypto ops */\n+struct rte_mbuf *mp_crypto_mbufs[MP_CRYPTO_OPS_NUM];\n+/* Per process set of rte mbufs */\ndiff --git a/app/test-mp-crypto/mp_crypto.h b/app/test-mp-crypto/mp_crypto.h\nindex fa6dc44..fad0230 100644\n--- a/app/test-mp-crypto/mp_crypto.h\n+++ b/app/test-mp-crypto/mp_crypto.h\n@@ -70,6 +70,18 @@ extern struct rte_crypto_op *mp_crypto_ops_ret[];\n /* Per process set of return rte crypto ops */\n extern struct rte_mbuf *mp_crypto_mbufs[];\n /* Per process set of rte mbufs */\n+extern struct rte_mempool *mp_crypto_session_mempool;\n+/* Global crypto session mempool used by all processes */\n+extern struct rte_mempool *mp_crypto_session_mempool_local;\n+/* Local crypto mempool used by this process */\n+extern struct rte_mempool *mp_crypto_priv_session_mp;\n+/* Global crypto private session mempool used by all processes */\n+extern struct rte_mempool *mp_crypto_priv_session_mp_local;\n+/* Local crypto private session mempool used by this process */\n+extern struct rte_mempool *mp_crypto_op_pool;\n+/* Per process op pool */\n+extern struct rte_mempool *mp_crypto_mbuf_pool;\n+/* Per process mbuf pool */\n \n /* Name of the device */\n struct mp_app_dev_name {\n@@ -174,6 +186,9 @@ int mp_crypto_setup_qps(void);\n int mp_crypto_init_devs(void);\n /* Function to setup devices according to mask */\n \n+int mp_crypto_setup_mpool(void);\n+/* Function to set or lookup for mempools */\n+\n #define IV_OFFSET\t\t\t(sizeof(struct rte_crypto_op) + \\\n \t\tsizeof(struct rte_crypto_sym_op) + DEFAULT_NUM_XFORMS * \\\n \t\tsizeof(struct rte_crypto_sym_xform))\n", "prefixes": [ "v3", "3/5" ] }{ "id": 74119, "url": "