get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 102742,
    "url": "http://patches.dpdk.org/api/patches/102742/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/20211025144725.115828-4-miao.li@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": "<20211025144725.115828-4-miao.li@intel.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20211025144725.115828-4-miao.li@intel.com",
    "date": "2021-10-25T14:47:23",
    "name": "[v8,3/5] net/vhost: support power monitor",
    "commit_ref": null,
    "pull_url": null,
    "state": "accepted",
    "archived": true,
    "hash": "cd1cc47ec358c205ad04bb04cbd70b7962e041e8",
    "submitter": {
        "id": 2220,
        "url": "http://patches.dpdk.org/api/people/2220/?format=api",
        "name": "Li, Miao",
        "email": "miao.li@intel.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/20211025144725.115828-4-miao.li@intel.com/mbox/",
    "series": [
        {
            "id": 19944,
            "url": "http://patches.dpdk.org/api/series/19944/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=19944",
            "date": "2021-10-25T14:47:20",
            "name": "Support power monitor in virtio/vhost PMD",
            "version": 8,
            "mbox": "http://patches.dpdk.org/series/19944/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/patches/102742/comments/",
    "check": "success",
    "checks": "http://patches.dpdk.org/api/patches/102742/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 C14BDA0C47;\n\tMon, 25 Oct 2021 08:43:51 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id CE55341137;\n\tMon, 25 Oct 2021 08:43:47 +0200 (CEST)",
            "from mga02.intel.com (mga02.intel.com [134.134.136.20])\n by mails.dpdk.org (Postfix) with ESMTP id 8BFEB4003E\n for <dev@dpdk.org>; Mon, 25 Oct 2021 08:43:44 +0200 (CEST)",
            "from orsmga006.jf.intel.com ([10.7.209.51])\n by orsmga101.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384;\n 24 Oct 2021 23:43:44 -0700",
            "from limiao-icelake.sh.intel.com ([10.67.115.126])\n by orsmga006.jf.intel.com with ESMTP; 24 Oct 2021 23:43:42 -0700"
        ],
        "X-IronPort-AV": [
            "E=McAfee;i=\"6200,9189,10147\"; a=\"216747133\"",
            "E=Sophos;i=\"5.87,179,1631602800\"; d=\"scan'208\";a=\"216747133\"",
            "E=Sophos;i=\"5.87,179,1631602800\"; d=\"scan'208\";a=\"446095589\""
        ],
        "X-ExtLoop1": "1",
        "From": "Miao Li <miao.li@intel.com>",
        "To": "dev@dpdk.org",
        "Cc": "chenbo.xia@intel.com, maxime.coquelin@redhat.com, miao.li@intel.com,\n David Hunt <david.hunt@intel.com>",
        "Date": "Mon, 25 Oct 2021 14:47:23 +0000",
        "Message-Id": "<20211025144725.115828-4-miao.li@intel.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20211025144725.115828-1-miao.li@intel.com>",
        "References": "<20211018141638.5916-1-miao.li@intel.com>\n <20211025144725.115828-1-miao.li@intel.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v8 3/5] net/vhost: support power monitor",
        "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": "According to current semantics of power monitor, this commit adds a\ncallback function to decide whether aborts the sleep by checking\ncurrent value against the expected value and vhost_get_monitor_addr\nto provide address to monitor. When no packet come in, the value of\naddress will not be changed and the running core will sleep. Once\npackets arrive, the value of address will be changed and the running\ncore will wakeup.\n\nSigned-off-by: Miao Li <miao.li@intel.com>\nReviewed-by: Chenbo Xia <chenbo.xia@intel.com>\nAcked-by: David Hunt <david.hunt@intel.com>\n---\n doc/guides/rel_notes/release_21_11.rst |  4 +++\n drivers/net/vhost/rte_eth_vhost.c      | 40 ++++++++++++++++++++++++++\n 2 files changed, 44 insertions(+)",
    "diff": "diff --git a/doc/guides/rel_notes/release_21_11.rst b/doc/guides/rel_notes/release_21_11.rst\nindex 4cbf82e38e..d60854b7ca 100644\n--- a/doc/guides/rel_notes/release_21_11.rst\n+++ b/doc/guides/rel_notes/release_21_11.rst\n@@ -201,6 +201,10 @@ New Features\n \n   Added an API to support power monitor in vhost library.\n \n+* **Updated vhost PMD.**\n+\n+  Add power monitor support in vhost PMD.\n+\n * **Updated virtio PMD.**\n \n   Add power monitor support in virtio PMD.\ndiff --git a/drivers/net/vhost/rte_eth_vhost.c b/drivers/net/vhost/rte_eth_vhost.c\nindex beb4b8de2d..55bc92664f 100644\n--- a/drivers/net/vhost/rte_eth_vhost.c\n+++ b/drivers/net/vhost/rte_eth_vhost.c\n@@ -1380,6 +1380,45 @@ eth_rx_queue_count(void *rx_queue)\n \treturn rte_vhost_rx_queue_count(vq->vid, vq->virtqueue_id);\n }\n \n+#define CLB_VAL_IDX 0\n+#define CLB_MSK_IDX 1\n+#define CLB_MATCH_IDX 2\n+static int\n+vhost_monitor_callback(const uint64_t value,\n+\t\tconst uint64_t opaque[RTE_POWER_MONITOR_OPAQUE_SZ])\n+{\n+\tconst uint64_t m = opaque[CLB_MSK_IDX];\n+\tconst uint64_t v = opaque[CLB_VAL_IDX];\n+\tconst uint64_t c = opaque[CLB_MATCH_IDX];\n+\n+\tif (c)\n+\t\treturn (value & m) == v ? -1 : 0;\n+\telse\n+\t\treturn (value & m) == v ? 0 : -1;\n+}\n+\n+static int\n+vhost_get_monitor_addr(void *rx_queue, struct rte_power_monitor_cond *pmc)\n+{\n+\tstruct vhost_queue *vq = rx_queue;\n+\tstruct rte_vhost_power_monitor_cond vhost_pmc;\n+\tint ret;\n+\tif (vq == NULL)\n+\t\treturn -EINVAL;\n+\tret = rte_vhost_get_monitor_addr(vq->vid, vq->virtqueue_id,\n+\t\t\t&vhost_pmc);\n+\tif (ret < 0)\n+\t\treturn -EINVAL;\n+\tpmc->addr = vhost_pmc.addr;\n+\tpmc->opaque[CLB_VAL_IDX] = vhost_pmc.val;\n+\tpmc->opaque[CLB_MSK_IDX] = vhost_pmc.mask;\n+\tpmc->opaque[CLB_MATCH_IDX] = vhost_pmc.match;\n+\tpmc->size = vhost_pmc.size;\n+\tpmc->fn = vhost_monitor_callback;\n+\n+\treturn 0;\n+}\n+\n static const struct eth_dev_ops ops = {\n \t.dev_start = eth_dev_start,\n \t.dev_stop = eth_dev_stop,\n@@ -1399,6 +1438,7 @@ static const struct eth_dev_ops ops = {\n \t.xstats_get_names = vhost_dev_xstats_get_names,\n \t.rx_queue_intr_enable = eth_rxq_intr_enable,\n \t.rx_queue_intr_disable = eth_rxq_intr_disable,\n+\t.get_monitor_addr = vhost_get_monitor_addr,\n };\n \n static int\n",
    "prefixes": [
        "v8",
        "3/5"
    ]
}