Show a cover letter.

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

{
    "id": 99276,
    "url": "http://patches.dpdk.org/api/covers/99276/?format=api",
    "web_url": "http://patches.dpdk.org/project/dpdk/cover/20210918114930.245387-1-mail@gms.tf/",
    "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": "<20210918114930.245387-1-mail@gms.tf>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20210918114930.245387-1-mail@gms.tf",
    "date": "2021-09-18T11:49:29",
    "name": "[0/1] net: fix aliasing issue in checksum computation",
    "submitter": {
        "id": 2366,
        "url": "http://patches.dpdk.org/api/people/2366/?format=api",
        "name": "Georg Sauthoff",
        "email": "mail@gms.tf"
    },
    "mbox": "http://patches.dpdk.org/project/dpdk/cover/20210918114930.245387-1-mail@gms.tf/mbox/",
    "series": [
        {
            "id": 19038,
            "url": "http://patches.dpdk.org/api/series/19038/?format=api",
            "web_url": "http://patches.dpdk.org/project/dpdk/list/?series=19038",
            "date": "2021-09-18T11:49:29",
            "name": "net: fix aliasing issue in checksum computation",
            "version": 1,
            "mbox": "http://patches.dpdk.org/series/19038/mbox/"
        }
    ],
    "comments": "http://patches.dpdk.org/api/covers/99276/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 3336FA0C45;\n\tSat, 18 Sep 2021 13:49:46 +0200 (CEST)",
            "from [217.70.189.124] (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id ACDAC40041;\n\tSat, 18 Sep 2021 13:49:45 +0200 (CEST)",
            "from turing.lru.li (turing.lru.li [49.12.115.177])\n by mails.dpdk.org (Postfix) with ESMTP id 526E34003D\n for <dev@dpdk.org>; Sat, 18 Sep 2021 13:49:44 +0200 (CEST)",
            "from dell12.lru.li (unknown\n [IPv6:2001:1a80:303a:0:faca:b8ff:fe50:d072])\n (Authenticated sender: georg)\n by turing.lru.li (Postfix) with ESMTPSA id DFA3B44B12E;\n Sat, 18 Sep 2021 11:49:43 +0000 (UTC)",
            "by dell12.lru.li (Postfix, from userid 1000)\n id 606D91A5017; Sat, 18 Sep 2021 13:49:43 +0200 (CEST)"
        ],
        "From": "Georg Sauthoff <mail@gms.tf>",
        "To": "Olivier Matz <olivier.matz@6wind.com>,\n Thomas Monjalon <thomas@monjalon.net>,\n David Marchand <david.marchand@redhat.com>",
        "Cc": "dev@dpdk.org,\n\tGeorg Sauthoff <mail@gms.tf>",
        "Date": "Sat, 18 Sep 2021 13:49:29 +0200",
        "Message-Id": "<20210918114930.245387-1-mail@gms.tf>",
        "X-Mailer": "git-send-email 2.31.1",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "Subject": "[dpdk-dev] [PATCH 0/1] net: fix aliasing issue in checksum\n computation",
        "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": "The current __rte_raw_cksum() function violates the C strict-aliasing\nrules since it uses a uint8_t pointer to access a trailing byte.\n\nThis patch also fixes a superfluous cast, i.e.:\n\n\tuintptr_t ptr = (uintptr_t)buf;\n\ttypedef uint16_t __attribute__((__may_alias__)) u16_p;\n\tconst u16_p *u16_buf = (const u16_p *)ptr;\n\nTransitive casting involving uintptr_t doesn't solve anything here.\nIt also doesn't help with fixing a strict-aliasing issue here.\n\nThe patch also simplifies the main loop, i.e. it eliminates the manually\nunrolled loop\n\n\twhile (len >= (sizeof(*u16_buf) * 4)) {\n\t\tsum += u16_buf[0];\n\t\tsum += u16_buf[1];\n\t\tsum += u16_buf[2];\n\t\tsum += u16_buf[3];\n\t\tlen -= sizeof(*u16_buf) * 4;\n\t\tu16_buf += 4;\n\t}\n\nsince modern C compilers are in a better position to decide which level of\nunrolling is optimal for the target architecture.\n\nSee also https://godbolt.org/z/6rYbYGnj7 which shows how GCC auto-vectorizes\nthe simplified loop using AVX instructions, when compiling for Haswell. When\nlooking at the number of instructions in the compiled code, the new version\nis half as big as the existing one.\n\nGeorg Sauthoff (1):\n  net: fix aliasing issue in checksum computation\n\n lib/net/rte_ip.h | 27 ++++++++-------------------\n 1 file changed, 8 insertions(+), 19 deletions(-)"
}