Show a cover letter.

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

{
    "id": 126040,
    "url": "http://patches.dpdk.org/api/covers/126040/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/1681421163-18578-1-git-send-email-roretzla@linux.microsoft.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": "<1681421163-18578-1-git-send-email-roretzla@linux.microsoft.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/1681421163-18578-1-git-send-email-roretzla@linux.microsoft.com",
    "date": "2023-04-13T21:25:49",
    "name": "[v5,00/14] msvc integration changes",
    "submitter": {
        "id": 2077,
        "url": "http://patches.dpdk.org/api/people/2077/?format=api",
        "name": "Tyler Retzlaff",
        "email": "roretzla@linux.microsoft.com"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/1681421163-18578-1-git-send-email-roretzla@linux.microsoft.com/mbox/",
    "series": [
        {
            "id": 27699,
            "url": "http://patches.dpdk.org/api/series/27699/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=27699",
            "date": "2023-04-13T21:25:51",
            "name": "msvc integration changes",
            "version": 5,
            "mbox": "http://patches.dpdk.org/series/27699/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/126040/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 9761642937;\n\tThu, 13 Apr 2023 23:26:19 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id A66B742BB1;\n\tThu, 13 Apr 2023 23:26:09 +0200 (CEST)",
            "from linux.microsoft.com (linux.microsoft.com [13.77.154.182])\n by mails.dpdk.org (Postfix) with ESMTP id ACB5741138\n for <dev@dpdk.org>; Thu, 13 Apr 2023 23:26:05 +0200 (CEST)",
            "by linux.microsoft.com (Postfix, from userid 1086)\n id CD74F217925B; Thu, 13 Apr 2023 14:26:04 -0700 (PDT)"
        ],
        "DKIM-Filter": "OpenDKIM Filter v2.11.0 linux.microsoft.com CD74F217925B",
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.microsoft.com;\n s=default; t=1681421164;\n bh=z/DVZJz+hFrRRTgXeuxh06UR8Y8wrsQfIjNu9nSBRq0=;\n h=From:To:Cc:Subject:Date:In-Reply-To:References:From;\n b=pE3WKbDM7HizPAje7d23jDRHsnFFtX9z1n52V+DFi1iIunUbpAzPYzaFnwP6POue4\n rEogWgA4JnvBnm4/UdpV6rEn2g7Ag/vt4dSTAxNgbgLdiMzD4P62gsJfmL+zpVQ5PQ\n 4y+m6c0UPsfsQqPNmRmR+blJ33GIy0XbDHjXa/eE=",
        "From": "Tyler Retzlaff <roretzla@linux.microsoft.com>",
        "To": "dev@dpdk.org",
        "Cc": "bruce.richardson@intel.com, david.marchand@redhat.com,\n thomas@monjalon.net,\n mb@smartsharesystems.com, konstantin.ananyev@huawei.com,\n Tyler Retzlaff <roretzla@linux.microsoft.com>",
        "Subject": "[PATCH v5 00/14] msvc integration changes",
        "Date": "Thu, 13 Apr 2023 14:25:49 -0700",
        "Message-Id": "<1681421163-18578-1-git-send-email-roretzla@linux.microsoft.com>",
        "X-Mailer": "git-send-email 1.8.3.1",
        "In-Reply-To": "<1680558751-17931-1-git-send-email-roretzla@linux.microsoft.com>",
        "References": "<1680558751-17931-1-git-send-email-roretzla@linux.microsoft.com>",
        "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"
    },
    "content": "In accordance with draft plan\nhttp://mails.dpdk.org/archives/web/2023-February/002023.html\nintroduces conditionally compiled code to enable building with MSVC that\n_does not_ require C99/C11 meaning it can be integrated now.\n\nThis series covers minimal changes for item #2 in draft plan for EAL\ndependencies kvargs, telemetry and consumed EAL public headers.\n\nNote if any patch in the series requires in-depth discussion I'll\ndetach it from this series for separate submission & more focused\ndiscussion so it doesn't block the entire series.\n\nNote other \"common\" intrinsics were investigated for viability but\nwere not adopted either because they were not available on older\nversions of gcc or because they generate different code for msvc\nvs gcc.\n\nv5:\n  * remove accidental line removal in barrier patch\n  * update prefetch patch to use intrinsics for all toolchains\n  * remove x86 specific changes for byte swap patch since\n    msvc intrinsics are processor agnostic always use\n    intrinsics from generic include\n  * expand __rte_packed empty for msvc packing will be addressed\n    in a separate series\n\nv4:\n  * update rdtsc patch to use gcc intrinsics\n  * update rtm patch to use gcc intrinsics\n  * drop patch disable json print formatting, we will utilize\n    series removing VLAs from Bruce\n  * added patch using prefetch intrinsics for msvc\n  * added patch using byte swap intrinsics for msvc\n  * added patch hiding typdefs for msvc using gcc vector\n    extension\n  * added patch defining MSVC as little endian always\n\nv3:\n  * v3 does not group together conditional blocks when experimented\n    with it didn't reduce conditionals enough to make it worth\n    while. once msvc tests are at a running point i suggest\n    a narrow targeted discussion about code organization without\n    blocking this series\n  * v3 does not attempt to refactor to use intrinsics for non-msvc\n    compilers. again this should be done as a separate follow-up\n    series later if desired\n  * fix expansion of likely and unlikely macros\n  * remove unnecessary define for rte_smp_{r,w}mb it is sufficient\n    for these to be compiler barriers on x86\n  * add a new patch to use __cpuid and __cpuidex intrinsics when\n    building with msvc\n  * add a new patch to use _umonitor, _umwait and _tpause intrinsics\n    when building with msvc\n\nv2:\n  * use _mm_{l,s,m}fence intrinsics for rte_smp_{r,w,}mb macros\n    are intended to be memory barriers not compiler barriers on\n    x86_64\n\nTyler Retzlaff (14):\n  eal: use rdtsc intrinsic\n  eal: use rtm and xtest intrinsics\n  eal: use barrier intrinsics\n  eal: use cpuid and cpuidex intrinsics\n  eal: use umonitor umwait and tpause intrinsics\n  eal: use prefetch intrinsics\n  eal: use byte swap intrinsics\n  eal: typedef cpu flag enum as int\n  eal: hide GCC extension based alignment markers\n  eal: hide typedefs based on GCC vector extensions\n  eal: expand most macros to empty when using MSVC\n  eal: exclude exposure of rte atomic APIs for MSVC builds\n  telemetry: avoid expanding versioned symbol macros on MSVC\n  eal: always define MSVC as little endian\n\n config/x86/meson.build                  |  6 ++++\n lib/eal/include/generic/rte_atomic.h    | 11 ++++++++\n lib/eal/include/generic/rte_byteorder.h | 13 +++++++++\n lib/eal/include/generic/rte_cpuflags.h  | 12 ++++----\n lib/eal/include/generic/rte_vect.h      |  4 +++\n lib/eal/include/rte_branch_prediction.h |  8 ++++++\n lib/eal/include/rte_common.h            | 49 +++++++++++++++++++++++++++++++++\n lib/eal/include/rte_compat.h            | 20 ++++++++++++++\n lib/eal/x86/include/rte_atomic.h        |  8 ++++++\n lib/eal/x86/include/rte_byteorder.h     |  4 +++\n lib/eal/x86/include/rte_cycles.h        | 14 ++++++----\n lib/eal/x86/include/rte_prefetch.h      | 25 ++++++++++++++---\n lib/eal/x86/include/rte_rtm.h           | 18 ++++--------\n lib/eal/x86/rte_cpuflags.c              |  4 +++\n lib/eal/x86/rte_cpuid.h                 |  7 +++++\n lib/eal/x86/rte_cycles.c                | 36 ++++++++++++++++++++++++\n lib/eal/x86/rte_hypervisor.c            |  4 +++\n lib/eal/x86/rte_power_intrinsics.c      | 12 ++++++++\n lib/telemetry/telemetry_data.c          | 16 +++++++++++\n 19 files changed, 243 insertions(+), 28 deletions(-)"
}