get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/74119/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 74119,
    "url": "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"
    ]
}