Show a cover letter.

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

{
    "id": 98503,
    "url": "http://patchwork.dpdk.org/api/covers/98503/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/cover/20210909231312.2572006-1-honnappa.nagarahalli@arm.com/",
    "project": {
        "id": 1,
        "url": "http://patchwork.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": "<20210909231312.2572006-1-honnappa.nagarahalli@arm.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210909231312.2572006-1-honnappa.nagarahalli@arm.com",
    "date": "2021-09-09T23:13:06",
    "name": "[v2,0/6] Use correct memory ordering in eal functions",
    "submitter": {
        "id": 1045,
        "url": "http://patchwork.dpdk.org/api/people/1045/?format=api",
        "name": "Honnappa Nagarahalli",
        "email": "honnappa.nagarahalli@arm.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/cover/20210909231312.2572006-1-honnappa.nagarahalli@arm.com/mbox/",
    "series": [
        {
            "id": 18807,
            "url": "http://patchwork.dpdk.org/api/series/18807/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=18807",
            "date": "2021-09-09T23:13:06",
            "name": "Use correct memory ordering in eal functions",
            "version": 2,
            "mbox": "http://patchwork.dpdk.org/series/18807/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/covers/98503/comments/",
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@inbox.dpdk.org",
        "Delivered-To": "patchwork@inbox.dpdk.org",
        "Received": [
            "from mails.dpdk.org (mails.dpdk.org [217.70.189.124])\n\tby inbox.dpdk.org (Postfix) with ESMTP id 036C2A0547;\n\tFri, 10 Sep 2021 01:13:33 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 853104003F;\n\tFri, 10 Sep 2021 01:13:33 +0200 (CEST)",
            "from foss.arm.com (foss.arm.com [217.140.110.172])\n by mails.dpdk.org (Postfix) with ESMTP id 9A5E64003E\n for <dev@dpdk.org>; Fri, 10 Sep 2021 01:13:32 +0200 (CEST)",
            "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 D6D1931B;\n Thu,  9 Sep 2021 16:13:31 -0700 (PDT)",
            "from 2p2660v4-1.austin.arm.com (2p2660v4-1.austin.arm.com\n [10.118.13.211])\n by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPSA id CF0853F73D;\n Thu,  9 Sep 2021 16:13:31 -0700 (PDT)"
        ],
        "From": "Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>",
        "To": "dev@dpdk.org, honnappa.nagarahalli@arm.com, konstantin.ananyev@intel.com,\n david.marchand@redhat.com, feifei.wang2@arm.com",
        "Cc": "ruifeng.wang@arm.com,\n\tnd@arm.com",
        "Date": "Thu,  9 Sep 2021 18:13:06 -0500",
        "Message-Id": "<20210909231312.2572006-1-honnappa.nagarahalli@arm.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "In-Reply-To": "<20210224212018.17576-1-honnappa.nagarahalli@arm.com>",
        "References": "<20210224212018.17576-1-honnappa.nagarahalli@arm.com>",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH v2 0/6] Use correct memory ordering in eal\n functions",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.29",
        "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": "rte_eal_remote_launch and rte_eal_wait_lcore need to provide\ncorrect memory ordering to address the data communication from\nmain core to worker core.\n\nThere are 2 use cases:\n1) All the store operations (meant for worker) by main core\nshould be visible to worker core before the worker core runs the\nassigned function\n\n2) All the store operations by the worker core should be visible\nto the main core after rte_eal_wait_lcore returns.\n\nFor the main to worker communication, the pointer to function\nto execute is used as the guard variable. Hence, resetting of\nthe function pointer is important.\n\nFor the worker to main communication, the existing code uses the\nlcore state as the guard variable. However, the state is also\nmodified by the main (where it sets the state to FINISHED) which\nbreaks the reader-writer semantics. It looks like the FINISHED\nstate is not really required. Hence the FINISHED state\nis removed before using the state as the guard variable.\n\n(For the data that needs to be communicated to the worker after\nthe rte_eal_remote_launch returns, load-acquire and store-release\nsemantics should be used)\n\nv2:\n1) Added documentation changes\n2) Changed rte_eal_wait_lcore API definition to reflect\n   the removal of FINISHED state.\n\nHonnappa Nagarahalli (6):\n  eal: reset lcore function pointer and argument\n  eal: ensure memory operations are visible to worker\n  eal: lcore state FINISHED is not required\n  eal: update rte_eal_wait_lcore definition\n  eal: ensure memory operations are visible to main\n  test/ring: use relaxed barriers for ring stress test\n\n app/test/test_ring_stress_impl.h              | 18 +++----\n drivers/event/dpaa2/dpaa2_eventdev_selftest.c |  2 +-\n drivers/event/octeontx/ssovf_evdev_selftest.c |  2 +-\n drivers/event/sw/sw_evdev_selftest.c          |  4 +-\n examples/l2fwd-keepalive/main.c               |  3 +-\n lib/eal/common/eal_common_launch.c            | 13 ++---\n lib/eal/freebsd/eal_thread.c                  | 45 +++++++++++++----\n lib/eal/include/rte_launch.h                  | 21 ++++----\n lib/eal/include/rte_service.h                 |  4 +-\n lib/eal/linux/eal_thread.c                    | 48 +++++++++++++------\n lib/eal/windows/eal_thread.c                  | 48 +++++++++++++------\n 11 files changed, 132 insertions(+), 76 deletions(-)"
}