Show a cover letter.

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

{
    "id": 59947,
    "url": "http://patches.dpdk.org/api/covers/59947/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/1569562904-43950-1-git-send-email-gavin.hu@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": "<1569562904-43950-1-git-send-email-gavin.hu@arm.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1569562904-43950-1-git-send-email-gavin.hu@arm.com",
    "date": "2019-09-27T05:41:37",
    "name": "[v7,0/7] use WFE for aarch64",
    "submitter": {
        "id": 1018,
        "url": "http://patches.dpdk.org/api/people/1018/?format=api",
        "name": "Gavin Hu",
        "email": "gavin.hu@arm.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/1569562904-43950-1-git-send-email-gavin.hu@arm.com/mbox/",
    "series": [
        {
            "id": 6559,
            "url": "http://patches.dpdk.org/api/series/6559/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=6559",
            "date": "2019-09-27T05:41:37",
            "name": "use WFE for aarch64",
            "version": 7,
            "mbox": "http://patches.dpdk.org/series/6559/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/59947/comments/",
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id 293641E34;\n\tFri, 27 Sep 2019 07:42:25 +0200 (CEST)",
            "from foss.arm.com (foss.arm.com [217.140.110.172])\n\tby dpdk.org (Postfix) with ESMTP id 5BE301DB9\n\tfor <dev@dpdk.org>; Fri, 27 Sep 2019 07:42:23 +0200 (CEST)",
            "from usa-sjc-imap-foss1.foss.arm.com (unknown [10.121.207.14])\n\tby usa-sjc-mx-foss1.foss.arm.com (Postfix) with ESMTP id 93D4F337;\n\tThu, 26 Sep 2019 22:42:22 -0700 (PDT)",
            "from net-arm-thunderx2-01.test.ast.arm.com\n\t(net-arm-thunderx2-01.shanghai.arm.com [10.169.40.40])\n\tby usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id\n\tEE3E93F67D; Thu, 26 Sep 2019 22:44:55 -0700 (PDT)"
        ],
        "From": "Gavin Hu <gavin.hu@arm.com>",
        "To": "dev@dpdk.org",
        "Cc": "nd@arm.com, thomas@monjalon.net, stephen@networkplumber.org,\n\themant.agrawal@nxp.com, jerinj@marvell.com, pbhagavatula@marvell.com, \n\tHonnappa.Nagarahalli@arm.com, ruifeng.wang@arm.com, phil.yang@arm.com,\n\tsteve.capper@arm.com",
        "Date": "Fri, 27 Sep 2019 13:41:37 +0800",
        "Message-Id": "<1569562904-43950-1-git-send-email-gavin.hu@arm.com>",
        "X-Mailer": "git-send-email 2.7.4",
        "In-Reply-To": "<1561911676-37718-1-git-send-email-gavin.hu@arm.com>",
        "References": "<1561911676-37718-1-git-send-email-gavin.hu@arm.com>",
        "Subject": "[dpdk-dev] [PATCH v7 0/7] use WFE for aarch64",
        "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\t<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\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "V7:\n- fix the checkpatch LONG_LINE_COMMENT issue\nV6:\n- squash the RTE_ARM_USE_WFE configuration entry patch into the new API patch\n- move the new configuration to the end of EAL\n- add doxygen comments to reflect the relaxed and acquire semantics\n- correct the meson configuration \nV5:\n- add doxygen comments for the new APIs\n- spinlock early exit without wfe if the spinlock not taken by others.\n- add two patches on top for opdl and thunderx\nV4:\n- rename the config as CONFIG_RTE_ARM_USE_WFE to indicate it applys to arm only\n- introduce a macro for assembly Skelton to reduce the duplication of code\n- add one patch for nxp fslmc to address a compiling error\nV3:\n- Convert RFCs to patches\nV2:\n- Use inline functions instead of marcos\n- Add load and compare in the beginning of the APIs\n- Fix some style errors in asm inline \nV1:\n- Add the new APIs and use it for ring and locks\n\nDPDK has multiple use cases where the core repeatedly polls a location in\nmemory. This polling results in many cache and memory transactions.\n\nArm architecture provides WFE (Wait For Event) instruction, which allows\nthe cpu core to enter a low power state until woken up by the update to the\nmemory location being polled. Thus reducing the cache and memory\ntransactions.\n\nx86 has the PAUSE hint instruction to reduce such overhead.\n\nThe rte_wait_until_equal_xxx APIs abstract the functionality of 'polling\nfor a memory location to become equal to a given value'.\n\nFor non-Arm platforms, these APIs are just wrappers around do-while loop\nwith rte_pause, so there are no performance differences.\n\nFor Arm platforms, use of WFE can be configured using CONFIG_RTE_USE_WFE\noption. It is disabled by default.\n\nCurrently, use of WFE is supported only for aarch64 platforms. armv7\nplatforms do support the WFE instruction, but they require explicit wake up\nevents(sev) and are less performannt.\n\nTesting shows that, performance varies across different platforms, with\nsome showing degradation.\n\nCONFIG_RTE_ARM_USE_WFE should be enabled depending on the performance\nbenchmarking on the target platforms. Power saving should be an bonus,\nbut currenly we don't have ways to characterize that.\n\nGavin Hu (7):\n  bus/fslmc: fix the conflicting dmb function\n  eal: add the APIs to wait until equal\n  spinlock: use wfe to reduce contention on aarch64\n  ticketlock: use new API to reduce contention on aarch64\n  ring: use wfe to wait for ring tail update on aarch64\n  net/thunderx: use new API to save cycles on aarch64\n  event/opdl: use new API to save cycles on aarch64\n\n config/arm/meson.build                             |   1 +\n config/common_base                                 |   5 +\n drivers/bus/fslmc/mc/fsl_mc_sys.h                  |  10 +-\n drivers/bus/fslmc/mc/mc_sys.c                      |   3 +-\n drivers/event/opdl/opdl_ring.c                     |   5 +-\n drivers/net/thunderx/nicvf_rxtx.c                  |   3 +-\n .../common/include/arch/arm/rte_pause_64.h         |  30 ++++++\n .../common/include/arch/arm/rte_spinlock.h         |  26 +++++\n lib/librte_eal/common/include/generic/rte_pause.h  | 106 +++++++++++++++++++++\n .../common/include/generic/rte_ticketlock.h        |   3 +-\n lib/librte_ring/rte_ring_c11_mem.h                 |   4 +-\n lib/librte_ring/rte_ring_generic.h                 |   3 +-\n 12 files changed, 183 insertions(+), 16 deletions(-)"
}