get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 136985,
    "url": "http://patchwork.dpdk.org/api/patches/136985/?format=api",
    "web_url": "http://patchwork.dpdk.org/project/dpdk/patch/20240221212044.27209-9-ajit.khaparde@broadcom.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": "<20240221212044.27209-9-ajit.khaparde@broadcom.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20240221212044.27209-9-ajit.khaparde@broadcom.com",
    "date": "2024-02-21T21:20:43",
    "name": "[08/10] net/bnxt: fix compressed CQE handling",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "a10bec15fa62659a3f7758510392d46b77ad6a33",
    "submitter": {
        "id": 501,
        "url": "http://patchwork.dpdk.org/api/people/501/?format=api",
        "name": "Ajit Khaparde",
        "email": "ajit.khaparde@broadcom.com"
    },
    "delegate": {
        "id": 1766,
        "url": "http://patchwork.dpdk.org/api/users/1766/?format=api",
        "username": "ajitkhaparde",
        "first_name": "Ajit",
        "last_name": "Khaparde",
        "email": "ajit.khaparde@broadcom.com"
    },
    "mbox": "http://patchwork.dpdk.org/project/dpdk/patch/20240221212044.27209-9-ajit.khaparde@broadcom.com/mbox/",
    "series": [
        {
            "id": 31173,
            "url": "http://patchwork.dpdk.org/api/series/31173/?format=api",
            "web_url": "http://patchwork.dpdk.org/project/dpdk/list/?series=31173",
            "date": "2024-02-21T21:20:35",
            "name": "patchset for bnxt",
            "version": 1,
            "mbox": "http://patchwork.dpdk.org/series/31173/mbox/"
        }
    ],
    "comments": "http://patchwork.dpdk.org/api/patches/136985/comments/",
    "check": "warning",
    "checks": "http://patchwork.dpdk.org/api/patches/136985/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 0726843B67;\n\tWed, 21 Feb 2024 22:22:07 +0100 (CET)",
            "from mails.dpdk.org (localhost [127.0.0.1])\n\tby mails.dpdk.org (Postfix) with ESMTP id 8B23240E96;\n\tWed, 21 Feb 2024 22:21:17 +0100 (CET)",
            "from mail-vs1-f50.google.com (mail-vs1-f50.google.com\n [209.85.217.50]) by mails.dpdk.org (Postfix) with ESMTP id EE6C540DDD\n for <dev@dpdk.org>; Wed, 21 Feb 2024 22:21:14 +0100 (CET)",
            "by mail-vs1-f50.google.com with SMTP id\n ada2fe7eead31-4706feb17ccso415933137.1\n for <dev@dpdk.org>; Wed, 21 Feb 2024 13:21:14 -0800 (PST)",
            "from C02GC2QQMD6T.wifi.broadcom.net ([192.19.223.252])\n by smtp.gmail.com with ESMTPSA id\n 20-20020ac84e94000000b0042bff97d9a3sm4743467qtp.40.2024.02.21.13.21.12\n (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);\n Wed, 21 Feb 2024 13:21:12 -0800 (PST)"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=broadcom.com; s=google; t=1708550474; x=1709155274; darn=dpdk.org;\n h=mime-version:references:in-reply-to:message-id:date:subject:cc:to\n :from:from:to:cc:subject:date:message-id:reply-to;\n bh=b/f+DgojdcPPYGSzzu+iXrQaYwAdbWlDIlaF/dy0VTE=;\n b=CPP5D/MysBJpVpDwdDbSTlJx06O42zL61gFvBVSjYGVDKffizYNrusMyBRszek7DHq\n sx38xfhDn/ZHC7TwjVtNg9XTuKBXmvybAkr95IPPO1L7f1bTRLdyVOQD43JRwEQiTchD\n N/g4rZ4rCkZ6ie1lIBQEtxrBvCPwAIWUPhrS4=",
        "X-Google-DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed;\n d=1e100.net; s=20230601; t=1708550474; x=1709155274;\n h=mime-version:references:in-reply-to:message-id:date:subject:cc:to\n :from:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to;\n bh=b/f+DgojdcPPYGSzzu+iXrQaYwAdbWlDIlaF/dy0VTE=;\n b=CgHldrcMQPJxwJi+wvKze/cVbq8MiIAsWPOLLtSFbZVkQ5aDzloGWmAW9aQv22fJIt\n lQ8KlG9NVCnkrOt5USpXSnAOP3B0oyDaWjOi84NF3E9pSaqZtgUHLkI4G9IpHNw+V3J9\n xV0Pc62WQjqz1YkQV/4gjADY6nCXAnSwkhcECFWR8WVhBIhsg0ISxb8ztHScV+6OUT4n\n re9WIJBjZvuvHJ9nnezBeZO2Px392aV58m1iXGYCJ4qBRPpkdczxPYMxBWWLCqA+Zmoo\n XfOhZtSkuKbbduZqxETPNNafFpuxY8/x0D3WSBN82qukDgfz5bhuyEzS4P1l0PjYcIEx\n SvnQ==",
        "X-Gm-Message-State": "AOJu0Yzu65j397ZOYDE8DrcjfUWF2XEEByn61K9+yg3qzgHFybNolDCF\n S7mOmIPUQgOy6Tv9OnSISHaB5d8OxVF/bM31ingGWlmgcWuGPv5jISSgybPqVTCc70X0VBw9ZdL\n Bw+wDfXZ/bvAc+GJOXttsvh5MTJgrWKKWxwGIA9YlVJeEiI1T7EA7ZD3gq6HCVYBZBDEvt9XeI5\n MruGchycBsk9ZvruSTurm5/Gl/J+yF",
        "X-Google-Smtp-Source": "\n AGHT+IEPxd7hZyrnD43UaQh2nMlJlL/B8XVm8vIBt70crYdskERMTJxezaFsuqJq1+Dvy0Aoszqomw==",
        "X-Received": "by 2002:a05:6102:3971:b0:470:5227:89d4 with SMTP id\n ho17-20020a056102397100b00470522789d4mr9803355vsb.31.1708550473706;\n Wed, 21 Feb 2024 13:21:13 -0800 (PST)",
        "From": "Ajit Khaparde <ajit.khaparde@broadcom.com>",
        "To": "dev@dpdk.org",
        "Cc": "ferruh.yigit@amd.com,\n\tthomas@monjalon.net",
        "Subject": "[PATCH 08/10] net/bnxt: fix compressed CQE handling",
        "Date": "Wed, 21 Feb 2024 13:20:43 -0800",
        "Message-Id": "<20240221212044.27209-9-ajit.khaparde@broadcom.com>",
        "X-Mailer": "git-send-email 2.39.2 (Apple Git-143)",
        "In-Reply-To": "<20240221212044.27209-1-ajit.khaparde@broadcom.com>",
        "References": "<20240221212044.27209-1-ajit.khaparde@broadcom.com>",
        "MIME-Version": "1.0",
        "Content-Type": "multipart/signed; protocol=\"application/pkcs7-signature\";\n micalg=sha-256; boundary=\"000000000000173b770611eae876\"",
        "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": "We were trying to reuse parts of 32-byte CQE handling for\ncompressed CQE handling. And that was causing the packet\nerrors to be misinterpreted.\n\nFix it by using separate code for the compressed CQE handling.\n\nFixes: 812fd99f8c4e (\"net/bnxt: add SSE Rx for compressed CQE\")\n\nSigned-off-by: Ajit Khaparde <ajit.khaparde@broadcom.com>\n---\n drivers/net/bnxt/bnxt_rxtx_vec_sse.c | 107 ++++++++++++++++++++++++++-\n 1 file changed, 105 insertions(+), 2 deletions(-)",
    "diff": "diff --git a/drivers/net/bnxt/bnxt_rxtx_vec_sse.c b/drivers/net/bnxt/bnxt_rxtx_vec_sse.c\nindex 6c0e33200c..b5ce12659c 100644\n--- a/drivers/net/bnxt/bnxt_rxtx_vec_sse.c\n+++ b/drivers/net/bnxt/bnxt_rxtx_vec_sse.c\n@@ -143,6 +143,109 @@ descs_to_mbufs(__m128i mm_rxcmp[4], __m128i mm_rxcmp1[4],\n \t_mm_store_si128((void *)&mbuf[3]->rx_descriptor_fields1, t0);\n }\n \n+static inline void\n+crx_descs_to_mbufs(__m128i mm_rxcmp[4], __m128i mm_rxcmp1[4],\n+\t\t   __m128i mbuf_init, const __m128i shuf_msk,\n+\t\t   struct rte_mbuf **mbuf, struct bnxt_rx_ring_info *rxr)\n+{\n+\tconst __m128i flags_type_mask =\n+\t\t_mm_set1_epi32(RX_PKT_COMPRESS_CMPL_FLAGS_ITYPE_MASK);\n+\tconst __m128i flags2_mask1 =\n+\t\t_mm_set1_epi32(CMPL_FLAGS2_VLAN_TUN_MSK_CRX);\n+\tconst __m128i flags2_mask2 =\n+\t\t_mm_set1_epi32(RX_PKT_COMPRESS_CMPL_FLAGS_IP_TYPE);\n+\tconst __m128i rss_mask =\n+\t\t_mm_set1_epi32(RX_PKT_COMPRESS_CMPL_FLAGS_RSS_VALID);\n+\tconst __m128i cs_err_mask =\n+\t\t_mm_set1_epi32(RX_PKT_COMPRESS_CMPL_CS_ERROR_CALC_MASK |\n+\t\t\t       BNXT_RXC_METADATA1_VLAN_VALID);\n+\tconst __m128i crx_flags_mask =\n+\t\t_mm_set1_epi32(BNXT_CRX_CQE_CSUM_CALC_MASK);\n+\tconst __m128i crx_tun_cs =\n+\t\t_mm_set1_epi32(BNXT_CRX_TUN_CS_CALC);\n+\t__m128i t0, t1, flags_type, flags, index, errors, rss_flags;\n+\t__m128i ptype_idx, is_tunnel;\n+\tuint32_t ol_flags;\n+\t__m128i cs_err;\n+\t__m128i t3, t4;\n+\n+\t/* Validate ptype table indexing at build time. */\n+\tbnxt_check_ptype_constants();\n+\n+\t/* Compute packet type table indexes for four packets */\n+\tt0 = _mm_unpacklo_epi32(mm_rxcmp[0], mm_rxcmp[1]);\n+\tt3 = _mm_unpackhi_epi32(mm_rxcmp[0], mm_rxcmp[1]);\n+\tt1 = _mm_unpacklo_epi32(mm_rxcmp[2], mm_rxcmp[3]);\n+\tt4 = _mm_unpackhi_epi32(mm_rxcmp[2], mm_rxcmp[3]);\n+\tflags_type = _mm_unpacklo_epi64(t0, t1);\n+\tptype_idx = _mm_srli_epi32(_mm_and_si128(flags_type, flags_type_mask),\n+\t\t\tRX_PKT_CMPL_FLAGS_ITYPE_SFT - BNXT_PTYPE_TBL_TYPE_SFT);\n+\n+\tflags = _mm_unpacklo_epi64(t0, t1);\n+\n+\tptype_idx = _mm_or_si128(ptype_idx,\n+\t\t\t_mm_srli_epi32(_mm_and_si128(flags, flags2_mask1),\n+\t\t\t\t       RX_PKT_CMPL_FLAGS2_META_FORMAT_SFT -\n+\t\t\t\t       BNXT_PTYPE_TBL_VLAN_SFT));\n+\tptype_idx = _mm_or_si128(ptype_idx,\n+\t\t\t_mm_srli_epi32(_mm_and_si128(flags, flags2_mask2),\n+\t\t\t\t       RX_PKT_CMPL_FLAGS2_IP_TYPE_SFT -\n+\t\t\t\t       BNXT_PTYPE_TBL_IP_VER_SFT));\n+\n+\t/* Extract RSS valid flags for four packets. */\n+\trss_flags = _mm_srli_epi32(_mm_and_si128(flags, rss_mask), 9);\n+\n+\t/* Extract cs_err fields for four packets. */\n+\tcs_err = _mm_unpacklo_epi64(t3, t4);\n+\tcs_err = _mm_and_si128(cs_err, cs_err_mask);\n+\tflags = _mm_and_si128(cs_err, crx_flags_mask);\n+\n+\t/* Compute ol_flags and checksum error indexes for four packets. */\n+\tis_tunnel = _mm_and_si128(flags, crx_tun_cs);\n+\tis_tunnel = _mm_slli_epi32(is_tunnel, 0x20);\n+\tflags = _mm_or_si128(flags, is_tunnel);\n+\n+\tflags = _mm_srli_si128(flags, 1);\n+\n+\terrors = _mm_and_si128(cs_err, _mm_set1_epi32(0xF0));\n+\terrors = _mm_and_si128(_mm_srli_epi32(errors, 4), flags);\n+\n+\tindex = _mm_andnot_si128(errors, flags);\n+\t/* reuse is_tunnel - just shift right one bit to index correctly. */\n+\terrors = _mm_or_si128(errors, _mm_srli_epi32(is_tunnel, 1));\n+\tindex = _mm_or_si128(index, is_tunnel);\n+\n+\t/* Update mbuf rearm_data for four packets. */\n+\tGET_OL_FLAGS(rss_flags, index, errors, 0, ol_flags);\n+\t_mm_store_si128((void *)&mbuf[0]->rearm_data,\n+\t\t\t_mm_or_si128(mbuf_init, _mm_set_epi64x(ol_flags, 0)));\n+\n+\tGET_OL_FLAGS(rss_flags, index, errors, 1, ol_flags);\n+\t_mm_store_si128((void *)&mbuf[1]->rearm_data,\n+\t\t\t_mm_or_si128(mbuf_init, _mm_set_epi64x(ol_flags, 0)));\n+\n+\tGET_OL_FLAGS(rss_flags, index, errors, 2, ol_flags);\n+\t_mm_store_si128((void *)&mbuf[2]->rearm_data,\n+\t\t\t_mm_or_si128(mbuf_init, _mm_set_epi64x(ol_flags, 0)));\n+\n+\tGET_OL_FLAGS(rss_flags, index, errors, 3, ol_flags);\n+\t_mm_store_si128((void *)&mbuf[3]->rearm_data,\n+\t\t\t_mm_or_si128(mbuf_init, _mm_set_epi64x(ol_flags, 0)));\n+\n+\t/* Update mbuf rx_descriptor_fields1 for four packes. */\n+\tGET_DESC_FIELDS(mm_rxcmp[0], mm_rxcmp1[0], shuf_msk, ptype_idx, 0, t0);\n+\t_mm_store_si128((void *)&mbuf[0]->rx_descriptor_fields1, t0);\n+\n+\tGET_DESC_FIELDS(mm_rxcmp[1], mm_rxcmp1[1], shuf_msk, ptype_idx, 1, t0);\n+\t_mm_store_si128((void *)&mbuf[1]->rx_descriptor_fields1, t0);\n+\n+\tGET_DESC_FIELDS(mm_rxcmp[2], mm_rxcmp1[2], shuf_msk, ptype_idx, 2, t0);\n+\t_mm_store_si128((void *)&mbuf[2]->rx_descriptor_fields1, t0);\n+\n+\tGET_DESC_FIELDS(mm_rxcmp[3], mm_rxcmp1[3], shuf_msk, ptype_idx, 3, t0);\n+\t_mm_store_si128((void *)&mbuf[3]->rx_descriptor_fields1, t0);\n+}\n+\n static uint16_t\n recv_burst_vec_sse(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)\n {\n@@ -392,8 +495,8 @@ crx_burst_vec_sse(void *rx_queue, struct rte_mbuf **rx_pkts, uint16_t nb_pkts)\n \t\tif (num_valid == 0)\n \t\t\tbreak;\n \n-\t\tdescs_to_mbufs(rxcmp, rxcmp1, mbuf_init, shuf_msk, &rx_pkts[nb_rx_pkts],\n-\t\t\t       rxr);\n+\t\tcrx_descs_to_mbufs(rxcmp, rxcmp1, mbuf_init, shuf_msk,\n+\t\t\t\t   &rx_pkts[nb_rx_pkts], rxr);\n \t\tnb_rx_pkts += num_valid;\n \n \t\tif (num_valid < BNXT_RX_DESCS_PER_LOOP_VEC128)\n",
    "prefixes": [
        "08/10"
    ]
}