get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 95471,
    "url": "https://patches.dpdk.org/api/patches/95471/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20210706164418.32615-8-vsrivast@xilinx.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<20210706164418.32615-8-vsrivast@xilinx.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210706164418.32615-8-vsrivast@xilinx.com",
    "date": "2021-07-06T16:44:15",
    "name": "[07/10] vdpa/sfc: add support to get queue notify area info",
    "commit_ref": null,
    "pull_url": null,
    "state": "changes-requested",
    "archived": true,
    "hash": "c8228cec91928c9ab2c9b4480df87cf23db87ce1",
    "submitter": {
        "id": 2281,
        "url": "https://patches.dpdk.org/api/people/2281/?format=api",
        "name": "Vijay Srivastava",
        "email": "vijay.srivastava@xilinx.com"
    },
    "delegate": {
        "id": 2642,
        "url": "https://patches.dpdk.org/api/users/2642/?format=api",
        "username": "mcoquelin",
        "first_name": "Maxime",
        "last_name": "Coquelin",
        "email": "maxime.coquelin@redhat.com"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20210706164418.32615-8-vsrivast@xilinx.com/mbox/",
    "series": [
        {
            "id": 17687,
            "url": "https://patches.dpdk.org/api/series/17687/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=17687",
            "date": "2021-07-06T16:44:08",
            "name": "vdpa/sfc: introduce Xilinx vDPA driver",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/17687/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/95471/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/95471/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 5FB6EA0C4A;\n\tWed,  7 Jul 2021 10:26:32 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 67C25414AF;\n\tWed,  7 Jul 2021 10:25:41 +0200 (CEST)",
            "from NAM12-BN8-obe.outbound.protection.outlook.com\n (mail-bn8nam12on2066.outbound.protection.outlook.com [40.107.237.66])\n by mails.dpdk.org (Postfix) with ESMTP id 988644120E\n for <dev@dpdk.org>; Tue,  6 Jul 2021 18:50:27 +0200 (CEST)",
            "from BN9PR03CA0505.namprd03.prod.outlook.com (2603:10b6:408:130::30)\n by SN1PR02MB3741.namprd02.prod.outlook.com (2603:10b6:802:28::24)\n with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4219.22; Tue, 6 Jul\n 2021 16:50:25 +0000",
            "from BN1NAM02FT029.eop-nam02.prod.protection.outlook.com\n (2603:10b6:408:130:cafe::64) by BN9PR03CA0505.outlook.office365.com\n (2603:10b6:408:130::30) with Microsoft SMTP Server (version=TLS1_2,\n cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4287.25 via Frontend\n Transport; Tue, 6 Jul 2021 16:50:25 +0000",
            "from xsj-pvapexch01.xlnx.xilinx.com (149.199.62.198) by\n BN1NAM02FT029.mail.protection.outlook.com (10.13.2.143) with Microsoft SMTP\n Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id\n 15.20.4287.22 via Frontend Transport; Tue, 6 Jul 2021 16:50:25 +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.2; Tue, 6 Jul 2021 09:50:04 -0700",
            "from smtp.xilinx.com (172.19.127.96) by\n xsj-pvapexch02.xlnx.xilinx.com (172.19.86.41) with Microsoft SMTP Server id\n 15.1.2176.2 via Frontend Transport; Tue, 6 Jul 2021 09:50:04 -0700",
            "from [10.177.4.108] (port=54950 helo=xndengvm004108.xilinx.com)\n by smtp.xilinx.com with esmtp (Exim 4.90)\n (envelope-from <vijay.srivastava@xilinx.com>)\n id 1m0oGp-0000pF-P8; Tue, 06 Jul 2021 09:50:04 -0700"
        ],
        "ARC-Seal": "i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none;\n b=fjTA2QNHUb0No8dYqss+Fyp3DVBm+eGb4GZELkrU2P82Zxc+Hx6Ex0VGFGgMHzkij/H1x0P7DWwRaYZfQnRGxM70QmJFLTWxXPLVJVdqyqG6rPQy5hY+luYHaVd+oerQlrAgBH6uztHkAy97DJLx57k0S0OgZ0BlAgiW3fBqTCt5kYhTTH30ygjyqB9p5CrTz1qNWqZMNLh6ouMIdBFf1HSFXPJ/naSG9W6QN59GSBJm1T/9io/rYAOQsUgPLxK6/Lm1NuJaarldYeBJPSWOGv6OfbiDaO5DOHyZj/0wRv72Nm8oszmbUMTxTxKJuQ11arEDKGPCFM51fIdogj+PRg==",
        "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-SenderADCheck;\n bh=ldWYRK2qp93s2F9F0fdPVP5KDof6d2Y5hWumy/z9ovE=;\n b=RyrZjOzTJpyORbu6dTLTx1Yg5BISC3cRUiyJZEqbui2fkgVq6FcPYCK/JwzMIshVp7cGRRVBBdISWnJ3OuqsHQNnZ1LDuZ3nGLlXs+WT7d7JtvDKswRm3b8I+7WUlpnOTQ9tTY64MghhcBMiw088MSWGCTHROCFPqatPgTTZpN6x8KPYD2WP2GX9FqKWHOMrAtouujCYriPlo/51AgNY5TusDxyIEzKBRJ7lmSUe2YKHXzQVqFiHi1Y8MXWISNHijCBFOqVyGxZx9/LGwy++CRk52qjhLSkEu6ltGIV0HHiOt3quUJXBkaCN/YsKybgWZ74w/ZDGoaotLfVe7uVFsQ==",
        "ARC-Authentication-Results": "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=xilinx.onmicrosoft.com; s=selector2-xilinx-onmicrosoft-com;\n h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck;\n bh=ldWYRK2qp93s2F9F0fdPVP5KDof6d2Y5hWumy/z9ovE=;\n b=pK2SFcd4+d5OaHMwKmVoJokep3eM7VwmfTC0Mm/x4KrwZiYTs5UD7l+fsRGsiMQlZjSXek93ZmNv4M1Fje7utTEV2u76hlKH+JBms8X9h/UgCVroPkUtAbY2RsrAfcl9RxazTvAdh5vZTZGLhdpfHGrGp5t9PkknR9TF3qKPlJw=",
        "X-MS-Exchange-Authentication-Results": "spf=pass (sender IP is 149.199.62.198)\n smtp.mailfrom=xilinx.com; dpdk.org; dkim=none (message not signed)\n header.d=none;dpdk.org; dmarc=pass action=none header.from=xilinx.com;",
        "Received-SPF": "Pass (protection.outlook.com: domain of xilinx.com designates\n 149.199.62.198 as permitted sender) receiver=protection.outlook.com;\n client-ip=149.199.62.198; helo=xsj-pvapexch01.xlnx.xilinx.com;",
        "Envelope-to": "dev@dpdk.org, maxime.coquelin@redhat.com, chenbo.xia@intel.com,\n andrew.rybchenko@oktetlabs.ru",
        "From": "Vijay Srivastava <vijay.srivastava@xilinx.com>",
        "To": "<dev@dpdk.org>",
        "CC": "<maxime.coquelin@redhat.com>, <chenbo.xia@intel.com>,\n <andrew.rybchenko@oktetlabs.ru>, Vijay Kumar Srivastava <vsrivast@xilinx.com>",
        "Date": "Tue, 6 Jul 2021 22:14:15 +0530",
        "Message-ID": "<20210706164418.32615-8-vsrivast@xilinx.com>",
        "X-Mailer": "git-send-email 2.25.0",
        "In-Reply-To": "<20210706164418.32615-1-vsrivast@xilinx.com>",
        "References": "<20210706164418.32615-1-vsrivast@xilinx.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Content-Type": "text/plain",
        "X-EOPAttributedMessage": "0",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "25b73bf7-d70c-4875-1fbe-08d9409e26fb",
        "X-MS-TrafficTypeDiagnostic": "SN1PR02MB3741:",
        "X-Microsoft-Antispam-PRVS": "\n <SN1PR02MB37410D28DF40B91629965777B91B9@SN1PR02MB3741.namprd02.prod.outlook.com>",
        "X-MS-Oob-TLC-OOBClassifiers": "OLM:3044;",
        "X-MS-Exchange-SenderADCheck": "1",
        "X-Microsoft-Antispam": "BCL:0;",
        "X-Microsoft-Antispam-Message-Info": "\n nj273mTyj74xReToosA2NqRWsTCv6IIuphppfbhAbootZDWZuA9ckKpY/9j1SykdpeMqLNycRgljZErw+rowm2fF4p5SqzVh4uWhfmTC4c6twxr37iccXCzK+cgbn7HH8zczRJVdHGR/9a1UVtnWXkGLBnIblE0kpQWa3YavnSI+CiBP+OyOYZk+3Gsx2WW3vwSAKVHLj5Ug1hAQ9ppHwOQOYI/oEuPzm3VyHah84I/ZrOPIdjZX1TYdsqkcwjzXY+oJsbDQQQS7sZCElJCPZbRTsBwWJO7pR6EEm7IQoaI2o1HerSHaZmk+RYTbWEALLg1zJoSpbaLoB1RJiPSW3X7gBhxfzQdLgttWAAEHyffOIZWgZUELzgI7mEj2NKTTQqsymvR0AWLYhEclmsxl8Af+iTN2EbSL4YtT2rj5095nOerjZe2v6B3q+zocyETxQ9uK+P1QEN+L2Z5Yi9FPNFDjoPuyntNTm/POgS3m3Ve5wEdVu0ZsEjPfOgj9nY/7BvC9XDUT9xJ4XDfQqe94JI/5APxe0+vT6kJLLB/jkHSu8okMVx/446OxMKELlWczBHyl843UWGVcvMEU63djGcfhw2r40F6cBrBrvfVechxDqZ/KX6leM2zb8CxCgbM7B00bPIfqgOXgKkOPXTpcNwQDHxBhfm7RRkbHp1DQktuS9OCRcQ+Ukkyu0FX1SeCx7vDRKKPFUAvapICzUaEgqkVvZAoDo/mNORzrb8UfMrE=",
        "X-Forefront-Antispam-Report": "CIP:149.199.62.198; CTRY:US; LANG:en; SCL:1;\n SRV:;\n IPV:NLI; SFV:NSPM; H:xsj-pvapexch01.xlnx.xilinx.com;\n PTR:unknown-62-198.xilinx.com; CAT:NONE;\n SFS:(4636009)(346002)(396003)(136003)(39860400002)(376002)(36840700001)(46966006)(54906003)(107886003)(47076005)(7636003)(70586007)(186003)(336012)(356005)(36860700001)(316002)(36906005)(82740400003)(2906002)(9786002)(70206006)(36756003)(4326008)(478600001)(26005)(83380400001)(82310400003)(2616005)(426003)(44832011)(8676002)(6916009)(1076003)(6666004)(8936002)(5660300002)(7696005)(102446001);\n DIR:OUT; SFP:1101;",
        "X-OriginatorOrg": "xilinx.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "06 Jul 2021 16:50:25.1178 (UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "\n 25b73bf7-d70c-4875-1fbe-08d9409e26fb",
        "X-MS-Exchange-CrossTenant-Id": "657af505-d5df-48d0-8300-c31994686c5c",
        "X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp": "\n TenantId=657af505-d5df-48d0-8300-c31994686c5c; Ip=[149.199.62.198];\n Helo=[xsj-pvapexch01.xlnx.xilinx.com]",
        "X-MS-Exchange-CrossTenant-AuthSource": "\n BN1NAM02FT029.eop-nam02.prod.protection.outlook.com",
        "X-MS-Exchange-CrossTenant-AuthAs": "Anonymous",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "HybridOnPrem",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "SN1PR02MB3741",
        "X-Mailman-Approved-At": "Wed, 07 Jul 2021 10:25:28 +0200",
        "Subject": "[dpdk-dev] [PATCH 07/10] vdpa/sfc: add support to get queue notify\n area info",
        "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",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "From: Vijay Kumar Srivastava <vsrivast@xilinx.com>\n\nImplement the vDPA ops get_notify_area to get the notify\narea info of the queue.\n\nSigned-off-by: Vijay Kumar Srivastava <vsrivast@xilinx.com>\n---\n drivers/vdpa/sfc/sfc_vdpa_ops.c | 166 ++++++++++++++++++++++++++++++++++++++--\n drivers/vdpa/sfc/sfc_vdpa_ops.h |   2 +\n 2 files changed, 162 insertions(+), 6 deletions(-)",
    "diff": "diff --git a/drivers/vdpa/sfc/sfc_vdpa_ops.c b/drivers/vdpa/sfc/sfc_vdpa_ops.c\nindex 4228044..a7b9085 100644\n--- a/drivers/vdpa/sfc/sfc_vdpa_ops.c\n+++ b/drivers/vdpa/sfc/sfc_vdpa_ops.c\n@@ -3,6 +3,8 @@\n  * Copyright(c) 2020-2021 Xilinx, Inc.\n  */\n \n+#include <pthread.h>\n+#include <unistd.h>\n #include <sys/ioctl.h>\n \n #include <rte_errno.h>\n@@ -534,6 +536,67 @@\n \treturn 0;\n }\n \n+static void *\n+sfc_vdpa_notify_ctrl(void *arg)\n+{\n+\tstruct sfc_vdpa_ops_data *ops_data;\n+\tint vid;\n+\n+\tops_data = arg;\n+\tif (ops_data == NULL)\n+\t\treturn NULL;\n+\n+\tsfc_vdpa_adapter_lock(ops_data->dev_handle);\n+\n+\tvid = ops_data->vid;\n+\n+\tif (rte_vhost_host_notifier_ctrl(vid, RTE_VHOST_QUEUE_ALL, true) != 0)\n+\t\tsfc_vdpa_info(ops_data->dev_handle,\n+\t\t\t      \"vDPA (%s): Notifier could not get configured\",\n+\t\t\t      ops_data->vdpa_dev->device->name);\n+\n+\tsfc_vdpa_adapter_unlock(ops_data->dev_handle);\n+\n+\treturn NULL;\n+}\n+\n+static int\n+sfc_vdpa_setup_notify_ctrl(int vid)\n+{\n+\tint ret;\n+\tstruct rte_vdpa_device *vdpa_dev;\n+\tstruct sfc_vdpa_ops_data *ops_data;\n+\n+\tvdpa_dev = rte_vhost_get_vdpa_device(vid);\n+\n+\tops_data = sfc_vdpa_get_data_by_dev(vdpa_dev);\n+\tif (ops_data == NULL) {\n+\t\tsfc_vdpa_err(ops_data->dev_handle,\n+\t\t\t     \"invalid vDPA device : %p, vid : %d\",\n+\t\t\t     vdpa_dev, vid);\n+\t\treturn -1;\n+\t}\n+\n+\tops_data->is_notify_thread_started = false;\n+\n+\t/*\n+\t * Use rte_vhost_host_notifier_ctrl in a thread to avoid\n+\t * dead lock scenario when multiple VFs are used in single vdpa\n+\t * application and multiple VFs are passed to a single VM.\n+\t */\n+\tret = pthread_create(&ops_data->notify_tid, NULL,\n+\t\t\t     sfc_vdpa_notify_ctrl, ops_data);\n+\tif (ret != 0) {\n+\t\tsfc_vdpa_err(ops_data->dev_handle,\n+\t\t\t     \"failed to create notify_ctrl thread: %s\",\n+\t\t\t     rte_strerror(ret));\n+\t\treturn -1;\n+\t}\n+\tops_data->is_notify_thread_started = true;\n+\n+\treturn 0;\n+}\n+\n static int\n sfc_vdpa_dev_config(int vid)\n {\n@@ -567,18 +630,19 @@\n \tif (rc != 0)\n \t\tgoto fail_vdpa_start;\n \n-\tsfc_vdpa_adapter_unlock(ops_data->dev_handle);\n+\trc = sfc_vdpa_setup_notify_ctrl(vid);\n+\tif (rc != 0)\n+\t\tgoto fail_vdpa_notify;\n \n-\tsfc_vdpa_log_init(ops_data->dev_handle, \"vhost notifier ctrl\");\n-\tif (rte_vhost_host_notifier_ctrl(vid, RTE_VHOST_QUEUE_ALL, true) != 0)\n-\t\tsfc_vdpa_info(ops_data->dev_handle,\n-\t\t\t      \"vDPA (%s): software relay for notify is used.\",\n-\t\t\t      vdpa_dev->device->name);\n+\tsfc_vdpa_adapter_unlock(ops_data->dev_handle);\n \n \tsfc_vdpa_log_init(ops_data->dev_handle, \"done\");\n \n \treturn 0;\n \n+fail_vdpa_notify:\n+\tsfc_vdpa_stop(ops_data);\n+\n fail_vdpa_start:\n \tsfc_vdpa_close(ops_data);\n \n@@ -591,6 +655,7 @@\n static int\n sfc_vdpa_dev_close(int vid)\n {\n+\tint ret;\n \tstruct rte_vdpa_device *vdpa_dev;\n \tstruct sfc_vdpa_ops_data *ops_data;\n \n@@ -605,6 +670,23 @@\n \t}\n \n \tsfc_vdpa_adapter_lock(ops_data->dev_handle);\n+\tif (ops_data->is_notify_thread_started == true) {\n+\t\tvoid *status;\n+\t\tret = pthread_cancel(ops_data->notify_tid);\n+\t\tif (ret != 0) {\n+\t\t\tsfc_vdpa_err(ops_data->dev_handle,\n+\t\t\t\t     \"failed to cancel notify_ctrl thread: %s\",\n+\t\t\t\t     rte_strerror(ret));\n+\t\t}\n+\n+\t\tret = pthread_join(ops_data->notify_tid, &status);\n+\t\tif (ret != 0) {\n+\t\t\tsfc_vdpa_err(ops_data->dev_handle,\n+\t\t\t\t     \"failed to join terminated notify_ctrl thread: %s\",\n+\t\t\t\t     rte_strerror(ret));\n+\t\t}\n+\t}\n+\tops_data->is_notify_thread_started = false;\n \n \tsfc_vdpa_stop(ops_data);\n \tsfc_vdpa_close(ops_data);\n@@ -655,6 +737,77 @@\n \treturn vfio_dev_fd;\n }\n \n+static int\n+sfc_vdpa_get_notify_area(int vid, int qid, uint64_t *offset, uint64_t *size)\n+{\n+\tint ret;\n+\tefx_nic_t *nic;\n+\tint vfio_dev_fd;\n+\tefx_rc_t rc;\n+\tunsigned int bar_offset;\n+\tstruct rte_vdpa_device *vdpa_dev;\n+\tstruct sfc_vdpa_ops_data *ops_data;\n+\tstruct vfio_region_info reg = { .argsz = sizeof(reg) };\n+\tconst efx_nic_cfg_t *encp;\n+\tint max_vring_cnt;\n+\tint64_t len;\n+\tvoid *dev;\n+\n+\tvdpa_dev = rte_vhost_get_vdpa_device(vid);\n+\n+\tops_data = sfc_vdpa_get_data_by_dev(vdpa_dev);\n+\tif (ops_data == NULL)\n+\t\treturn -1;\n+\n+\tdev = ops_data->dev_handle;\n+\n+\tvfio_dev_fd = sfc_vdpa_adapter_by_dev_handle(dev)->vfio_dev_fd;\n+\tmax_vring_cnt =\n+\t\t(sfc_vdpa_adapter_by_dev_handle(dev)->max_queue_count * 2);\n+\n+\tnic = sfc_vdpa_adapter_by_dev_handle(ops_data->dev_handle)->nic;\n+\tencp = efx_nic_cfg_get(nic);\n+\n+\tif (qid >= max_vring_cnt) {\n+\t\tsfc_vdpa_err(dev, \"invalid qid : %d\", qid);\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+\t\tsfc_vdpa_err(dev, \"could not get device region info: %s\",\n+\t\t\t     strerror(errno));\n+\t\treturn ret;\n+\t}\n+\n+\t*offset = reg.offset + bar_offset;\n+\n+\tlen = (1U << encp->enc_vi_window_shift) / 2;\n+\tif (len >= sysconf(_SC_PAGESIZE))\n+\t\t*size = sysconf(_SC_PAGESIZE);\n+\telse\n+\t\treturn -1;\n+\n+\tsfc_vdpa_info(dev, \"vDPA ops get_notify_area :: offset : 0x%\" PRIx64,\n+\t\t      *offset);\n+\n+\treturn 0;\n+}\n+\n static struct rte_vdpa_dev_ops sfc_vdpa_ops = {\n \t.get_queue_num = sfc_vdpa_get_queue_num,\n \t.get_features = sfc_vdpa_get_features,\n@@ -664,6 +817,7 @@\n \t.set_vring_state = sfc_vdpa_set_vring_state,\n \t.set_features = sfc_vdpa_set_features,\n \t.get_vfio_device_fd = sfc_vdpa_get_vfio_device_fd,\n+\t.get_notify_area = sfc_vdpa_get_notify_area,\n };\n \n struct sfc_vdpa_ops_data *\ndiff --git a/drivers/vdpa/sfc/sfc_vdpa_ops.h b/drivers/vdpa/sfc/sfc_vdpa_ops.h\nindex 8d553c5..f7523ef 100644\n--- a/drivers/vdpa/sfc/sfc_vdpa_ops.h\n+++ b/drivers/vdpa/sfc/sfc_vdpa_ops.h\n@@ -50,6 +50,8 @@ struct sfc_vdpa_ops_data {\n \tstruct rte_vdpa_device\t\t*vdpa_dev;\n \tenum sfc_vdpa_context\t\tvdpa_context;\n \tenum sfc_vdpa_state\t\tstate;\n+\tpthread_t\t\t\tnotify_tid;\n+\tbool\t\t\t\tis_notify_thread_started;\n \n \tuint64_t\t\t\tdev_features;\n \tuint64_t\t\t\tdrv_features;\n",
    "prefixes": [
        "07/10"
    ]
}