get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 78912,
    "url": "http://patches.dpdk.org/api/patches/78912/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/patch/1601194817-208834-1-git-send-email-suanmingm@nvidia.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": "<1601194817-208834-1-git-send-email-suanmingm@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1601194817-208834-1-git-send-email-suanmingm@nvidia.com",
    "date": "2020-09-27T08:20:15",
    "name": "[0/2] ethdev: make rte flow API thread safe",
    "commit_ref": null,
    "pull_url": null,
    "state": null,
    "archived": false,
    "hash": null,
    "submitter": {
        "id": 1887,
        "url": "http://patches.dpdk.org/api/people/1887/?format=api",
        "name": "Suanming Mou",
        "email": "suanmingm@nvidia.com"
    },
    "delegate": null,
    "mbox": "http://patches.dpdk.org/project/dpdk/patch/1601194817-208834-1-git-send-email-suanmingm@nvidia.com/mbox/",
    "series": [],
    "comments": "http://patches.dpdk.org/api/patches/78912/comments/",
    "check": "pending",
    "checks": "http://patches.dpdk.org/api/patches/78912/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 85F67A04BC;\n\tSun, 27 Sep 2020 10:20:38 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id F01241D8EA;\n\tSun, 27 Sep 2020 10:20:35 +0200 (CEST)",
            "from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129])\n by dpdk.org (Postfix) with ESMTP id 9A5DE1D8E8\n for <dev@dpdk.org>; Sun, 27 Sep 2020 10:20:33 +0200 (CEST)",
            "from Internal Mail-Server by MTLPINE1 (envelope-from\n suanmingm@nvidia.com) with SMTP; 27 Sep 2020 11:20:27 +0300",
            "from nvidia.com (mtbc-r640-04.mtbc.labs.mlnx [10.75.70.9])\n by labmailer.mlnx (8.13.8/8.13.8) with ESMTP id 08R8KQ1Q027083\n for <dev@dpdk.org>; Sun, 27 Sep 2020 11:20:27 +0300"
        ],
        "From": "Suanming Mou <suanmingm@nvidia.com>",
        "To": "",
        "Cc": "dev@dpdk.org",
        "Date": "Sun, 27 Sep 2020 16:20:15 +0800",
        "Message-Id": "<1601194817-208834-1-git-send-email-suanmingm@nvidia.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "Subject": "[dpdk-dev] [PATCH 0/2] ethdev: make rte flow API thread safe",
        "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, the rte flow functions are not defined as thread safety.\nDPDK applications either call the functions in single thread or add\nlocks around the functions for the critical section.\n\nFor PMDs support the flow operations thread safe natively, the\nredundant protection in application hurts the performance of the\nrte flow operation functions.\n\nAnd the restriction of thread safety not guaranteed for the rte\nflow functions also limits the applications' expectation.\n\nThis feature is going to change the rte flow functions to be thread\nsafety. As different PMDs have different flow operations, some may\nsupport thread safety already and others may not. For PMDs don't\nsupport flow thread safe operation, a new lock is defined in ethdev\nin order to protects thread unsafe PMDs from rte flow level.\n\nA new RTE_ETH_DEV_FLOW_OPS_THREAD_SAFE device flag is added to\ndetermine whether the PMD supports thread safe flow operation or not.\nFor PMDs support thread safe flow operations, set the\nRTE_ETH_DEV_FLOW_OPS_THREAD_SAFE flag, rte flow level functions will\nskip the thread safe helper lock for these PMDs. Again the rte flow\nlevel thread safe lock only works when PMD operation functions are\nnot thread safety.\n\nFor the PMDs which don't want the default mutex lock, just set the\nflag in the PMD, and add the perfer type of lock in the PMD. Then\nthe default mutex lock is easily replaced by the PMD level lock.\n\nThe change has no effect on the current DPDK applications. No change\nis required for the current DPDK applications. If no lock contention\nwith the added rte flow level mutex, the mutex only does the atomic\nincreasing in pthread_mutex_lock() and decreasing in\npthread_mutex_unlock(). No futex() syscall will be involved.\n\nSuanming Mou (2):\n  eal/windows: add pthread mutex lock\n  ethdev: make rte flow API thread safe\n\n doc/guides/prog_guide/rte_flow.rst       |  7 ++-\n drivers/net/mlx5/linux/mlx5_os.c         |  2 +\n lib/librte_eal/windows/include/pthread.h | 46 +++++++++++++++++\n lib/librte_ethdev/rte_ethdev.c           |  2 +\n lib/librte_ethdev/rte_ethdev.h           |  2 +\n lib/librte_ethdev/rte_ethdev_core.h      |  4 ++\n lib/librte_ethdev/rte_flow.c             | 84 ++++++++++++++++++++++++--------\n 7 files changed, 124 insertions(+), 23 deletions(-)",
    "diff": null,
    "prefixes": [
        "0/2"
    ]
}