get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 104635,
    "url": "http://patchwork.dpdk.org/api/patches/104635/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20211123223159.3324247-3-dkozlyuk@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": "<20211123223159.3324247-3-dkozlyuk@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20211123223159.3324247-3-dkozlyuk@nvidia.com",
    "date": "2021-11-23T22:31:59",
    "name": "[2/2] net/mlx5: fix RxQ reference counting for indirect RSS",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "2e58f1d61b7abc6d38f2970ad2632ef48363802a",
    "submitter": {
        "id": 2248,
        "url": "http://patchwork.dpdk.org/api/people/2248/?format=api",
        "name": "Dmitry Kozlyuk",
        "email": "dkozlyuk@nvidia.com"
    },
    "delegate": {
        "id": 3268,
        "url": "http://patchwork.dpdk.org/api/users/3268/?format=api",
        "username": "rasland",
        "first_name": "Raslan",
        "last_name": "Darawsheh",
        "email": "rasland@nvidia.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20211123223159.3324247-3-dkozlyuk@nvidia.com/mbox/",
    "series": [
        {
            "id": 20722,
            "url": "http://patchwork.dpdk.org/api/series/20722/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=20722",
            "date": "2021-11-23T22:31:57",
            "name": "next/mlx5: fix indirect RSS reference counting",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/20722/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/104635/comments/",
    "check": "fail",
    "checks": "http://patchwork.dpdk.org/api/patches/104635/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 38222A0C4C;\n\tTue, 23 Nov 2021 23:32:31 +0100 (CET)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 5904941160;\n\tTue, 23 Nov 2021 23:32:22 +0100 (CET)",
            "from NAM12-DM6-obe.outbound.protection.outlook.com\n (mail-dm6nam12on2041.outbound.protection.outlook.com [40.107.243.41])\n by mails.dpdk.org (Postfix) with ESMTP id 911284115F\n for <dev@dpdk.org>; Tue, 23 Nov 2021 23:32:21 +0100 (CET)",
            "from DM6PR10CA0018.namprd10.prod.outlook.com (2603:10b6:5:60::31) by\n SA0PR12MB4575.namprd12.prod.outlook.com (2603:10b6:806:73::19) with\n Microsoft\n SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id\n 15.20.4713.19; Tue, 23 Nov 2021 22:32:17 +0000",
            "from DM6NAM11FT003.eop-nam11.prod.protection.outlook.com\n (2603:10b6:5:60:cafe::b8) by DM6PR10CA0018.outlook.office365.com\n (2603:10b6:5:60::31) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4713.19 via Frontend\n Transport; Tue, 23 Nov 2021 22:32:17 +0000",
            "from mail.nvidia.com (216.228.112.34) by\n DM6NAM11FT003.mail.protection.outlook.com (10.13.173.162) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384) id\n 15.20.4713.20 via Frontend Transport; Tue, 23 Nov 2021 22:32:17 +0000",
            "from nvidia.com (172.20.187.5) by HQMAIL107.nvidia.com\n (172.20.187.13) with Microsoft SMTP Server (TLS) id 15.0.1497.18; Tue, 23 Nov\n 2021 22:32:15 +0000"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=XKsJPi5t1lQJGEAd7AbmsH9Yyd2LmW2AEgGmu4fei8KJVjH6M2ihV4omN69/VC2vW5VJOqjtTLLDE63993nolI1Lbzw2ibSaeqnLzKouzXa/76jvl/bPhE5iwP8eSWn8fTQ3/1ww3Hn41EbXYLGlgU/FTxK9V+x7hNkmlb3entbAsrp/s0gOx5MiV4JkJ3YjQPYuh3h2mTymta/syQTtNDVxH0dwrMuBH6O4pK92t650xZ8HD7ffFZLb0Nb3mmsnLuV7/NJ3GzI8A8iAqORC9C0lxghO2Ihzq/dwRftHJ/fLrrs7BKWsvwZsLhxeL0JTRHN38+O+pstuV9hJeQtqJA==",
        "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=CTczPIoVs4abf3QLjpIRuTKmOCtz3QQD5CTYIZDk6+s=;\n b=feK1s3zSPjzsIaiOz+ytPQmITxAiedN8mnvg5XNjoeZ2njw4n/wUmEJlA6VjE3BTDUf7fgeMxpKs1I1E5FEc8lECDGTy3xscCg8yIc4hdJe3RM//WhiehzAIgEKSqjfYBcmXWtf0Od1FOmzCw77KyYo2ZJfBJAWpnjxIMBWsPR9nDJE1bcmQf503ObjkALNgrYYtVaSJ9Iltdk74K+ojOfnsmmwjXKYlFiG8vb1YsKa0i0egKlvy0Jp/yV0TPmNgcRpfBiGvdCIPaL2dlCveioGfO4ja04Pgz+WBIUSiGWkE05CX9T/neG1F8qSP3O4bT17W7qNR5uRGcuTBuaHcRA==",
        "ARC-Authentication-Results": "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 216.228.112.34) smtp.rcpttodomain=dpdk.org smtp.mailfrom=nvidia.com;\n dmarc=pass (p=quarantine sp=quarantine pct=100) action=none\n header.from=nvidia.com; dkim=none (message not signed); arc=none",
        "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=CTczPIoVs4abf3QLjpIRuTKmOCtz3QQD5CTYIZDk6+s=;\n b=UILRJ1GSL04IOs78nn5r3iseh38rWS6MIINNvUwA3QHbjn/fMGybmDwqQRgH579NrVDEhIMQQE0hRPo9lXAXPESiHNRkMB8ijRm5KEM5+52OJjWxUPgoLxwoFbGav4Pa17dtm0qiyRAyzUZFeYISVrn1S7lswFrghM1bpw1p3/rplWE+qM0AnrieXyYnyT1syMD/fY0bCPyqtF8rerO80tanRL8/NOr7RGBtWD8KhT+tHGPl5mGlre9zHXTC2I+jBOPIs9Uogpc2el5Rp5pu7LrEfD4REl+K8pUYdM2pmaj95RDkF5nw1OmA1EOqbrYLQz0OOEu73MTcW6LFmE3nRg==",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 216.228.112.34)\n smtp.mailfrom=nvidia.com; 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.112.34 as permitted sender) receiver=protection.outlook.com;\n client-ip=216.228.112.34; helo=mail.nvidia.com;",
        "From": "Dmitry Kozlyuk <dkozlyuk@nvidia.com>",
        "To": "<dev@dpdk.org>",
        "CC": "Raslan Darawsheh <rasland@nvidia.com>, Matan Azrad <matan@nvidia.com>,\n Viacheslav Ovsiienko <viacheslavo@nvidia.com>",
        "Subject": "[PATCH 2/2] net/mlx5: fix RxQ reference counting for indirect RSS",
        "Date": "Wed, 24 Nov 2021 00:31:59 +0200",
        "Message-ID": "<20211123223159.3324247-3-dkozlyuk@nvidia.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20211123223159.3324247-1-dkozlyuk@nvidia.com>",
        "References": "<20211123223159.3324247-1-dkozlyuk@nvidia.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[172.20.187.5]",
        "X-ClientProxiedBy": "HQMAIL105.nvidia.com (172.20.187.12) To\n HQMAIL107.nvidia.com (172.20.187.13)",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "9b996973-dfe0-448e-8a10-08d9aed11b1a",
        "X-MS-TrafficTypeDiagnostic": "SA0PR12MB4575:",
        "X-Microsoft-Antispam-PRVS": "\n <SA0PR12MB4575AAF5E46B62D196C109E4B9609@SA0PR12MB4575.namprd12.prod.outlook.com>",
        "X-MS-Oob-TLC-OOBClassifiers": "OLM:2089;",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n 95BCbyvb89YkAZxJlEV25wCVEdU4n5JvNICiuf3rGSvw1ijjXhdLMVqMaCRbRV+j7+NOTHocS7Ivkioi/iU0U4dKbamRQIFHQ9gHcEOzpERnLnZR7JzIzH0zaCUkLQ1yToVjvaW9hgSkpOtZpKqYoOOe/gH8lpLZXijL8nWoshw3N3J6Sn5PPCnSD4CKwCQGQDHxXfYg9CS3rkP8Jc2eBRQkc0Sc/xA615khjoSDWAhvLigCZSE/RdnrdXECpV258vYOz7f/j34cjZPx1vKlag5xjd+IE5qNYdvuXSMUp74eeo9/dflaDwSyB2jF9ilNBqZLcOcBv/BOe4bQkU+z036mov56waudW7XXUlQdY/BZiHcNGCizvC0SYsV+R2wkeW17/drtgKPiUosIvuAoirG7NzIS5rrVAzG8U0h7s6SIjwM2O4EXf5zHY8HWFS1e9KT+mpgHXorldyeu958Be/pYoIlLdoQcGiYmF3GRDRV/KR9cXMeWmZ8zl/qIyoMEN7Mp92r1fzdAW3Q2uzkNKnzzfntjeDSXLWImlyxkWyB4rCtnK8HXvam0gdMjZYnA2t/ehQ+chDe32AsxJxpDYSHyjtz4QNwbQs0/qZjJstGfsvs5BAqCNxPloIi+6Iq/HvBmvta3zxNmd8UnOPBZzajMNZ3x+ck4rIDAQ4U6Q94z9HceF0JtMdB7CzK6VW2mDDZ/QbHt8IgbZl6vdYyvkg==",
        "X-Forefront-Antispam-Report": "CIP:216.228.112.34; CTRY:US; LANG:en; SCL:1;\n SRV:;\n IPV:NLI; SFV:NSPM; H:mail.nvidia.com; PTR:schybrid03.nvidia.com; CAT:NONE;\n SFS:(4636009)(46966006)(36840700001)(5660300002)(36756003)(8936002)(7696005)(36860700001)(55016003)(26005)(508600001)(82310400004)(4326008)(7636003)(86362001)(47076005)(356005)(186003)(16526019)(6286002)(426003)(336012)(316002)(1076003)(54906003)(83380400001)(70206006)(2906002)(8676002)(70586007)(2616005)(6666004)(107886003)(6916009);\n DIR:OUT; SFP:1101;",
        "X-OriginatorOrg": "Nvidia.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "23 Nov 2021 22:32:17.3269 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 9b996973-dfe0-448e-8a10-08d9aed11b1a",
        "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.112.34];\n Helo=[mail.nvidia.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n DM6NAM11FT003.eop-nam11.prod.protection.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "SA0PR12MB4575",
        "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": "mlx5_ind_table_obj_modify() was not changing the reference counters\nof neither the new set of RxQs, nor the old set of RxQs.\nOn the other hand, creation of the RSS incremented the RxQ refcnt.\nIf an RxQ was present in both the initial and the modified set,\nits reference counter was incremented one extra time\ncompared to the queues that were only present in the new set.\nThis prevented releasing said RxQ resources on port stop:\n\n    flow indirect_action 0 create action_id 1 \\\n        action rss queues 0 1 end / end\n    flow indirect_action 0 update 1 \\\n        action rss queues 2 3 end / end\n    quit\n    ...\n    mlx5_net: mlx5.c:1622: mlx5_dev_close():\n        port 0 some Rx queue objects still remain\n    mlx5_net: mlx5.c:1626: mlx5_dev_close():\n        port 0 some Rx queues still remain\n\nIncrement reference counters for the new set of RxQs\nand decrement them for the old set of RxQs.\nOnly do this when the port is started when the port is started.\nRemove explicit referencing of RxQ from mlx5_ind_table_obj_attach()\nbecause it reuses mlx5_ind_table_obj_modify() code doing this.\n\nFixes: ec4e11d41d12 (\"net/mlx5: preserve indirect actions on restart\")\n\nSigned-off-by: Dmitry Kozlyuk <dkozlyuk@nvidia.com>\n---\n drivers/net/mlx5/mlx5_rxq.c | 34 +++++++++++++++++++---------------\n 1 file changed, 19 insertions(+), 15 deletions(-)",
    "diff": "diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c\nindex 8f9a94572f..46d6536be5 100644\n--- a/drivers/net/mlx5/mlx5_rxq.c\n+++ b/drivers/net/mlx5/mlx5_rxq.c\n@@ -2392,7 +2392,8 @@ mlx5_ind_table_obj_modify(struct rte_eth_dev *dev,\n \t\t\t  bool standalone)\n {\n \tstruct mlx5_priv *priv = dev->data->dev_private;\n-\tunsigned int i;\n+\tbool dev_started = priv->dev_data->dev_started;\n+\tunsigned int i, j;\n \tint ret = 0, err;\n \tconst unsigned int n = rte_is_power_of_2(queues_n) ?\n \t\t\t       log2above(queues_n) :\n@@ -2402,22 +2403,30 @@ mlx5_ind_table_obj_modify(struct rte_eth_dev *dev,\n \tRTE_SET_USED(standalone);\n \tif (mlx5_ind_table_obj_check_standalone(dev, ind_tbl) < 0)\n \t\treturn -rte_errno;\n-\tfor (i = 0; i != queues_n; ++i) {\n-\t\tif (!mlx5_rxq_get(dev, queues[i])) {\n-\t\t\tret = -rte_errno;\n-\t\t\tgoto error;\n+\tif (dev_started)\n+\t\tfor (i = 0; i != queues_n; ++i) {\n+\t\t\tif (!mlx5_rxq_ref(dev, queues[i])) {\n+\t\t\t\tret = -rte_errno;\n+\t\t\t\tgoto error;\n+\t\t\t}\n \t\t}\n-\t}\n \tMLX5_ASSERT(priv->obj_ops.ind_table_modify);\n \tret = priv->obj_ops.ind_table_modify(dev, n, queues, queues_n, ind_tbl);\n \tif (ret)\n \t\tgoto error;\n+\tif (dev_started)\n+\t\tfor (i = 0; i < ind_tbl->queues_n; i++)\n+\t\t\tclaim_nonzero(mlx5_rxq_deref(dev, ind_tbl->queues[i]));\n \tind_tbl->queues_n = queues_n;\n \tind_tbl->queues = queues;\n \treturn 0;\n error:\n-\terr = rte_errno;\n-\trte_errno = err;\n+\tif (dev_started) {\n+\t\terr = rte_errno;\n+\t\tfor (j = 0; j < i; j++)\n+\t\t\tmlx5_rxq_deref(dev, queues[j]);\n+\t\trte_errno = err;\n+\t}\n \tDRV_LOG(DEBUG, \"Port %u cannot setup indirection table.\",\n \t\tdev->data->port_id);\n \treturn ret;\n@@ -2438,19 +2447,14 @@ int\n mlx5_ind_table_obj_attach(struct rte_eth_dev *dev,\n \t\t\t  struct mlx5_ind_table_obj *ind_tbl)\n {\n-\tunsigned int i;\n \tint ret;\n \n \tret = mlx5_ind_table_obj_modify(dev, ind_tbl, ind_tbl->queues,\n \t\t\t\t\tind_tbl->queues_n, true);\n-\tif (ret != 0) {\n+\tif (ret != 0)\n \t\tDRV_LOG(ERR, \"Port %u could not modify indirect table obj %p\",\n \t\t\tdev->data->port_id, (void *)ind_tbl);\n-\t\treturn ret;\n-\t}\n-\tfor (i = 0; i < ind_tbl->queues_n; i++)\n-\t\tmlx5_rxq_ref(dev, ind_tbl->queues[i]);\n-\treturn 0;\n+\treturn ret;\n }\n \n /**\n",
    "prefixes": [
        "2/2"
    ]
}