Show a cover letter.

GET /api/covers/80813/?format=api
HTTP 200 OK
Allow: GET, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 80813,
    "url": "http://patches.dpdk.org/api/covers/80813/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/1602724067-390536-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": "<1602724067-390536-1-git-send-email-suanmingm@nvidia.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1602724067-390536-1-git-send-email-suanmingm@nvidia.com",
    "date": "2020-10-15T01:07:45",
    "name": "[v5,0/2] ethdev: make rte_flow API thread safe",
    "submitter": {
        "id": 1887,
        "url": "http://patches.dpdk.org/api/people/1887/?format=api",
        "name": "Suanming Mou",
        "email": "suanmingm@nvidia.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/1602724067-390536-1-git-send-email-suanmingm@nvidia.com/mbox/",
    "series": [
        {
            "id": 12980,
            "url": "http://patches.dpdk.org/api/series/12980/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=12980",
            "date": "2020-10-15T01:07:45",
            "name": "ethdev: make rte_flow API thread safe",
            "version": 5,
            "mbox": "http://patches.dpdk.org/series/12980/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/80813/comments/",
    "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 5E4F7A04DB;\n\tThu, 15 Oct 2020 03:07:59 +0200 (CEST)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id A7D211DB4F;\n\tThu, 15 Oct 2020 03:07:57 +0200 (CEST)",
            "from mellanox.co.il (mail-il-dmz.mellanox.com [193.47.165.129])\n by dpdk.org (Postfix) with ESMTP id 6242D1DB4D\n for <dev@dpdk.org>; Thu, 15 Oct 2020 03:07:55 +0200 (CEST)",
            "from Internal Mail-Server by MTLPINE1 (envelope-from\n suanmingm@nvidia.com) with SMTP; 15 Oct 2020 04:07:53 +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 09F17qNr027350;\n Thu, 15 Oct 2020 04:07:52 +0300"
        ],
        "From": "Suanming Mou <suanmingm@nvidia.com>",
        "To": "",
        "Cc": "dev@dpdk.org, thomas@monjalon.net",
        "Date": "Thu, 15 Oct 2020 09:07:45 +0800",
        "Message-Id": "<1602724067-390536-1-git-send-email-suanmingm@nvidia.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "In-Reply-To": "<1601194817-208834-1-git-send-email-suanmingm@nvidia.com>",
        "References": "<1601194817-208834-1-git-send-email-suanmingm@nvidia.com>",
        "Subject": "[dpdk-dev] [PATCH v5 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 safe.\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 safe not guaranteed for the rte_flow\nfunctions also limits the applications' expectation.\n\nThis feature is going to change the rte_flow functions to be thread\nsafe. As different PMDs have different flow operations, some may\nsupport thread safe 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 safe.\n\nFor the PMDs which don't want the default mutex lock, just set the\nflag in the PMD, and add the prefer 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. For the standard posix\npthread_mutex, if no lock contention with the added rte_flow level\nmutex, the mutex only does the atomic increasing in\npthread_mutex_lock() and decreasing in\npthread_mutex_unlock(). No futex() syscall will be involved.\n\n\nSuanming Mou (2):\n  eal/windows: add pthread mutex lock\n  ethdev: make rte_flow API thread safe\n\n---\n\nv5:\n - Update ethdev patch commnets, doc and release notes.\n - Update fts_mutex -> flow_ops_mutex.\n - Remove PTHREAD_MUTEX_INITIALIZER for windows added in v4.\n\nv4:\n - Add PTHREAD_MUTEX_INITIALIZER for windows pthread mutex.\n - Change RTE_ETH_DEV_FLOW_OPS_THREAD_SAFE to 0x0001, since\n   RTE_ETH_DEV_CLOSE_REMOVE has been removed.\n - Update small comments.\n - Update release notes.\n\nv3:\n - Update flow_lock/unlock -> fts_enter/exit.\n\nv2:\n - Using critical section for windows pthread mutex.\n - Update ethdev commnets.\n\n---\n\n doc/guides/prog_guide/rte_flow.rst       | 12 +++--\n doc/guides/rel_notes/release_20_11.rst   |  6 +++\n lib/librte_eal/windows/include/pthread.h | 33 +++++++++++++\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, 120 insertions(+), 23 deletions(-)"
}