get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

GET /api/patches/131183/?format=api
HTTP 200 OK
Allow: GET, PUT, PATCH, HEAD, OPTIONS
Content-Type: application/json
Vary: Accept

{
    "id": 131183,
    "url": "http://patchwork.dpdk.org/api/patches/131183/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20230906023100.3618303-1-jieqiang.wang@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": "<20230906023100.3618303-1-jieqiang.wang@arm.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20230906023100.3618303-1-jieqiang.wang@arm.com",
    "date": "2023-09-06T02:31:00",
    "name": "hash: fix SSE comparison",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "139bf7dbdf2390a16d3388adab14f17133e24db7",
    "submitter": {
        "id": 3129,
        "url": "http://patchwork.dpdk.org/api/people/3129/?format=api",
        "name": "Jieqiang Wang",
        "email": "jieqiang.wang@arm.com"
    },
    "delegate": {
        "id": 24651,
        "url": "http://patchwork.dpdk.org/api/users/24651/?format=api",
        "username": "dmarchand",
        "first_name": "David",
        "last_name": "Marchand",
        "email": "david.marchand@redhat.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20230906023100.3618303-1-jieqiang.wang@arm.com/mbox/",
    "series": [
        {
            "id": 29431,
            "url": "http://patchwork.dpdk.org/api/series/29431/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=29431",
            "date": "2023-09-06T02:31:00",
            "name": "hash: fix SSE comparison",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/29431/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/131183/comments/",
    "check": "success",
    "checks": "http://patchwork.dpdk.org/api/patches/131183/checks/",
    "tags": {},
    "related": [],
    "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 529FD42504;\n\tWed,  6 Sep 2023 04:31:23 +0200 (CEST)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id D7A80406B7;\n\tWed,  6 Sep 2023 04:31:22 +0200 (CEST)",
            "from foss.arm.com (foss.arm.com [217.140.110.172])\n by mails.dpdk.org (Postfix) with ESMTP id 17A3A4029E;\n Wed,  6 Sep 2023 04:31:21 +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 63E0111FB;\n Tue,  5 Sep 2023 19:31:58 -0700 (PDT)",
            "from net-x86-dell-8268.shanghai.arm.com\n (net-x86-dell-8268.shanghai.arm.com [10.169.210.116])\n by usa-sjc-imap-foss1.foss.arm.com (Postfix) with ESMTPA id 903893F64C;\n Tue,  5 Sep 2023 19:31:16 -0700 (PDT)"
        ],
        "From": "Jieqiang Wang <jieqiang.wang@arm.com>",
        "To": "Yipeng Wang <yipeng1.wang@intel.com>,\n Sameh Gobriel <sameh.gobriel@intel.com>,\n Bruce Richardson <bruce.richardson@intel.com>,\n Vladimir Medvedkin <vladimir.medvedkin@intel.com>,\n Honnappa Nagarahalli <honnappa.nagarahalli@arm.com>,\n Dharmik Thakkar <dharmik.thakkar@arm.com>",
        "Cc": "dev@dpdk.org, nd@arm.com, Jieqiang Wang <jieqiang.wang@arm.com>,\n stable@dpdk.org, Feifei Wang <feifei.wang2@arm.com>,\n Ruifeng Wang <ruifeng.wang@arm.com>",
        "Subject": "[PATCH] hash: fix SSE comparison",
        "Date": "Wed,  6 Sep 2023 10:31:00 +0800",
        "Message-Id": "<20230906023100.3618303-1-jieqiang.wang@arm.com>",
        "X-Mailer": "git-send-email 2.25.1",
        "MIME-Version": "1.0",
        "Content-Transfer-Encoding": "8bit",
        "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": "__mm_cmpeq_epi16 returns 0xFFFF if the corresponding 16-bit elements are\nequal. In original SSE2 implementation for function compare_signatures,\nit utilizes _mm_movemask_epi8 to create mask from the MSB of each 8-bit\nelement, while we should only care about the MSB of lower 8-bit in each\n16-bit element.\nFor example, if the comparison result is all equal, SSE2 path returns\n0xFFFF while NEON and default scalar path return 0x5555.\nAlthough this bug is not causing any negative effects since the caller\nfunction solely examines the trailing zeros of each match mask, we\nrecommend this fix to ensure consistency with NEON and default scalar\ncode behaviors.\n\nFixes: c7d93df552c2 (\"hash: use partial-key hashing\")\nCc: yipeng1.wang@intel.com\nCc: stable@dpdk.org\n\nSigned-off-by: Feifei Wang <feifei.wang2@arm.com>\nSigned-off-by: Jieqiang Wang <jieqiang.wang@arm.com>\nReviewed-by: Ruifeng Wang <ruifeng.wang@arm.com>\n---\n lib/hash/rte_cuckoo_hash.c | 16 +++++++++-------\n 1 file changed, 9 insertions(+), 7 deletions(-)",
    "diff": "diff --git a/lib/hash/rte_cuckoo_hash.c b/lib/hash/rte_cuckoo_hash.c\nindex d92a903bb3..acaa8b74bd 100644\n--- a/lib/hash/rte_cuckoo_hash.c\n+++ b/lib/hash/rte_cuckoo_hash.c\n@@ -1862,17 +1862,19 @@ compare_signatures(uint32_t *prim_hash_matches, uint32_t *sec_hash_matches,\n \t/* For match mask the first bit of every two bits indicates the match */\n \tswitch (sig_cmp_fn) {\n #if defined(__SSE2__)\n-\tcase RTE_HASH_COMPARE_SSE:\n+\tcase RTE_HASH_COMPARE_SSE: {\n \t\t/* Compare all signatures in the bucket */\n-\t\t*prim_hash_matches = _mm_movemask_epi8(_mm_cmpeq_epi16(\n-\t\t\t\t_mm_load_si128(\n+\t\t__m128i shift_mask = _mm_set1_epi16(0x0080);\n+\t\t__m128i prim_cmp = _mm_cmpeq_epi16(_mm_load_si128(\n \t\t\t\t\t(__m128i const *)prim_bkt->sig_current),\n-\t\t\t\t_mm_set1_epi16(sig)));\n+\t\t\t\t\t_mm_set1_epi16(sig));\n+\t\t*prim_hash_matches = _mm_movemask_epi8(_mm_and_si128(prim_cmp, shift_mask));\n \t\t/* Compare all signatures in the bucket */\n-\t\t*sec_hash_matches = _mm_movemask_epi8(_mm_cmpeq_epi16(\n-\t\t\t\t_mm_load_si128(\n+\t\t__m128i sec_cmp = _mm_cmpeq_epi16(_mm_load_si128(\n \t\t\t\t\t(__m128i const *)sec_bkt->sig_current),\n-\t\t\t\t_mm_set1_epi16(sig)));\n+\t\t\t\t\t_mm_set1_epi16(sig));\n+\t\t*sec_hash_matches = _mm_movemask_epi8(_mm_and_si128(sec_cmp, shift_mask));\n+\t\t}\n \t\tbreak;\n #elif defined(__ARM_NEON)\n \tcase RTE_HASH_COMPARE_NEON: {\n",
    "prefixes": []
}