Show a cover letter.

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

{
    "id": 66562,
    "url": "http://patches.dpdk.org/api/covers/66562/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/1583999071-22872-1-git-send-email-phil.yang@arm.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": "<1583999071-22872-1-git-send-email-phil.yang@arm.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1583999071-22872-1-git-send-email-phil.yang@arm.com",
    "date": "2020-03-12T07:44:21",
    "name": "[v2,00/10] generic rte atomic APIs deprecate proposal",
    "submitter": {
        "id": 833,
        "url": "http://patches.dpdk.org/api/people/833/?format=api",
        "name": "Phil Yang",
        "email": "phil.yang@arm.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/1583999071-22872-1-git-send-email-phil.yang@arm.com/mbox/",
    "series": [
        {
            "id": 8891,
            "url": "http://patches.dpdk.org/api/series/8891/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=8891",
            "date": "2020-03-12T07:44:21",
            "name": "generic rte atomic APIs deprecate proposal",
            "version": 2,
            "mbox": "http://patches.dpdk.org/series/8891/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/66562/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 DD401A0569;\n\tThu, 12 Mar 2020 08:45:30 +0100 (CET)",
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 390371BFA5;\n\tThu, 12 Mar 2020 08:45:30 +0100 (CET)",
            "from foss.arm.com (foss.arm.com [217.140.110.172])\n by dpdk.org (Postfix) with ESMTP id 9B8E3FEB\n for <dev@dpdk.org>; Thu, 12 Mar 2020 08:45:28 +0100 (CET)",
            "from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])\n by usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id D67EF30E;\n Thu, 12 Mar 2020 00:45:27 -0700 (PDT)",
            "from phil-VirtualBox.shanghai.arm.com\n (phil-VirtualBox.shanghai.arm.com [10.169.109.150])\n by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 3263C3F534;\n Thu, 12 Mar 2020 00:45:23 -0700 (PDT)"
        ],
        "From": "Phil Yang <phil.yang@arm.com>",
        "To": "thomas@monjalon.net, harry.van.haaren@intel.com,\n konstantin.ananyev@intel.com, stephen@networkplumber.org,\n maxime.coquelin@redhat.com, dev@dpdk.org",
        "Cc": "david.marchand@redhat.com, jerinj@marvell.com, hemant.agrawal@nxp.com,\n Honnappa.Nagarahalli@arm.com, gavin.hu@arm.com, ruifeng.wang@arm.com,\n joyce.kong@arm.com, nd@arm.com",
        "Date": "Thu, 12 Mar 2020 15:44:21 +0800",
        "Message-Id": "<1583999071-22872-1-git-send-email-phil.yang@arm.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1583862551-2049-1-git-send-email-phil.yang@arm.com>",
        "References": "<1583862551-2049-1-git-send-email-phil.yang@arm.com>",
        "Subject": "[dpdk-dev] [PATCH v2 00/10] generic rte atomic APIs deprecate\n\tproposal",
        "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": "DPDK provides generic rte_atomic APIs to do several atomic operations.\nThese APIs are using the deprecated __sync built-ins and enforce full\nmemory barriers on aarch64. However, full barriers are not necessary\nin many use cases. In order to address such use cases, C language offers\nC11 atomic APIs. The C11 atomic APIs provide finer memory barrier control\nby making use of the memory ordering parameter provided by the user.\nVarious patches submitted in the past [1] and the patches in this series\nindicate significant performance gains on multiple aarch64 CPUs and no\nperformance loss on x86.\n\nBut the existing rte_atomic API implementations cannot be changed as the\nAPIs do not take the memory ordering parameter. The only choice available\nis replacing the usage of the rte_atomic APIs with C11 atomic APIs. In\norder to make this change, the following steps are proposed:\n\n[1] deprecate rte_atomic APIs so that future patches do not use rte_atomic\nAPIs (a script is added to flag the usages).\n[2] refactor the code that uses rte_atomic APIs to use c11 atomic APIs.\n\nThis patchset contains:\n1) the checkpatch script changes to flag rte_atomic API usage in patches.\n2) changes to programmer guide describing writing efficient code for aarch64.\n3) changes to various libraries to make use of c11 atomic APIs.\n\nWe are planning to replicate this idea across all the other libraries,\ndrivers, examples, test applications. In the next phase, we will add\nchanges to the mbuf, the EAL interrupts and the event timer adapter libraries.\n\nv2:\n1. fix Clang '-Wincompatible-pointer-types' WARNING.\n2. fix typos.\n\nHonnappa Nagarahalli (2):\n  service: avoid race condition for MT unsafe service\n  service: identify service running on another core correctly\n\nPhil Yang (8):\n  doc: add generic atomic deprecation section\n  devtools: prevent use of rte atomic APIs in future patches\n  vhost: optimize broadcast rarp sync with c11 atomic\n  ipsec: optimize with c11 atomic for sa outbound sqn update\n  service: remove rte prefix from static functions\n  service: remove redundant code\n  service: optimize with c11 one-way barrier\n  service: relax barriers with C11 atomic operations\n\n devtools/checkpatches.sh                         |   9 ++\n doc/guides/prog_guide/writing_efficient_code.rst |  60 +++++++-\n lib/librte_eal/common/rte_service.c              | 175 ++++++++++++-----------\n lib/librte_ipsec/ipsec_sqn.h                     |   3 +-\n lib/librte_ipsec/sa.h                            |   2 +-\n lib/librte_vhost/vhost.h                         |   2 +-\n lib/librte_vhost/vhost_user.c                    |   7 +-\n lib/librte_vhost/virtio_net.c                    |  16 ++-\n 8 files changed, 175 insertions(+), 99 deletions(-)"
}