get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 134589,
    "url": "http://patches.dpdk.org/api/patches/134589/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20231123170701.901946-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": "<20231123170701.901946-1-ciara.power@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20231123170701.901946-1-ciara.power@intel.com",
    "date": "2023-11-23T17:07:01",
    "name": "crypto/ipsec_mb: fix getting process ID per job",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "69c594fde63f29080541098f27b63abe58049b9f",
    "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/20231123170701.901946-1-ciara.power@intel.com/mbox/",
    "series": [
        {
            "id": 30377,
            "url": "http://patches.dpdk.org/api/series/30377/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=30377",
            "date": "2023-11-23T17:07:01",
            "name": "crypto/ipsec_mb: fix getting process ID per job",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/30377/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/134589/comments/",
    "check": "warning",
    "checks": "http://patches.dpdk.org/api/patches/134589/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 8A837433AD;\n\tThu, 23 Nov 2023 18:07:09 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 5300D42F0D;\n\tThu, 23 Nov 2023 18:07:09 +0100 (CET)",
            "from mgamail.intel.com (mgamail.intel.com [192.55.52.43])\n by mails.dpdk.org (Postfix) with ESMTP id 3DC9942F0B;\n Thu, 23 Nov 2023 18:07:08 +0100 (CET)",
            "from fmviesa002.fm.intel.com ([10.60.135.142])\n by fmsmga105.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 23 Nov 2023 09:07:05 -0800",
            "from silpixa00400355.ir.intel.com (HELO\n silpixa00400355.ger.corp.intel.com) ([10.237.222.80])\n by fmviesa002.fm.intel.com with ESMTP; 23 Nov 2023 09:07:03 -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=1700759228; x=1732295228;\n h=from:to:cc:subject:date:message-id:mime-version:\n content-transfer-encoding;\n bh=WVCf/pgLQdjUTlgBoeOuvxKrZg0KBhjRhGVUG1lF/MA=;\n b=jt8NvmFSaEwTUoXbFb03Udm1PwuFaKY9+IQi7tXQYgdVlJ8kE9S+tqeF\n HPqHdT4CypAZ0Ard5osl8GLT6WyscNIVjiGZ4S4tJqm73xyqaDqbEzfRN\n i2OyqSaahPdAk1KyuXmMDlZuld0+Al7vj7Zees6eP0gT5ZXaYVLE9Q+gt\n N1iOL0wlhrDvprvftguMwm1X9q38xxdA63wYpgEslhY0Xb6rPyqma1N7o\n hyHdxUUrqRWUX34sglXgF4XEco24muhNU5LPV0cvf72RIR0W8P48SxGpz\n eIMOr2sXe5EPVhvTUeTpSd2YJgpmqN6WbY3C59t/v6lf/NtDurqqVfImV w==;",
        "X-IronPort-AV": [
            "E=McAfee;i=\"6600,9927,10902\"; a=\"478499929\"",
            "E=Sophos;i=\"6.04,222,1695711600\"; d=\"scan'208\";a=\"478499929\"",
            "E=Sophos;i=\"6.04,222,1695711600\";\n   d=\"scan'208\";a=\"8903487\""
        ],
        "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] crypto/ipsec_mb: fix getting process ID per job",
        "Date": "Thu, 23 Nov 2023 17:07:01 +0000",
        "Message-Id": "<20231123170701.901946-1-ciara.power@intel.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "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 7f61065939..e63ba23a11 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@@ -2174,6 +2182,11 @@ aesni_mb_dequeue_burst(void *queue_pair, struct rte_crypto_op **ops,\n \t\t\t}\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@@ -2192,7 +2205,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@@ -2315,6 +2328,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@@ -2351,7 +2365,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": []
}