get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 113748,
    "url": "http://patches.dpdk.org/api/patches/113748/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20220706092401.36815-1-asaini@xilinx.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": "<20220706092401.36815-1-asaini@xilinx.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20220706092401.36815-1-asaini@xilinx.com",
    "date": "2022-07-06T09:24:01",
    "name": "vdpa/sfc: resolve race between libvhost and dev_conf",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "9865ff56d4f6b97bac5d1405b41c694a351652da",
    "submitter": {
        "id": 2468,
        "url": "http://patches.dpdk.org/api/people/2468/?format=api",
        "name": "",
        "email": "abhimanyu.saini@xilinx.com"
    },
    "delegate": {
        "id": 2642,
        "url": "http://patches.dpdk.org/api/users/2642/?format=api",
        "username": "mcoquelin",
        "first_name": "Maxime",
        "last_name": "Coquelin",
        "email": "maxime.coquelin@redhat.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/20220706092401.36815-1-asaini@xilinx.com/mbox/",
    "series": [
        {
            "id": 23903,
            "url": "http://patches.dpdk.org/api/series/23903/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=23903",
            "date": "2022-07-06T09:24:01",
            "name": "vdpa/sfc: resolve race between libvhost and dev_conf",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/23903/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/113748/comments/",
    "check": "fail",
    "checks": "http://patches.dpdk.org/api/patches/113748/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 EDB96A0540;\n\tWed,  6 Jul 2022 11:24:22 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 9C1BB40A7F;\n\tWed,  6 Jul 2022 11:24:22 +0200 (CEST)",
            "from NAM10-DM6-obe.outbound.protection.outlook.com\n (mail-dm6nam10on2055.outbound.protection.outlook.com [40.107.93.55])\n by mails.dpdk.org (Postfix) with ESMTP id 9731F40691\n for <dev@dpdk.org>; Wed,  6 Jul 2022 11:24:20 +0200 (CEST)",
            "from MWHPR1601CA0002.namprd16.prod.outlook.com\n (2603:10b6:300:da::12) by MN2PR12MB3503.namprd12.prod.outlook.com\n (2603:10b6:208:cf::16) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.15; Wed, 6 Jul\n 2022 09:24:18 +0000",
            "from CO1NAM11FT051.eop-nam11.prod.protection.outlook.com\n (2603:10b6:300:da:cafe::c1) by MWHPR1601CA0002.outlook.office365.com\n (2603:10b6:300:da::12) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.16 via Frontend\n Transport; Wed, 6 Jul 2022 09:24:17 +0000",
            "from\n mailrelay000000.14r1f435wfvunndds3vy4cdalc.xx.internal.cloudapp.net\n (20.83.241.18) by CO1NAM11FT051.mail.protection.outlook.com (10.13.174.114)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5417.15 via Frontend\n Transport; Wed, 6 Jul 2022 09:24:17 +0000",
            "from NAM12-MW2-obe.outbound.protection.outlook.com\n (mail-mw2nam12lp2048.outbound.protection.outlook.com [104.47.66.48])\n by mailrelay000000.14r1f435wfvunndds3vy4cdalc.xx.internal.cloudapp.net\n (Postfix) with ESMTPS id 7775A3F04A;\n Wed,  6 Jul 2022 09:24:17 +0000 (UTC)",
            "from BN6PR17CA0022.namprd17.prod.outlook.com (2603:10b6:404:65::32)\n by BYAPR02MB5928.namprd02.prod.outlook.com (2603:10b6:a03:123::27)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.17; Wed, 6 Jul\n 2022 09:24:14 +0000",
            "from BN1NAM02FT043.eop-nam02.prod.protection.outlook.com\n (2603:10b6:404:65:cafe::9c) by BN6PR17CA0022.outlook.office365.com\n (2603:10b6:404:65::32) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5395.21 via Frontend\n Transport; Wed, 6 Jul 2022 09:24:14 +0000",
            "from xsj-pvapexch01.xlnx.xilinx.com (149.199.62.198) by\n BN1NAM02FT043.mail.protection.outlook.com (10.13.2.154) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id\n 15.20.5417.15 via Frontend Transport; Wed, 6 Jul 2022 09:24:13 +0000",
            "from xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) by\n xsj-pvapexch01.xlnx.xilinx.com (172.19.86.40) with Microsoft SMTP Server\n (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id\n 15.1.2176.14; Wed, 6 Jul 2022 02:24:07 -0700",
            "from smtp.xilinx.com (172.19.127.95) by\n xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id\n 15.1.2176.14 via Frontend Transport; Wed, 6 Jul 2022 02:24:07 -0700",
            "from [10.170.66.118] (port=46582 helo=xndengvm004118.xilinx.com)\n by smtp.xilinx.com with esmtp (Exim 4.90)\n (envelope-from <abhimanyu.saini@xilinx.com>)\n id 1o91GR-000396-6a; Wed, 06 Jul 2022 02:24:07 -0700"
        ],
        "ARC-Seal": [
            "i=2; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=pass;\n b=QLXTh0mi0wWHSMmUgbH5TvGPrJ2/swwwzENLaZ+Zo9WTEuUEqs0B7ShrKKhrAOWASO3rrftCnlJOzgJIe5n908KXgISSM8N28p8xGPjsIlAxG8DQl0grCwaMsOGn4jWW2aEFmIhxGhmUkZ397KypM9DrRAKQGRzHm4u9+P4XGmaIjHxO7fbWdCi+9zma7vVPSwx47Jf1AcpgcvJCWYzKWz7e9mLThr9HHhc7RpLljTq0He/l2ZzFm35Dn81+q8ykcqALTjX/6/OS7UpZKajiyp0rbBMUEsF20qbaVb6yWMRK0Ucdtg+MLhYrTpeDj2TVWiEYPgx1q+7U0aOPfGLV8A==",
            "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=UWhvF96QJz+tDAdo5FaSQaUCy6ahidXoNOMsLPH35xlZGvf1ylqvg2fs4PnjaVp9030ZzXo0rLCKV9elIJlvg3VxMl2F8+9c1G7Ge6FUZC7vOhPlRsl2WUtwYeuU+neF53VGkAJfiJbiwzEo2D5LPcd3pLXT/8W4WlpJ+BtP36tQiuqIyA8XBEA3DPdgiVt72egGUyMIxilKOSwd8JRlAK6ztbyB+4LxT4rvT7/GPE0FlTpJrOdAmELgePGhBdIpD8CcN1VvUib1jifBvL7aGOeCQXgb2y3lv68lyVc+ZhXYbe7IWpdwPW5MGXzYX9zM3IGW5T3e0UGqhtCcqelovg=="
        ],
        "ARC-Message-Signature": [
            "i=2; 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=0FfaXCz5mpr1AGyzi91P0hSadW2vdyzx53CW+tpIqpA=;\n b=nN6sF8f+TqyCDfK20oHfgaMiJOdgCYL3km85wDQMuJ1RDq/l9dOTr0tvm/PEff2AgJmT4NDBoeVMk34gnrHYRwNiCke8d5ahaEAfvB0lJWFQC/mT6fOKLus+dNRVyorWEnpyE3yrSXJt468sSen/46o4sdjWvYroBrvGNFmxUsRTKXhhiTMzGtmmns85mBbVy8wplHLPVF97X3OHSOv/C9PYgFqLwz8gZwzZrj689hx6Lky9MZ2ziprM2SgG7Jbs+3VNgH/JXc63qkyptuC6MSUcs4AJMzRwkg8twFxi8z8sPLkvTYL3XZmXl/CMJEQiTnKDQYRUJcuDtdEMshgJow==",
            "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=0FfaXCz5mpr1AGyzi91P0hSadW2vdyzx53CW+tpIqpA=;\n b=es9sx4rfGz9Is5M4YfER1DV3j25Up2mOO+isTRajqliVsX9WNDO/tMqQpatGZv3URGdNMnHgFcXCsoZo8zuXbkW8i2ENkJTUrYTF6CfY87Pw7n5RfzaxVLxDW5u+gQU7mITswMDjKR5abeA4sZeV6B8yAwdDU5lHrbneyiwjnFypy5XnQN4aoz3f6kkAeJExR1gSlVfCVl3zdrrcwjGHI7htL813jYu0Sg3JBnpBj+LfEr2q0kNZpJYh5pTlh5X2cTlYQPnhyQjCh+D8fb1j4XG12arVAga4C/grYdT0csaK3q3vmQu/KTPJc8vI2PgVtTI8TDyPkmBQkKJXs5pyKA=="
        ],
        "ARC-Authentication-Results": [
            "i=2; mx.microsoft.com 1; spf=pass (sender ip is\n 20.83.241.18) smtp.rcpttodomain=dpdk.org smtp.mailfrom=amd.com; dmarc=fail\n (p=none sp=none pct=100) action=none header.from=xilinx.com; dkim=none\n (message not signed); arc=pass (0 oda=1 ltdi=1\n spf=[1,1,smtp.mailfrom=xilinx.com] dmarc=[1,1,header.from=xilinx.com])",
            "i=1; mx.microsoft.com 1; spf=pass (sender ip is\n 149.199.62.198) smtp.rcpttodomain=dpdk.org smtp.mailfrom=xilinx.com;\n dmarc=pass (p=none sp=none pct=100) action=none header.from=xilinx.com;\n dkim=none (message not signed); arc=none"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=amdcloud.onmicrosoft.com; s=selector1-amdcloud-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=0FfaXCz5mpr1AGyzi91P0hSadW2vdyzx53CW+tpIqpA=;\n b=DWG9vi4dK8ilemS66S5ojbCh2AnWmXhVvv2Oa0+Jl9KzYiIIxaCXU/gb9unJK8qmElhOwdIn4KZLeAw+KA2AbJRWZwBnHqY8/8/klmGda51Wfp5Ag1PUEa/dcBhbg/MFRQ0tnH2SJNAw4AavLY7glrIAcEcrlRar0XcsjjoD9RbeBAzHW2bj2tCYDBlQwAnqW71ZprbItsOeA+bHogC+QM8X8p01/ru/nFkPXvOfmCW6zecu45sC4ZSWivdaZgxyScGTmZIkSIu+EK6xJmdoA9Y8Ev+6mQZcBgju5oD4yb6IgSbJLCZ6p6jidKItHXZuOPnfyFKEq24MyGNYg9dQ1A==",
        "X-MS-Exchange-Authentication-Results": [
            "spf=pass (sender IP is 20.83.241.18)\n smtp.mailfrom=amd.com; dkim=none (message not signed)\n header.d=none;dmarc=fail action=none header.from=xilinx.com;",
            "spf=pass (sender IP is 149.199.62.198)\n smtp.mailfrom=xilinx.com; dkim=none (message not signed)\n header.d=none;dmarc=pass action=none header.from=xilinx.com;"
        ],
        "Received-SPF": "Pass (protection.outlook.com: domain of amd.com designates\n 20.83.241.18 as permitted sender) receiver=protection.outlook.com;\n client-ip=20.83.241.18;\n helo=mailrelay000000.14r1f435wfvunndds3vy4cdalc.xx.internal.cloudapp.net;\n pr=C",
        "Envelope-to": "dev@dpdk.org, chenbo.xia@intel.com, maxime.coquelin@redhat.com,\n andrew.rybchenko@oktetlabs.ru, absaini@amd.com",
        "From": "<abhimanyu.saini@xilinx.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<chenbo.xia@intel.com>, <maxime.coquelin@redhat.com>,\n <andrew.rybchenko@oktetlabs.ru>, Abhimanyu Saini <absaini@amd.com>",
        "Subject": "[PATCH] vdpa/sfc: resolve race between libvhost and dev_conf",
        "Date": "Wed, 6 Jul 2022 14:54:01 +0530",
        "Message-ID": "<20220706092401.36815-1-asaini@xilinx.com>",
        "X-Mailer": "git-send-email 2.25.0",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-EOPAttributedMessage": "1",
        "X-MS-Office365-Filtering-Correlation-Id": "df202e23-f65a-443c-bb99-08da5f314d0c",
        "X-MS-TrafficTypeDiagnostic": "\n BYAPR02MB5928:EE_|CO1NAM11FT051:EE_|MN2PR12MB3503:EE_",
        "X-MS-Exchange-SenderADCheck": "0",
        "X-MS-Exchange-AntiSpam-Relay": "0",
        "X-Microsoft-Antispam-Untrusted": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info-Original": "\n YQyh/mB681jg41IctqMOxOZJH6RlQQz3Qq5R7S34Zp6LI613ypi3hz5VhlERjl7l9JF/8ZAxyNX6gg5SjYH5TFkunnAO2/JpC6j6QsiFwIJ1wIh9IK4o47xz7uqGL00ivWxLMnGM8vLjEQXdZCOdtD5eOFgBSmPrq9bdvPTFauvVyY6xxj0CLhNWVtzB8kezJQcxtgVx3ULqIVa2/rUp1V2VT8qgh6bEkFaRinkVSv4IPqlTwrXKivmtyqRtIXOg1l3l5px6HiszPGasxW+Dq8j/nk5vwoQ6ub4SBRwwiHHlcGkJMWIaw2zjzUlCVjiVZBI7HLf3yQq8hbNPeAfoGV6iXsQd+vytn8SNw/hNM0MIWxXwKQTTPDXD83dvkAM8rQpMXaek9ApFYsmKKNcogAVWhEgr+84CB3sR4g0qbOfJPo677Dw6hdEtv8Bln2L+YeVoEXUNLzXJWEkKbDYYgGA+8yDOw0s3eIkJeqrZw0AGia1bL5Ed651lHPFlQbXy4k29tSRRoNuOmUsUMB5xuc3gNoR6JIXOeA9Iomn1H0Va9S+dIoKzNFtkd5WmkqRH5uviv5zThe68IGIZV/5Srx4OqXcVdGAdYiLnc8u3LySz1JerpGcO65az/k43T/GHyzfKs7vdf+W0VTYsckNdcOvWvaaouvKPMvu9oZL2ugR8i0TIEINDo/aT4qWARMQXLHIpsusgUiAjI/P5bLc04vKhXqCaZItL20NbAB9a8kHlALj8P97i/Ktofx6gg2J774Q/Pa7Q5Q2QvskyVmhv1UvH8yw6FhHVzc5fN4tnuozJn2pmzU9xAW7A6vYC3TjrL+35AQHT04Dgv3/ZNPKtZDu/Ox7nWtsOJ58yHndNSCM=",
        "X-Forefront-Antispam-Report-Untrusted": "CIP:149.199.62.198; CTRY:US; LANG:en;\n SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:xsj-pvapexch01.xlnx.xilinx.com;\n PTR:unknown-62-198.xilinx.com; CAT:NONE;\n SFS:(13230016)(4636009)(136003)(346002)(376002)(396003)(39860400002)(40470700004)(36840700001)(46966006)(47076005)(6916009)(40460700003)(426003)(336012)(26005)(54906003)(2876002)(82310400005)(186003)(36756003)(316002)(83380400001)(1076003)(9786002)(2616005)(5660300002)(70586007)(7636003)(2906002)(40480700001)(36860700001)(478600001)(7696005)(8936002)(6666004)(8676002)(4326008)(41300700001)(70206006)(356005)(82740400003)(102446001);\n DIR:OUT; SFP:1101;",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": [
            "BYAPR02MB5928",
            "MN2PR12MB3503"
        ],
        "X-MS-Exchange-Transport-CrossTenantHeadersStripped": "\n CO1NAM11FT051.eop-nam11.prod.protection.outlook.com",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id-Prvs": "\n e9aeb428-07f7-40f8-436a-08da5f314ab4",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n ZL15kdjkA6mP1xRKxSDKm7kiK2sy1Xn6m25uHCxpMvOAv8/YNDg1+X1AAHJm8u72rn3Wj0Fcs1g19lMXrYijtB7Lct1G2l1K+HPJochjnh0rVmWnzO5DmkJ2o7OaZOjftAZvAvRo1xwFPq5ioG/sOI7PYF2kqm8GaLZ2gQb8oyqWJflfILJTd6gcWzbUtlxjpWbuVwAnNukS9hEqB5Tr7I7YEe/uYSHfg+msqulm0ue2VNnNBudxs9uBrbjSUfD0L4ChySmRfk0PSIY/LfKLv+XOh5nB3cXDLoFJekMNeLvcoqlVxlc844pCn5WF9q1AYnVrNuZmEp8zPZt9XtXeqebS80r8FR8BuG0nObRaxzYG/a+XbsdC9D5M51Fk+ojY7MqF6P8lYNpdRnaJsTvKhL/FKDZok0vX393FfTvIqkTg+FbdOd9WE6pabh+NRTmoxnxuar/JaUp+SRi+A/zHvkkhSwHPV/shL9nnDvKJXf3x8IZkSlz6AsFJ3p6yu+PM/lM2C94adlWspV5EbBTaakCdEdc1y2UbLhgplhPeibrxNb1NZ1xdL3Bl//fBIV9rGC5JGVLQ0L1kABimJPkUN8U3iVL932PW0lLDwdNVA8KfpevQEhucjexsxcG1G1YEcUKbq2wcN3R9H0HvZJCItw05UT8igZ2IIgueEZfzQCvvNAoDZ0DtO9z97AohQUg3t23i7txzUvtc4m9P54SBHmn0u5lKKstiU7gAD21cTbJ2Dr2dSfgyiaAGnPZ2xzQZkV6Igbqsou67xjgT8jLsjvO32mdFVF8o78dy8mtN4v+aD3HQA0ohd1DV8oUvcJIEDPhbtLsPdCYc+P0AfBuq8wHG7i2Kb+NGhJnmgGWonjOj6Aeqnaos6j9IbdBcRuDgpCuBnS5OeEIkFoSPNDur4pGfRIZm/qNFm5oXPUPDc4g=",
        "X-Forefront-Antispam-Report": "CIP:20.83.241.18; CTRY:US; LANG:en; SCL:1; SRV:;\n IPV:NLI; SFV:NSPM;\n H:mailrelay000000.14r1f435wfvunndds3vy4cdalc.xx.internal.cloudapp.net;\n PTR:InfoDomainNonexistent; CAT:NONE;\n SFS:(13230016)(4636009)(376002)(39860400002)(346002)(396003)(136003)(46966006)(36840700001)(2906002)(36860700001)(41300700001)(34020700004)(2616005)(6666004)(40480700001)(1076003)(82310400005)(316002)(36756003)(2876002)(426003)(54906003)(6916009)(7696005)(70206006)(8676002)(4326008)(9786002)(47076005)(478600001)(186003)(42882007)(83380400001)(336012)(82740400003)(81166007)(83170400001)(26005)(8936002)(5660300002)(102446001)(84790400001)(36900700001);\n DIR:OUT; SFP:1101;",
        "X-OriginatorOrg": "amd.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "06 Jul 2022 09:24:17.6594 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n df202e23-f65a-443c-bb99-08da5f314d0c",
        "X-MS-Exchange-CrossTenant-Id": "3dd8961f-e488-4e60-8e11-a82d994e183d",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=3dd8961f-e488-4e60-8e11-a82d994e183d; Ip=[20.83.241.18];\n Helo=[mailrelay000000.14r1f435wfvunndds3vy4cdalc.xx.internal.cloudapp.net]",
        "X-MS-Exchange-CrossTenant-AuthAs": "Internal",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n TreatMessagesAsInternal-CO1NAM11FT051.eop-nam11.prod.protection.outlook.com",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "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": "From: Abhimanyu Saini <absaini@amd.com>\n\nlibvhost calls dev_conf() before prosessing the\nVHOST_USER_SET_VRING_CALL message for the last VQ. So\nthis message is processed after dev_conf() returns.\n\nHowever, the dev_conf() function spawns a thread to set\nrte_vhost_host_notifier_ctrl() before returning control to\nlibvhost. This parallel thread in turn invokes get_notify_area().\nTo get the notify_area, the vdpa driver needs to query the HW and\nfor this query it needs an enabled VQ.\n\nBut at the same time libvhost is processing the last\nVHOST_USER_SET_VRING_CALL, and to do that it disables the last VQ.\n\nHence there is a race b/w the libvhost and the vdpa driver.\n\nTo resolve this race condition, query the HW and cache notify_area\ninside dev_conf() instead of doing it the parallel thread.\n\nSigned-off-by: Abhimanyu Saini <absaini@amd.com>\n---\n drivers/vdpa/sfc/sfc_vdpa_ops.c | 36 ++++++++++++++++++------------------\n drivers/vdpa/sfc/sfc_vdpa_ops.h |  1 +\n 2 files changed, 19 insertions(+), 18 deletions(-)",
    "diff": "diff --git a/drivers/vdpa/sfc/sfc_vdpa_ops.c b/drivers/vdpa/sfc/sfc_vdpa_ops.c\nindex 63aa52d..b84699d 100644\n--- a/drivers/vdpa/sfc/sfc_vdpa_ops.c\n+++ b/drivers/vdpa/sfc/sfc_vdpa_ops.c\n@@ -222,6 +222,7 @@\n sfc_vdpa_virtq_start(struct sfc_vdpa_ops_data *ops_data, int vq_num)\n {\n \tint rc;\n+\tuint32_t doorbell;\n \tefx_virtio_vq_t *vq;\n \tstruct sfc_vdpa_vring_info vring;\n \tefx_virtio_vq_cfg_t vq_cfg;\n@@ -270,22 +271,35 @@\n \t/* Start virtqueue */\n \trc = efx_virtio_qstart(vq, &vq_cfg, &vq_dyncfg);\n \tif (rc != 0) {\n-\t\t/* destroy virtqueue */\n \t\tsfc_vdpa_err(ops_data->dev_handle,\n \t\t\t     \"virtqueue start failed: %s\",\n \t\t\t     rte_strerror(rc));\n-\t\tefx_virtio_qdestroy(vq);\n \t\tgoto fail_virtio_qstart;\n \t}\n \n \tsfc_vdpa_info(ops_data->dev_handle,\n \t\t      \"virtqueue started successfully for vq_num %d\", vq_num);\n \n+\trc = efx_virtio_get_doorbell_offset(vq,\t&doorbell);\n+\tif (rc != 0) {\n+\t\tsfc_vdpa_err(ops_data->dev_handle,\n+\t\t\t     \"failed to get doorbell offset: %s\",\n+\t\t\t     rte_strerror(rc));\n+\t\tgoto fail_doorbell;\n+\t}\n+\n+\t/*\n+\t * Cache the bar_offset here for each VQ here, it will come\n+\t * in handy when sfc_vdpa_get_notify_area() is invoked.\n+\t */\n+\tops_data->vq_cxt[vq_num].doorbell = (void *)(uintptr_t)doorbell;\n \tops_data->vq_cxt[vq_num].enable = B_TRUE;\n \n \treturn rc;\n \n+fail_doorbell:\n fail_virtio_qstart:\n+\tefx_virtio_qdestroy(vq);\n fail_vring_info:\n \treturn rc;\n }\n@@ -792,8 +806,6 @@\n \tint ret;\n \tefx_nic_t *nic;\n \tint vfio_dev_fd;\n-\tefx_rc_t rc;\n-\tunsigned int bar_offset;\n \tvolatile void *doorbell;\n \tstruct rte_pci_device *pci_dev;\n \tstruct rte_vdpa_device *vdpa_dev;\n@@ -824,19 +836,6 @@\n \t\treturn -1;\n \t}\n \n-\tif (ops_data->vq_cxt[qid].enable != B_TRUE) {\n-\t\tsfc_vdpa_err(dev, \"vq is not enabled\");\n-\t\treturn -1;\n-\t}\n-\n-\trc = efx_virtio_get_doorbell_offset(ops_data->vq_cxt[qid].vq,\n-\t\t\t\t\t    &bar_offset);\n-\tif (rc != 0) {\n-\t\tsfc_vdpa_err(dev, \"failed to get doorbell offset: %s\",\n-\t\t\t     rte_strerror(rc));\n-\t\treturn rc;\n-\t}\n-\n \treg.index = sfc_vdpa_adapter_by_dev_handle(dev)->mem_bar.esb_rid;\n \tret = ioctl(vfio_dev_fd, VFIO_DEVICE_GET_REGION_INFO, &reg);\n \tif (ret != 0) {\n@@ -845,7 +844,8 @@\n \t\treturn ret;\n \t}\n \n-\t*offset = reg.offset + bar_offset;\n+\t/* Use bar_offset that was cached during sfc_vdpa_virtq_start() */\n+\t*offset = reg.offset + (uint64_t)ops_data->vq_cxt[qid].doorbell;\n \n \tlen = (1U << encp->enc_vi_window_shift) / 2;\n \tif (len >= sysconf(_SC_PAGESIZE)) {\ndiff --git a/drivers/vdpa/sfc/sfc_vdpa_ops.h b/drivers/vdpa/sfc/sfc_vdpa_ops.h\nindex 6d790fd..9dbd5b8 100644\n--- a/drivers/vdpa/sfc/sfc_vdpa_ops.h\n+++ b/drivers/vdpa/sfc/sfc_vdpa_ops.h\n@@ -35,6 +35,7 @@ struct sfc_vdpa_vring_info {\n };\n \n typedef struct sfc_vdpa_vq_context_s {\n+\tvolatile void\t\t\t*doorbell;\n \tuint8_t\t\t\t\tenable;\n \tuint32_t\t\t\tpidx;\n \tuint32_t\t\t\tcidx;\n",
    "prefixes": []
}