get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 138085,
    "url": "http://patchwork.dpdk.org/api/patches/138085/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20240307070113.29580-6-artemyko@nvidia.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.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": "<20240307070113.29580-6-artemyko@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20240307070113.29580-6-artemyko@nvidia.com",
    "date": "2024-03-07T07:01:13",
    "name": "[v2,5/5] eal: fix memzone fbarray cleanup",
    "commit_ref": null,
    "pull_url": null,
    "state": "new",
    "archived": false,
    "hash": "90b2b148073bb0d8c78ff8c35aa20a7be4f8c690",
    "submitter": {
        "id": 3172,
        "url": "http://patchwork.dpdk.org/api/people/3172/?format=api",
        "name": "Artemy Kovalyov",
        "email": "artemyko@nvidia.com"
    },
    "delegate": {
        "id": 1,
        "url": "http://patchwork.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20240307070113.29580-6-artemyko@nvidia.com/mbox/",
    "series": [
        {
            "id": 31413,
            "url": "http://patchwork.dpdk.org/api/series/31413/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=31413",
            "date": "2024-03-07T07:01:09",
            "name": "[v2,1/5] app/test-mp: add multiprocess test",
            "version": 2,
            "mbox": "http://patchwork.dpdk.org/series/31413/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/138085/comments/",
    "check": "warning",
    "checks": "http://patchwork.dpdk.org/api/patches/138085/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 36F1F43B6C;\n\tThu,  7 Mar 2024 08:02:07 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 71B9E42E9F;\n\tThu,  7 Mar 2024 08:01:55 +0100 (CET)",
            "from NAM12-BN8-obe.outbound.protection.outlook.com\n (mail-bn8nam12on2076.outbound.protection.outlook.com [40.107.237.76])\n by mails.dpdk.org (Postfix) with ESMTP id B341B42E39;\n Thu,  7 Mar 2024 08:01:52 +0100 (CET)",
            "from MW4PR04CA0191.namprd04.prod.outlook.com (2603:10b6:303:86::16)\n by BY5PR12MB4067.namprd12.prod.outlook.com (2603:10b6:a03:212::17)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7362.27; Thu, 7 Mar\n 2024 07:01:50 +0000",
            "from CO1PEPF000044FC.namprd21.prod.outlook.com\n (2603:10b6:303:86:cafe::d3) by MW4PR04CA0191.outlook.office365.com\n (2603:10b6:303:86::16) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7362.26 via Frontend\n Transport; Thu, 7 Mar 2024 07:01:49 +0000",
            "from mail.nvidia.com (216.228.117.160) by\n CO1PEPF000044FC.mail.protection.outlook.com (10.167.241.202) with Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.7386.0 via Frontend Transport; Thu, 7 Mar 2024 07:01:49 +0000",
            "from rnnvmail201.nvidia.com (10.129.68.8) by mail.nvidia.com\n (10.129.200.66) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.986.41; Wed, 6 Mar 2024\n 23:01:34 -0800",
            "from rnnvmail203.nvidia.com (10.129.68.9) by rnnvmail201.nvidia.com\n (10.129.68.8) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12; Wed, 6 Mar\n 2024 23:01:33 -0800",
            "from nvidia.com (10.127.8.9) by mail.nvidia.com (10.129.68.9) with\n Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.2.1258.12 via Frontend\n Transport; Wed, 6 Mar 2024 23:01:32 -0800"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=GUmjGm8syZHkGb+x8dCkPwcUErOuq1VNtGa0QQN3t7KTitW6D6Uqu8M2qJ8ZF+M7qOpVkDSzm3hXoRIVMnppQU8oEwecpyn67PXBzlvGudW99Rl8zvLj3N+TNZuoMLAllwCAUusbg5L55TDUE2rtybx6oqql2Fu5awMzjqDth/AXBptIiVvpczR1iA3I7v+2lYN+A/UcCcQnrydT30/G5axrHs4Npo4HQExbrf8/AeOI1vTMp5Cjv0A0aGhbi95K6bPnjD6HMBEwTuQ56BVzWaUyE8oZ7ynSW9mrgbToSjg+fbuDoQ031fgZl5m6hHOX9CusOiYQU2kOcCC26NOXDg==",
        "ARC-Message-Signature": "i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com;\n s=arcselector9901;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1;\n bh=hPncIhh389T5CImwB8mRjza68jNeLrk+md45s5u3sL8=;\n b=a1FZBTfASiLOCG0QbAmjLgT14CmDaPr/FgLFM8IygDyYBWGbD7MLU1Z/Y1v87GbMloiRBySDxMmkXhs591FTsCt8mnbFnBFbv1SpD5QjQvzxq9dM2+QJ9NvWjsa24N/t8C1MNGAOru2k9GSi5ZZEs4ehAZtbCrJW4PWv6UAWeNt2y/4sl0vQTI3pW06dJUxcbndgCGVXVMa4EkS3/SbsT4Oz+vNOB95Mkyze461oDvmH0Tszt7T6pvQSQgwjpqOO9ah3tkYX6ectoI7wanu5tr6abcq1yqvDaPl3xRNhGMgyb+E6garIlZdcfXDUEHYrwy8MaCUBwWOXab/8VCwNug==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 216.228.117.160) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com;\n dmarc=pass (p=reject sp=reject pct=100) action=none header.from=nvidia.com;\n dkim=none (message not signed); arc=none (0)",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com;\n s=selector2;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=hPncIhh389T5CImwB8mRjza68jNeLrk+md45s5u3sL8=;\n b=eX/coM1di9GdUps0bCZahYxlGBWtQ1nXt6TJjYPM67/X9WAFwFrE3hbIR/SfXbZ2DjztQUb+NLpbTbfEhUEAeowjFUY14UNTWDJ0/b8ed8YxvII+VlJ65Au++jvdRmlsNxH0qVhT8XRqm8xkjQhI/qXxLT9ZTW6Xbv6sOTYGU6RW3GqWpKSu4/vc4TIdojCAEVJf5b7wUtJvNhTxnjtXd++javoONlvNgD5HnGOQYmJ8xITVv+onPn3DUGQyph0PJ1/4oz3CDrVhd7SGc5UgpsJh1eSWsGO8WbViUhayMLp0nmqPSlFOoyKCA/eJQs2KlS+nNeemYBscf5ZhkqgwZA==",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 216.228.117.160)\n smtp.mailfrom=nvidia.com;\n dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=nvidia.com;",
        "Received-SPF": "Pass (protection.outlook.com: domain of nvidia.com designates\n 216.228.117.160 as permitted sender) receiver=protection.outlook.com;\n client-ip=216.228.117.160; helo=mail.nvidia.com; pr=C",
        "From": "Artemy Kovalyov <artemyko@nvidia.com>",
        "To": "<dev@dpdk.org>",
        "CC": "Thomas Monjalon <thomas@monjalon.net>, <stable@dpdk.org>, Anatoly Burakov\n <anatoly.burakov@intel.com>",
        "Subject": "[PATCH v2 5/5] eal: fix memzone fbarray cleanup",
        "Date": "Thu, 7 Mar 2024 07:01:13 +0000",
        "Message-ID": "<20240307070113.29580-6-artemyko@nvidia.com>",
        "X-Mailer": "git-send-email 2.34.1",
        "In-Reply-To": "<20240307070113.29580-1-artemyko@nvidia.com>",
        "References": "<20231212042517.164353-2-artemyko@nvidia.com>\n <20240307070113.29580-1-artemyko@nvidia.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-NV-OnPremToCloud": "ExternallySecured",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-TrafficTypeDiagnostic": "CO1PEPF000044FC:EE_|BY5PR12MB4067:EE_",
        "X-MS-Office365-Filtering-Correlation-Id": "375094a6-b0ec-4ea1-6386-08dc3e747630",
        "X-LD-Processed": "43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n QC5zE8ht/IJGef7me8DFwDsVrp8JhZSW3ShMyCM6GuAGGLhbwLeUxiZgCcw6GdXai/JHICafF3mp10R01LM7TTWc2zXbTOtWPZltq/t2jm5v1tCb6mkMSQLP5TICUFd6vZvYzItcUT+294/YQhakYMLebkizlM7xC/TJwTLviO+BM0xxP8BChOCEFTCSNZ/gkagDMiJvVbd/PhsBFMscUhn0Kmt3oG+m6oDFquI4yli2aUGziFuCbOW3VrBNUOAF9Y+WEangc4bAUccOLxtXtk8EuGnqHC3miKtm+jaQO0kSL/Sa8eIU/U/uvYu/DbTnea6ByftNQn2Nm0imphJ+g+Ilos6TGRCwLHl8TD4qBzSC4Mk2mjgRTpbKbDx+l7R1bPO42tSPCcqzXa5PbdgAGub9KQ6kTxwR/L4K/dlYISNvN8RkcvGkCwrK/2qPqRSGzskdc8CKImxW5l1W5o5KpIu+3lrDXdkth1rIogRCIeIc38Fan4abbGi0gKnAdDZLoufPsiPdZuFdt46Vil+8TxWdOWa46oywpWX50t/zpsBisfnLoKbnx+fxKL708ySijxFRS4L5wH0S8dScSLXKtk9l1+TFV5clMZ5SQQRoNQheBnnTWY/AvWnxHoLrKA/w3hF8UuuwUBtGx69B34RtdCVZTN5UksFilac0Pr0Gee+YUxumm1+rwMN32PeDdfutn+lJAKpyIIivD2VIZDH2zGoUGD71W/bNHc8cP8XIrmv6myL9BbRCcLYgDfxnKRj+",
        "X-Forefront-Antispam-Report": "CIP:216.228.117.160; CTRY:US; LANG:en; SCL:1;\n SRV:;\n IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:dc6edge1.nvidia.com; CAT:NONE;\n SFS:(13230031)(36860700004)(376005)(82310400014); DIR:OUT; SFP:1101;",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "07 Mar 2024 07:01:49.8372 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 375094a6-b0ec-4ea1-6386-08dc3e747630",
        "X-MS-Exchange-CrossTenant-Id": "43083d15-7273-40c1-b7db-39efd9ccc17a",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=43083d15-7273-40c1-b7db-39efd9ccc17a; Ip=[216.228.117.160];\n Helo=[mail.nvidia.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n CO1PEPF000044FC.namprd21.prod.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "BY5PR12MB4067",
        "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": "The initialization of the Memzone file-backed array ensures its\nuniqueness by employing an exclusive lock. This is crucial because only\none primary process can exist per specific shm_id, which is further\nprotected by the exclusive EAL runtime configuration lock.\n\nHowever, during the process closure, the exclusive lock on both the\nfbarray and the configuration is not explicitly released. The\nresponsibility of releasing these locks is left to the generic quit\nprocedure. This can lead to a potential race condition when the\nconfiguration is released before the fbarray.\n\nTo address this, we propose explicitly closing the memzone fbarray. This\nensures proper order of operations during process closure and prevents\nany potential race conditions arising from the mismatched lock release\ntimings.\n\nFixes: af75078fece3 (\"first public release\")\nCc: stable@dpdk.org\n\nSigned-off-by: Artemy Kovalyov <artemyko@nvidia.com>\n---\n lib/eal/common/eal_common_memzone.c | 12 ++++++++++++\n lib/eal/common/eal_private.h        |  5 +++++\n lib/eal/linux/eal.c                 |  1 +\n 3 files changed, 18 insertions(+)",
    "diff": "diff --git a/lib/eal/common/eal_common_memzone.c b/lib/eal/common/eal_common_memzone.c\nindex 1f3e701..7db8029 100644\n--- a/lib/eal/common/eal_common_memzone.c\n+++ b/lib/eal/common/eal_common_memzone.c\n@@ -447,6 +447,18 @@\n \treturn ret;\n }\n \n+void\n+rte_eal_memzone_cleanup(void)\n+{\n+\tstruct rte_mem_config *mcfg;\n+\n+\tmcfg = rte_eal_get_configuration()->mem_config;\n+\n+\tif (rte_eal_process_type() == RTE_PROC_PRIMARY) {\n+\t\trte_fbarray_destroy(&mcfg->memzones);\n+\t}\n+}\n+\n /* Walk all reserved memory zones */\n void rte_memzone_walk(void (*func)(const struct rte_memzone *, void *),\n \t\t      void *arg)\ndiff --git a/lib/eal/common/eal_private.h b/lib/eal/common/eal_private.h\nindex 4d2e806..944c365 100644\n--- a/lib/eal/common/eal_private.h\n+++ b/lib/eal/common/eal_private.h\n@@ -81,6 +81,11 @@ struct rte_config {\n int rte_eal_memzone_init(void);\n \n /**\n+ * Cleanup the memzone subsystem (private to eal).\n+ */\n+void rte_eal_memzone_cleanup(void);\n+\n+/**\n  * Fill configuration with number of physical and logical processors\n  *\n  * This function is private to EAL.\ndiff --git a/lib/eal/linux/eal.c b/lib/eal/linux/eal.c\nindex 9b59cec..dfcbe64 100644\n--- a/lib/eal/linux/eal.c\n+++ b/lib/eal/linux/eal.c\n@@ -1375,6 +1375,7 @@ static void rte_eal_init_alert(const char *msg)\n \teal_trace_fini();\n \teal_mp_dev_hotplug_cleanup();\n \trte_eal_alarm_cleanup();\n+\trte_eal_memzone_cleanup();\n \t/* after this point, any DPDK pointers will become dangling */\n \trte_eal_memory_detach();\n \trte_eal_malloc_heap_cleanup();\n",
    "prefixes": [
        "v2",
        "5/5"
    ]
}