get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 134590,
    "url": "http://patches.dpdk.org/api/patches/134590/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20231123171544.906577-1-ciara.power@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": "<20231123171544.906577-1-ciara.power@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231123171544.906577-1-ciara.power@intel.com",
    "date": "2023-11-23T17:15:43",
    "name": "[v2] crypto/ipsec_mb: fix getting process ID per job",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "e0a12cae9150b04eb9dea95b161aa857c987973b",
    "submitter": {
        "id": 978,
        "url": "http://patches.dpdk.org/api/people/978/?format=api",
        "name": "Power, Ciara",
        "email": "ciara.power@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/20231123171544.906577-1-ciara.power@intel.com/mbox/",
    "series": [
        {
            "id": 30378,
            "url": "http://patches.dpdk.org/api/series/30378/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=30378",
            "date": "2023-11-23T17:15:43",
            "name": "[v2] crypto/ipsec_mb: fix getting process ID per job",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/30378/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/134590/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/134590/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 mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id D1FA2433AD;\n\tThu, 23 Nov 2023 18:15:58 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id A548942F03;\n\tThu, 23 Nov 2023 18:15:58 +0100 (CET)",
            "from mgamail.intel.com (mgamail.intel.com [134.134.136.20])\n by mails.dpdk.org (Postfix) with ESMTP id 9FE4540A73;\n Thu, 23 Nov 2023 18:15:56 +0100 (CET)",
            "from orsmga005.jf.intel.com ([10.7.209.41])\n by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 23 Nov 2023 09:15:55 -0800",
            "from silpixa00400355.ir.intel.com (HELO\n silpixa00400355.ger.corp.intel.com) ([10.237.222.80])\n by orsmga005.jf.intel.com with ESMTP; 23 Nov 2023 09:15:53 -0800"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/simple;\n d=intel.com; i=@intel.com; q=dns/txt; s=Intel;\n t=1700759757; x=1732295757;\n h=from:to:cc:subject:date:message-id:in-reply-to:\n references:mime-version:content-transfer-encoding;\n bh=/YDfX/NXoAEI544h6pyYaICavugjXDhqI9fiyI0fT3E=;\n b=G/YGOMpWXZeqgxHEBbvXI+T0pinOOcsW5dSGzFfufpQRiOJL7UtRZZrL\n tFciwkiay+5AYRwBi7tNBY2Xx+TVooeR8BhtuOPLxB3a6flMR4CXrbOyJ\n YPaA11Poz41kGoN7O4y5YLZAtoGaiX7Y6/WKjr7lqzF/ke04EoDjMNZ+c\n LPrBP2454fc5fW8WvRBocIIzYQm9dz/WkN3kKh/Jtv1hZOq+K6vaOH9eE\n Hq2fms7iJQ941ZO0bq4JxrAl4i7Dbfpxvyz7q9PTQVhTt5c3z4219NXkf\n wxDkN+V9apiHxOmCQJlbSsc8+d9zwOOiA+Krscz/zDWZQdiEqZEGpeCfT A==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6600,9927,10902\"; a=\"382704196\"",
            "E=Sophos;i=\"6.04,222,1695711600\"; d=\"scan'208\";a=\"382704196\"",
            "E=McAfee;i=\"6600,9927,10902\"; a=\"940682463\"",
            "E=Sophos;i=\"6.04,222,1695711600\"; d=\"scan'208\";a=\"940682463\""
        ],
        "X-ExtLoop1": "1",
        "From": "Ciara Power <ciara.power@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "thomas@monjalon.net, kai.ji@intel.com, pablo.de.lara.guarch@intel.com,\n Ciara Power <ciara.power@intel.com>, stable@dpdk.org",
        "Subject": "[PATCH v2] crypto/ipsec_mb: fix getting process ID per job",
        "Date": "Thu, 23 Nov 2023 17:15:43 +0000",
        "Message-Id": "<20231123171544.906577-1-ciara.power@intel.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20231123170701.901946-1-ciara.power@intel.com>",
        "References": "<20231123170701.901946-1-ciara.power@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "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"
    },
    "content": "Currently, when using IPsec-mb 1.4+, the process ID is obtained for each\njob in a burst with a call to getpid().\nThis system call uses too many CPU cycles, and is unnecessary per job.\n\nInstead, set the process ID value per lcore.\nThis is read when processing the burst, instead of per job.\n\nFixes: 9593d83e5d88 (\"crypto/ipsec_mb: fix aesni_mb multi-process session ID\")\nCc: stable@dpdk.org\n\nSigned-off-by: Ciara Power <ciara.power@intel.com>\n---\n drivers/crypto/ipsec_mb/pmd_aesni_mb.c | 22 ++++++++++++++++++----\n 1 file changed, 18 insertions(+), 4 deletions(-)",
    "diff": "diff --git a/drivers/crypto/ipsec_mb/pmd_aesni_mb.c b/drivers/crypto/ipsec_mb/pmd_aesni_mb.c\nindex ece9cfd5ed..4de4866cf3 100644\n--- a/drivers/crypto/ipsec_mb/pmd_aesni_mb.c\n+++ b/drivers/crypto/ipsec_mb/pmd_aesni_mb.c\n@@ -6,6 +6,8 @@\n \n #include \"pmd_aesni_mb_priv.h\"\n \n+RTE_DEFINE_PER_LCORE(pid_t, pid);\n+\n struct aesni_mb_op_buf_data {\n \tstruct rte_mbuf *m;\n \tuint32_t offset;\n@@ -846,6 +848,7 @@ aesni_mb_session_configure(IMB_MGR *mb_mgr,\n #if IMB_VERSION(1, 3, 0) < IMB_VERSION_NUM\n \tsess->session_id = imb_set_session(mb_mgr, &sess->template_job);\n \tsess->pid = getpid();\n+\tRTE_PER_LCORE(pid) = sess->pid;\n #endif\n \n \treturn 0;\n@@ -1503,7 +1506,7 @@ aesni_mb_digest_appended_in_src(struct rte_crypto_op *op, IMB_JOB *job,\n static inline int\n set_mb_job_params(IMB_JOB *job, struct ipsec_mb_qp *qp,\n \t\tstruct rte_crypto_op *op, uint8_t *digest_idx,\n-\t\tIMB_MGR *mb_mgr)\n+\t\tIMB_MGR *mb_mgr, pid_t pid)\n {\n \tstruct rte_mbuf *m_src = op->sym->m_src, *m_dst;\n \tstruct aesni_mb_qp_data *qp_data = ipsec_mb_get_qp_private_data(qp);\n@@ -1517,6 +1520,10 @@ set_mb_job_params(IMB_JOB *job, struct ipsec_mb_qp *qp,\n \tuint8_t sgl = 0;\n \tuint8_t lb_sgl = 0;\n \n+#if IMB_VERSION(1, 3, 0) >= IMB_VERSION_NUM\n+\t(void) pid;\n+#endif\n+\n \tsession = ipsec_mb_get_session_private(qp, op);\n \tif (session == NULL) {\n \t\top->status = RTE_CRYPTO_OP_STATUS_INVALID_SESSION;\n@@ -1527,7 +1534,7 @@ set_mb_job_params(IMB_JOB *job, struct ipsec_mb_qp *qp,\n \t\t\tsession->template_job.cipher_mode;\n \n #if IMB_VERSION(1, 3, 0) < IMB_VERSION_NUM\n-\tif (session->pid != getpid()) {\n+\tif (session->pid != pid) {\n \t\tmemcpy(job, &session->template_job, sizeof(IMB_JOB));\n \t\timb_set_session(mb_mgr, job);\n \t} else if (job->session_id != session->session_id)\n@@ -2136,6 +2143,7 @@ aesni_mb_dequeue_burst(void *queue_pair, struct rte_crypto_op **ops,\n \tint retval, processed_jobs = 0;\n \tuint16_t i, nb_jobs;\n \tIMB_JOB *jobs[IMB_MAX_BURST_SIZE] = {NULL};\n+\tpid_t pid;\n \n \tif (unlikely(nb_ops == 0 || mb_mgr == NULL))\n \t\treturn 0;\n@@ -2176,6 +2184,11 @@ aesni_mb_dequeue_burst(void *queue_pair, struct rte_crypto_op **ops,\n \t\t\tcontinue;\n \t\t}\n \n+\t\tif (!RTE_PER_LCORE(pid))\n+\t\t\tRTE_PER_LCORE(pid) = getpid();\n+\n+\t\tpid = RTE_PER_LCORE(pid);\n+\n \t\t/*\n \t\t * Get the next operations to process from ingress queue.\n \t\t * There is no need to return the job to the IMB_MGR\n@@ -2194,7 +2207,7 @@ aesni_mb_dequeue_burst(void *queue_pair, struct rte_crypto_op **ops,\n \t\t\t\t\t\t\t       &digest_idx);\n \t\t\telse\n \t\t\t\tretval = set_mb_job_params(job, qp, op,\n-\t\t\t\t\t\t\t   &digest_idx, mb_mgr);\n+\t\t\t\t\t\t\t   &digest_idx, mb_mgr, pid);\n \n \t\t\tif (unlikely(retval != 0)) {\n \t\t\t\tqp->stats.dequeue_err_count++;\n@@ -2317,6 +2330,7 @@ aesni_mb_dequeue_burst(void *queue_pair, struct rte_crypto_op **ops,\n \tstruct rte_crypto_op *op;\n \tIMB_JOB *job;\n \tint retval, processed_jobs = 0;\n+\tpid_t pid = 0;\n \n \tif (unlikely(nb_ops == 0 || mb_mgr == NULL))\n \t\treturn 0;\n@@ -2353,7 +2367,7 @@ aesni_mb_dequeue_burst(void *queue_pair, struct rte_crypto_op **ops,\n \t\t\t\t\t\t&digest_idx);\n \t\telse\n \t\t\tretval = set_mb_job_params(job, qp, op,\n-\t\t\t\t&digest_idx, mb_mgr);\n+\t\t\t\t&digest_idx, mb_mgr, pid);\n \n \t\tif (unlikely(retval != 0)) {\n \t\t\tqp->stats.dequeue_err_count++;\n",
    "prefixes": [
        "v2"
    ]
}