get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 66478,
    "url": "https://patches.dpdk.org/api/patches/66478/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20200310050003.16728-1-oda@valinux.co.jp/",
    "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": "<20200310050003.16728-1-oda@valinux.co.jp>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20200310050003.16728-1-oda@valinux.co.jp",
    "date": "2020-03-10T05:00:03",
    "name": "vhost: make iotlb cache name unique among multi processes",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "0a9735be543f90353effb068b2716effe28665ba",
    "submitter": {
        "id": 1558,
        "url": "https://patches.dpdk.org/api/people/1558/?format=api",
        "name": "Itsuro Oda",
        "email": "oda@valinux.co.jp"
    },
    "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/20200310050003.16728-1-oda@valinux.co.jp/mbox/",
    "series": [
        {
            "id": 8857,
            "url": "https://patches.dpdk.org/api/series/8857/?format=api",
            "web_url": "https://patches.dpdk.org/project/dpdk/list/?series=8857",
            "date": "2020-03-10T05:00:03",
            "name": "vhost: make iotlb cache name unique among multi processes",
            "version": 1,
            "mbox": "https://patches.dpdk.org/series/8857/mbox/"
        }
    ],
    "comments": "https://patches.dpdk.org/api/patches/66478/comments/",
    "check": "success",
    "checks": "https://patches.dpdk.org/api/patches/66478/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 dpdk.org (dpdk.org [92.243.14.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 328EAA0563;\n\tTue, 10 Mar 2020 06:00:25 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 5420B1BF7F;\n\tTue, 10 Mar 2020 06:00:24 +0100 (CET)",
            "from valinux.co.jp (vagw.valinux.co.jp [210.128.90.14])\n by dpdk.org (Postfix) with ESMTP id EECB62E81;\n Tue, 10 Mar 2020 06:00:22 +0100 (CET)",
            "by valinux.co.jp (Postfix, from userid 1000)\n id 6C075240A70; Tue, 10 Mar 2020 14:00:21 +0900 (JST)"
        ],
        "From": "Itsuro Oda <oda@valinux.co.jp>",
        "To": "dev@dpdk.org, maxime.coquelin@redhat.com, zhihong.wang@intel.com,\n xiaolong.ye@intel.com",
        "Cc": "Itsuro Oda <oda@valinux.co.jp>,\n\tstable@dpdk.org",
        "Date": "Tue, 10 Mar 2020 14:00:03 +0900",
        "Message-Id": "<20200310050003.16728-1-oda@valinux.co.jp>",
        "X-Mailer": "git-send-email 2.17.1",
        "Subject": "[dpdk-dev] [PATCH] vhost: make iotlb cache name unique among multi\n\tprocesses",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "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": "Currently, iotlb cache name is comprised of vid and virtqueue\nindex. For example, \"iotlb_cache_0_0\". Because vid is assigned\nper process, iotlb cache name is not unique among multi processes.\nFor example a secondary process uses a vhost\n(ex. eth_vhost0,iface=/tmp/sock0) and another secondary process\nuses a vhost (ex. eth_vhost1,iface=/tmp/sock1), iotlb cache\nname of both vhost (\"iotlb_cache_0_0\") are same and as a result\niotlb cache is broken.\n\nThis patch makes iotlb cache name unique among milti processes\nby using the interface name not vid to comprise iotlb cache name.\nSince the length of interface name is variable, this patch uses\nhash value calculated by the interface name.\n\nFixes: d012d1f293f4 (vhost: add IOTLB helper functions)\nCc: stable@dpdk.org\n\nSigned-off-by: Itsuro Oda <oda@valinux.co.jp>\n---\n lib/librte_vhost/iotlb.c | 8 ++++++--\n 1 file changed, 6 insertions(+), 2 deletions(-)",
    "diff": "diff --git a/lib/librte_vhost/iotlb.c b/lib/librte_vhost/iotlb.c\nindex bc1758528..0992c145b 100644\n--- a/lib/librte_vhost/iotlb.c\n+++ b/lib/librte_vhost/iotlb.c\n@@ -6,6 +6,7 @@\n #include <numaif.h>\n #endif\n \n+#include <rte_jhash.h>\n #include <rte_tailq.h>\n \n #include \"iotlb.h\"\n@@ -288,6 +289,7 @@ vhost_user_iotlb_init(struct virtio_net *dev, int vq_index)\n \tchar pool_name[RTE_MEMPOOL_NAMESIZE];\n \tstruct vhost_virtqueue *vq = dev->virtqueue[vq_index];\n \tint socket = 0;\n+\tuint32_t val;\n \n \tif (vq->iotlb_pool) {\n \t\t/*\n@@ -308,8 +310,10 @@ vhost_user_iotlb_init(struct virtio_net *dev, int vq_index)\n \tTAILQ_INIT(&vq->iotlb_list);\n \tTAILQ_INIT(&vq->iotlb_pending_list);\n \n-\tsnprintf(pool_name, sizeof(pool_name), \"iotlb_cache_%d_%d\",\n-\t\t\tdev->vid, vq_index);\n+\tval = rte_jhash(dev->ifname, strlen(dev->ifname), 0);\n+\tsnprintf(pool_name, sizeof(pool_name), \"iotlb_cache_%08x_%d\",\n+\t\t\tval, vq_index);\n+\tVHOST_LOG_CONFIG(DEBUG, \"IOTLB cache name: %s\\n\", pool_name);\n \n \t/* If already created, free it and recreate */\n \tvq->iotlb_pool = rte_mempool_lookup(pool_name);\n",
    "prefixes": []
}