get:
Show a patch.

patch:
Update a patch.

put:
Update a patch.

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

{
    "id": 34061,
    "url": "https://patches.dpdk.org/api/patches/34061/?format=api",
    "web_url": "https://patches.dpdk.org/project/dpdk/patch/20180119004430.15305-9-yskoh@mellanox.com/",
    "project": {
        "id": 1,
        "url": "https://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": "<20180119004430.15305-9-yskoh@mellanox.com>",
    "list_archive_url": "https://inbox.dpdk.org/dev/20180119004430.15305-9-yskoh@mellanox.com",
    "date": "2018-01-19T00:44:30",
    "name": "[dpdk-dev,v3,8/8] net/mlx5: fix synchonization on polling Rx completions",
    "commit_ref": null,
    "pull_url": null,
    "state": "superseded",
    "archived": true,
    "hash": "1727a5a5cdf70206949b14469dc502d0358a707c",
    "submitter": {
        "id": 636,
        "url": "https://patches.dpdk.org/api/people/636/?format=api",
        "name": "Yongseok Koh",
        "email": "yskoh@mellanox.com"
    },
    "delegate": {
        "id": 1,
        "url": "https://patches.dpdk.org/api/users/1/?format=api",
        "username": "tmonjalo",
        "first_name": "Thomas",
        "last_name": "Monjalon",
        "email": "thomas@monjalon.net"
    },
    "mbox": "https://patches.dpdk.org/project/dpdk/patch/20180119004430.15305-9-yskoh@mellanox.com/mbox/",
    "series": [],
    "comments": "https://patches.dpdk.org/api/patches/34061/comments/",
    "check": "fail",
    "checks": "https://patches.dpdk.org/api/patches/34061/checks/",
    "tags": {},
    "related": [],
    "headers": {
        "Return-Path": "<dev-bounces@dpdk.org>",
        "X-Original-To": "patchwork@dpdk.org",
        "Delivered-To": "patchwork@dpdk.org",
        "Received": [
            "from [92.243.14.124] (localhost [127.0.0.1])\n\tby dpdk.org (Postfix) with ESMTP id E5B251B379;\n\tFri, 19 Jan 2018 01:45:18 +0100 (CET)",
            "from EUR01-DB5-obe.outbound.protection.outlook.com\n\t(mail-eopbgr60041.outbound.protection.outlook.com [40.107.6.41])\n\tby dpdk.org (Postfix) with ESMTP id B812A1B351;\n\tFri, 19 Jan 2018 01:45:10 +0100 (CET)",
            "from mellanox.com (209.116.155.178) by\n\tVI1PR0501MB2045.eurprd05.prod.outlook.com (2603:10a6:800:36::19) with\n\tMicrosoft SMTP Server (version=TLS1_2,\n\tcipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.428.17;\n\tFri, 19 Jan 2018 00:45:06 +0000"
        ],
        "DKIM-Signature": "v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com;\n\ts=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version;\n\tbh=S/NrjAPiZYdqLQHyOibnxXFQnx1arvrvumfCXmFQfm4=;\n\tb=LG0+hG1YqOoDjbeeMndYjk+PLxfAjkovJRnuaJEoTTyzeAUS9gzHx2ouyrwOdupWhrsutuWBFbUUOu5LLoF8FojG0PIcQLmLj8TlFB8PP4JA91qvb07dfalzgi+hyBFqmnLDBs2is1grMnXckbeCr770rLvC+LzdyX2XVnqChyk=",
        "Authentication-Results": "spf=none (sender IP is )\n\tsmtp.mailfrom=yskoh@mellanox.com; ",
        "From": "Yongseok Koh <yskoh@mellanox.com>",
        "To": "adrien.mazarguil@6wind.com, nelio.laranjeiro@6wind.com,\n\tbruce.richardson@intel.com, konstantin.ananyev@intel.com,\n\tchaozhu@linux.vnet.ibm.com, jerin.jacob@caviumnetworks.com,\n\tjianbo.liu@arm.com",
        "Cc": "dev@dpdk.org,\n\tYongseok Koh <yskoh@mellanox.com>,\n\tstable@dpdk.org",
        "Date": "Thu, 18 Jan 2018 16:44:30 -0800",
        "Message-Id": "<20180119004430.15305-9-yskoh@mellanox.com>",
        "X-Mailer": "git-send-email 2.11.0",
        "In-Reply-To": "<20180119004430.15305-1-yskoh@mellanox.com>",
        "References": "<20180116011050.18866-1-yskoh@mellanox.com>\n\t<20180119004430.15305-1-yskoh@mellanox.com>",
        "MIME-Version": "1.0",
        "Content-Type": "text/plain",
        "X-Originating-IP": "[209.116.155.178]",
        "X-ClientProxiedBy": "DM5PR2001CA0022.namprd20.prod.outlook.com\n\t(2603:10b6:4:16::32) To VI1PR0501MB2045.eurprd05.prod.outlook.com\n\t(2603:10a6:800:36::19)",
        "X-MS-PublicTrafficType": "Email",
        "X-MS-Office365-Filtering-Correlation-Id": "456e2c86-4cba-47ec-4a5e-08d55ed5e3b9",
        "X-MS-Office365-Filtering-HT": "Tenant",
        "X-Microsoft-Antispam": "UriScan:; BCL:0; PCL:0;\n\tRULEID:(7020095)(4652020)(5600026)(4604075)(48565401081)(2017052603307)(7153060)(7193020);\n\tSRVR:VI1PR0501MB2045; ",
        "X-Microsoft-Exchange-Diagnostics": [
            "1; VI1PR0501MB2045;\n\t3:uCsaOVVuubRX/CbOyQkpIGkD7R/REOJYnOwrUV4MFqNnuiKmDedKRgI/X5UtSxn43HTr3wjeqHuzMM2KBUfoLBNLzh2sPmr6x3G77Doj61aSXAmZEhx8rEjpObmI3xD/YhND38Wv+sBK6GbVul8o6HaC+cCzn3FQTLVyzffGWol7OEx7oQ9Zv11m4loFbd+ffUoheuIo2MQoHXWAK9DXk/82hqJNIKkBaazxOQLB9sprFK77wA7ZUMWaZmDO9jD7;\n\t25:QJHEsRfqDsduvYCV0I5gUQWlkpAIpAEumKJGwj7vEg8SjTxJeT6CCropG1eA6ZmprKBWq0gUbb5aygJbvbCxF+VHzGs8iyZQrf4/46s/8zcnAcBSoS/JEakPvCx1dDVCVvfS5VIfO6XgXLbqxm8ygzLiKYvTWSgWWg303leETZyt/rUyuzHt0iDijoQbFgWqU96KKTVH1rOzTr2Ba2fOPHEGGINI1nt1sCckysAAbs5JK43FsZrclkAlTsea7pTDzUrDhBxZkhN5aM8ftiv2UOp06fEl93wWEmRnNIavEe22r3EDdB4mNZj8phEu3DgiLLtiFQWKtSBg710kPo8V3w==;\n\t31:XVs88vlsscsHb7jEUZun+GUDVAxLzvQBna6WYq5zxT+CfAPsVPoTQ+TaYhpsJx7Ws0rY2y3z7k2YhKDNk8WSMNf6Vn2GXja7T9AnGzSmzsAtdMgBr/xPtA48nVZvEtOJmkBOS4z8XOZ4TeQPK2tPoXCzNCYr/IQJCPS+8TbmwBIsROBWXxgob5I8vlbJ9ZGjffn6qYyroh8vcfE4IuvA83PfCjOyPTp932V1FA1bqsw=",
            "1; VI1PR0501MB2045;\n\t20:DGLxf08Cb63VzmpWfzuYtAErXuRUDqSPt3TE7ButRxrvXHrlWoqiMz+sgP88+JKvZJPZ65wrI7+kdmso/l3RB5+lrGcVFe8jPaorDP/nuv/11upgzpIPT8rFfHi3CdEUs4zJcGLI0K+J8yje/Ykn7FNB43kbiV/IhQ1Z1kxOW2u+q9y2INoIUkBFf7p55P/3xW7BXYrLYUKf2f8xWT2k41mxs675S60VrwTWKScG761v7yxQqm6TmBIha3Nd28pqjZZk7md/3C6KRfIQPZ6XSlsYKLGPEwEPJvg6qNX1oABmsvIurKTgE9YeKU/pJOFMWBtqI0lLr51PUa2iAVdMSWklwOMS4yaDwP8o0EBQFEa+EoDJBrv8yPTBmcjl66heqmjEy2+ssyX/LHbE63jKhD8a/CBq0QD1JcR7olS2nIQIJQsU0lV5IzDSb0Y4dM/Jo5vkj1+keVEPARL3SeG5293vF2M1Tk6+piCNqSycoCbjRqYqZQGTka+aH5dNprga;\n\t4:WZMhJ8oVFOtM3TXcEgq2nkp+MwwIXE92vrYtWs1ef8QUsRxGUSxPAZcdFEF2nskskfELp5KECYkP/0vB/TygNXw+5lk6hy4u5dj2gHRkrqvcc4RPXwLD8MAv/mbLkd3rDLFZ9OM4ChKbqw74xwdW+dqnljj//TpPrgM0MCsvynWAWkGrd1+cjDsCBVe7jf1nQOqKzCfmPx20caZPk7sDpCw3rKPTuKgmr2FJVggOEtOI6pYH1TALor/TfzOHFqcY8Vv98qgEk44f85mpqH+rdA==",
            "=?us-ascii?Q?1; VI1PR0501MB2045;\n\t23:nnv8b4kYkdw2clDh5z4mKnIvrTQmIO1a+xKTK/d?=\n\tjD/MnrCB7psRrCbJgViBEDoyrwTEGWZWxOlSZOid3Me6neo7V7sagj0fxQAwNr3aRHORBQ5OlS11hEXWqlgNdoBV0vdKUjSz5GggYaQL1l8bFCJgd2O0WC55/89p2ypffZ0yLeAZbJvv+TBSdtJ78l/Gi4y2WL4QPOt0F1JryMoMBblxqqiib4JfTwDkMEtGehjY6VUMUc1oc2k9Edm3ZZ0sg+Gw5jarzc2+CZueoPAufeOTfDDWFRtbF+RIvgDsOMgSnfMlN3zU6WH3GiM7SDQwHfTI0Vmj4IeAVwcoul0onqeD1LzQhOpckn2c7fkp33KzuXUPVf1JDBv3Xl6l9SOUkDTfg+gjTQxdSd0hZovddIGC99V0nOPV8168NVbSrMavINmUG2qiQsnbrjxsUTCaHxyYnfP4PkAANDyAb9MqrH0sDJoDMlJzyvOs9CgoLMRjD8KAv7I6ktgw9EXdmby4AnSm/vEG0ZdurE+EZQOMfgWGKmvvi80xDzFCPSAoaJgVL/MJ784sgQRevEk+Gaz53kr5QREQi1d/EoNzrPCZIXuwKOOIk1SSTBfp1h+f3UDmNABXxLhE7doKNCo7UJ9fHYdmalN2nRIHdahKo54j4MAcrj3mACXDUfUj0Qcvmx197ycd4dh557rsYASad+taTqq1IK4Z8Boo6gKL3Av9gBmv2at6z1F3o7YHj7XS9oyMtWjGUBgFerOLNhEEMzbrhkbZcTeuvfXBHumT7VdNI2SmHD03xUDF98dY8GBku/NHxDlgcTk8isOlka4ES5A9d3VBDyYbmgW5m/PoUKd/rniCzlPnOdb406su7kZY3SSoltCuehDkSIXnCHzjtxVnukCdDBJnaTNcnu5wVnzhniITFaei/yq2RWA68xi9lq4TniFPz1gnlcyzF0qtsJtZBw6szkG1m7lo6zzNminYqG+WYE8WBhAcgZGYL0O5VBbT2A9qHjXAjayipwbTs/NBUdg/thk4SxskBBCNZJrND5GrpMQ5zrWlf/D5AVJHn4pE1Ak65L4kSNBXLXfEfBAPnS+ZDK86+jXHUOjNVyD/Hc1ATHlUZaimcNRFjnh0xFReTOV3KqHdLnMGSGTR2QmaRqWZcgq3E7CMC8omfrESN0g==",
            "1; VI1PR0501MB2045;\n\t6:FOpS3fkYxYvKASKnsDz8PMf/P/nhy+eRQ+GF8TBF7R+aA2owoRQNnPAOO5mhmuXabvkkzZOmNkO6v9oWV9UU7EEbf1IsxI/K+heaHnV1EA6Xx9u0n287xoKQi/4c+cQv+4YU7Fw1qzb7iXBk2mwYKwd5wOoqIJtEpxfbkqBmxoTfr6VplXbOR9P3qSy8LBFxAnTxdVzN9qij3tKiZmyz1OwsbT5GQtJks5baFYGkKI+Z3YV8GuZA86FI53CEUGy8GyMKN0HP9ipAF5cpDTyApKRxFE2dKEH2pBzoJGDbbkNWDWMJ0ZXJvoBJK54Wh83scyofJoeXOdyE3+yqLJaxihlrJqicL27W4a4+4MJKoXI=;\n\t5:h/4mvjHMBMWYu81ruM8MIKH5GQP2OJzuhbRyCQsmSg/VmoAFtKnWXgUCIAkf6rpmXcnMA4Ph8n6tWEu9zB1dSooR4Vr5T1DzTkS0rIY8b+9/IATSLjqVPeU1piWGxvic1Oigi8CTKa1BC3c1+PwotrbcCAOsoU2IdLHreatC3a4=;\n\t24:BkLvmqGlFeu8TjkMsvH9AEdQS04Pnfm0okvXIxWx2QdfGpSZvGSyup7iBETEnoYic0gT5GJVsB46o0GYKq3Kcw2nxqqoG5p8UFPo23tHcgI=;\n\t7:iTBdZP2piPpljn4zqWNFspmG4DeLfPc43m6jI+x5PUr1vp1FWaDxIzOu6fxVKXcgv5hsFHOzc0G4fQkWvJKl3OoxaecpKoqH00MH6X83t9Lt2MVXUEAXg7p42LqbBJuon6z+GupYI0Iiljj2lJucQ+AA80Pdht6y9l8DeKFmWvvvARp5rV+KsPn2fjK+om8q7BSjgqeJ0agxj+TceO58xjzBspbbBnqtTRwJK+TZD9JihtPdCRyMSdpkjmv/Cb5z"
        ],
        "X-MS-TrafficTypeDiagnostic": "VI1PR0501MB2045:",
        "X-LD-Processed": "a652971c-7d2e-4d9b-a6a4-d149256f461b,ExtAddr",
        "X-Microsoft-Antispam-PRVS": "<VI1PR0501MB20452A253E8015A40D766B37C3EF0@VI1PR0501MB2045.eurprd05.prod.outlook.com>",
        "X-Exchange-Antispam-Report-Test": "UriScan:;",
        "X-Exchange-Antispam-Report-CFA-Test": "BCL:0; PCL:0;\n\tRULEID:(6040495)(2401047)(5005006)(8121501046)(3231023)(2400069)(944501161)(10201501046)(3002001)(93006095)(93001095)(6055026)(6041282)(20161123562045)(20161123564045)(20161123558120)(20161123560045)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(6072148)(201708071742011);\n\tSRVR:VI1PR0501MB2045; BCL:0; PCL:0;\n\tRULEID:(100000803101)(100110400095); \n\tSRVR:VI1PR0501MB2045; ",
        "X-Forefront-PRVS": "0557CBAD84",
        "X-Forefront-Antispam-Report": "SFV:NSPM;\n\tSFS:(10009020)(39380400002)(396003)(346002)(376002)(366004)(39860400002)(189003)(199004)(25786009)(48376002)(59450400001)(50466002)(386003)(7696005)(76176011)(51416003)(52116002)(4326008)(478600001)(86362001)(575784001)(36756003)(305945005)(7736002)(16526018)(26005)(16586007)(2950100002)(6666003)(316002)(97736004)(5660300001)(105586002)(106356001)(53936002)(47776003)(66066001)(8936002)(8676002)(21086003)(81156014)(50226002)(81166006)(2906002)(6116002)(3846002)(68736007)(69596002)(1076002)(55016002);\n\tDIR:OUT; SFP:1101; SCL:1; SRVR:VI1PR0501MB2045; H:mellanox.com; FPR:;\n\tSPF:None; \n\tPTR:InfoNoRecords; MX:1; A:1; LANG:en; ",
        "Received-SPF": "None (protection.outlook.com: mellanox.com does not designate\n\tpermitted sender hosts)",
        "SpamDiagnosticOutput": "1:99",
        "SpamDiagnosticMetadata": "NSPM",
        "X-OriginatorOrg": "Mellanox.com",
        "X-MS-Exchange-CrossTenant-OriginalArrivalTime": "19 Jan 2018 00:45:06.3627\n\t(UTC)",
        "X-MS-Exchange-CrossTenant-Network-Message-Id": "456e2c86-4cba-47ec-4a5e-08d55ed5e3b9",
        "X-MS-Exchange-CrossTenant-FromEntityHeader": "Hosted",
        "X-MS-Exchange-CrossTenant-Id": "a652971c-7d2e-4d9b-a6a4-d149256f461b",
        "X-MS-Exchange-Transport-CrossTenantHeadersStamped": "VI1PR0501MB2045",
        "Subject": "[dpdk-dev] [PATCH v3 8/8] net/mlx5: fix synchonization on polling\n\tRx completions",
        "X-BeenThere": "dev@dpdk.org",
        "X-Mailman-Version": "2.1.15",
        "Precedence": "list",
        "List-Id": "DPDK patches and discussions <dev.dpdk.org>",
        "List-Unsubscribe": "<https://dpdk.org/ml/options/dev>,\n\t<mailto:dev-request@dpdk.org?subject=unsubscribe>",
        "List-Archive": "<http://dpdk.org/ml/archives/dev/>",
        "List-Post": "<mailto:dev@dpdk.org>",
        "List-Help": "<mailto:dev-request@dpdk.org?subject=help>",
        "List-Subscribe": "<https://dpdk.org/ml/listinfo/dev>,\n\t<mailto:dev-request@dpdk.org?subject=subscribe>",
        "Errors-To": "dev-bounces@dpdk.org",
        "Sender": "\"dev\" <dev-bounces@dpdk.org>"
    },
    "content": "Polling a new packet is basically sensing the generation bit in a\ncompletion entry. For some processors not having strongly-ordered memory\nmodel, there has to be an IO memory barrier between reading the generation\nbit and other fields of the entry in order to guarantee data is not stale.\n\nFixes: 570acdb1da8a (\"net/mlx5: add vectorized Rx/Tx burst for ARM\")\nCc: stable@dpdk.org\n\nSigned-off-by: Yongseok Koh <yskoh@mellanox.com>\nAcked-by: Shahaf Shuler <shahafs@mellanox.com>\nAcked-by: Nelio Laranjeiro <nelio.laranjeiro@6wind.com>\n---\n drivers/net/mlx5/mlx5_rxtx.c          |  1 +\n drivers/net/mlx5/mlx5_rxtx_vec_neon.h | 53 ++++++++++++++++++++---------------\n drivers/net/mlx5/mlx5_rxtx_vec_sse.h  |  2 +-\n 3 files changed, 32 insertions(+), 24 deletions(-)",
    "diff": "diff --git a/drivers/net/mlx5/mlx5_rxtx.c b/drivers/net/mlx5/mlx5_rxtx.c\nindex 99a5f8681..8065d9d0b 100644\n--- a/drivers/net/mlx5/mlx5_rxtx.c\n+++ b/drivers/net/mlx5/mlx5_rxtx.c\n@@ -1669,6 +1669,7 @@ mlx5_rx_poll_len(struct mlx5_rxq_data *rxq, volatile struct mlx5_cqe *cqe,\n \t\t\treturn 0;\n \t\t++rxq->cq_ci;\n \t\top_own = cqe->op_own;\n+\t\trte_dma_rmb();\n \t\tif (MLX5_CQE_FORMAT(op_own) == MLX5_COMPRESSED) {\n \t\t\tvolatile struct mlx5_mini_cqe8 (*mc)[8] =\n \t\t\t\t(volatile struct mlx5_mini_cqe8 (*)[8])\ndiff --git a/drivers/net/mlx5/mlx5_rxtx_vec_neon.h b/drivers/net/mlx5/mlx5_rxtx_vec_neon.h\nindex e11565f69..29ae933e7 100644\n--- a/drivers/net/mlx5/mlx5_rxtx_vec_neon.h\n+++ b/drivers/net/mlx5/mlx5_rxtx_vec_neon.h\n@@ -814,6 +814,7 @@ rxq_burst_v(struct mlx5_rxq_data *rxq, struct rte_mbuf **pkts, uint16_t pkts_n,\n \t\tuint16x4_t mask;\n \t\tuint16x4_t byte_cnt;\n \t\tuint32x4_t ptype_info, flow_tag;\n+\t\tregister uint64x2_t c0, c1, c2, c3;\n \t\tuint8_t *p0, *p1, *p2, *p3;\n \t\tuint8_t *e0 = (void *)&elts[pos]->pkt_len;\n \t\tuint8_t *e1 = (void *)&elts[pos + 1]->pkt_len;\n@@ -830,6 +831,16 @@ rxq_burst_v(struct mlx5_rxq_data *rxq, struct rte_mbuf **pkts, uint16_t pkts_n,\n \t\tp1 = p0 + (pkts_n - pos > 1) * sizeof(struct mlx5_cqe);\n \t\tp2 = p1 + (pkts_n - pos > 2) * sizeof(struct mlx5_cqe);\n \t\tp3 = p2 + (pkts_n - pos > 3) * sizeof(struct mlx5_cqe);\n+\t\t/* B.0 (CQE 3) load a block having op_own. */\n+\t\tc3 = vld1q_u64((uint64_t *)(p3 + 48));\n+\t\t/* B.0 (CQE 2) load a block having op_own. */\n+\t\tc2 = vld1q_u64((uint64_t *)(p2 + 48));\n+\t\t/* B.0 (CQE 1) load a block having op_own. */\n+\t\tc1 = vld1q_u64((uint64_t *)(p1 + 48));\n+\t\t/* B.0 (CQE 0) load a block having op_own. */\n+\t\tc0 = vld1q_u64((uint64_t *)(p0 + 48));\n+\t\t/* Synchronize for loading the rest of blocks. */\n+\t\trte_dma_rmb();\n \t\t/* Prefetch next 4 CQEs. */\n \t\tif (pkts_n - pos >= 2 * MLX5_VPMD_DESCS_PER_LOOP) {\n \t\t\tunsigned int next = pos + MLX5_VPMD_DESCS_PER_LOOP;\n@@ -839,50 +850,46 @@ rxq_burst_v(struct mlx5_rxq_data *rxq, struct rte_mbuf **pkts, uint16_t pkts_n,\n \t\t\trte_prefetch_non_temporal(&cq[next + 3]);\n \t\t}\n \t\t__asm__ volatile (\n-\t\t/* B.1 (CQE 3) load a block having op_own. */\n-\t\t\"ld1 {v19.16b}, [%[p3]] \\n\\t\"\n-\t\t\"sub %[p3], %[p3], #48 \\n\\t\"\n-\t\t/* B.2 (CQE 3) load the rest blocks. */\n+\t\t/* B.1 (CQE 3) load the rest of blocks. */\n \t\t\"ld1 {v16.16b - v18.16b}, [%[p3]] \\n\\t\"\n+\t\t/* B.2 (CQE 3) move the block having op_own. */\n+\t\t\"mov v19.16b, %[c3].16b \\n\\t\"\n \t\t/* B.3 (CQE 3) extract 16B fields. */\n \t\t\"tbl v23.16b, {v16.16b - v19.16b}, %[cqe_shuf_m].16b \\n\\t\"\n+\t\t/* B.1 (CQE 2) load the rest of blocks. */\n+\t\t\"ld1 {v16.16b - v18.16b}, [%[p2]] \\n\\t\"\n \t\t/* B.4 (CQE 3) adjust CRC length. */\n \t\t\"sub v23.8h, v23.8h, %[crc_adj].8h \\n\\t\"\n-\t\t/* B.1 (CQE 2) load a block having op_own. */\n-\t\t\"ld1 {v19.16b}, [%[p2]] \\n\\t\"\n-\t\t\"sub %[p2], %[p2], #48 \\n\\t\"\n \t\t/* C.1 (CQE 3) generate final structure for mbuf. */\n \t\t\"tbl v15.16b, {v23.16b}, %[mb_shuf_m].16b \\n\\t\"\n-\t\t/* B.2 (CQE 2) load the rest blocks. */\n-\t\t\"ld1 {v16.16b - v18.16b}, [%[p2]] \\n\\t\"\n+\t\t/* B.2 (CQE 2) move the block having op_own. */\n+\t\t\"mov v19.16b, %[c2].16b \\n\\t\"\n \t\t/* B.3 (CQE 2) extract 16B fields. */\n \t\t\"tbl v22.16b, {v16.16b - v19.16b}, %[cqe_shuf_m].16b \\n\\t\"\n+\t\t/* B.1 (CQE 1) load the rest of blocks. */\n+\t\t\"ld1 {v16.16b - v18.16b}, [%[p1]] \\n\\t\"\n \t\t/* B.4 (CQE 2) adjust CRC length. */\n \t\t\"sub v22.8h, v22.8h, %[crc_adj].8h \\n\\t\"\n-\t\t/* B.1 (CQE 1) load a block having op_own. */\n-\t\t\"ld1 {v19.16b}, [%[p1]] \\n\\t\"\n-\t\t\"sub %[p1], %[p1], #48 \\n\\t\"\n \t\t/* C.1 (CQE 2) generate final structure for mbuf. */\n \t\t\"tbl v14.16b, {v22.16b}, %[mb_shuf_m].16b \\n\\t\"\n-\t\t/* B.2 (CQE 1) load the rest blocks. */\n-\t\t\"ld1 {v16.16b - v18.16b}, [%[p1]] \\n\\t\"\n+\t\t/* B.2 (CQE 1) move the block having op_own. */\n+\t\t\"mov v19.16b, %[c1].16b \\n\\t\"\n \t\t/* B.3 (CQE 1) extract 16B fields. */\n \t\t\"tbl v21.16b, {v16.16b - v19.16b}, %[cqe_shuf_m].16b \\n\\t\"\n+\t\t/* B.1 (CQE 0) load the rest of blocks. */\n+\t\t\"ld1 {v16.16b - v18.16b}, [%[p0]] \\n\\t\"\n \t\t/* B.4 (CQE 1) adjust CRC length. */\n \t\t\"sub v21.8h, v21.8h, %[crc_adj].8h \\n\\t\"\n-\t\t/* B.1 (CQE 0) load a block having op_own. */\n-\t\t\"ld1 {v19.16b}, [%[p0]] \\n\\t\"\n-\t\t\"sub %[p0], %[p0], #48 \\n\\t\"\n \t\t/* C.1 (CQE 1) generate final structure for mbuf. */\n \t\t\"tbl v13.16b, {v21.16b}, %[mb_shuf_m].16b \\n\\t\"\n-\t\t/* B.2 (CQE 0) load the rest blocks. */\n-\t\t\"ld1 {v16.16b - v18.16b}, [%[p0]] \\n\\t\"\n+\t\t/* B.2 (CQE 0) move the block having op_own. */\n+\t\t\"mov v19.16b, %[c0].16b \\n\\t\"\n+\t\t/* A.1 load mbuf pointers. */\n+\t\t\"ld1 {v24.2d - v25.2d}, [%[elts_p]] \\n\\t\"\n \t\t/* B.3 (CQE 0) extract 16B fields. */\n \t\t\"tbl v20.16b, {v16.16b - v19.16b}, %[cqe_shuf_m].16b \\n\\t\"\n \t\t/* B.4 (CQE 0) adjust CRC length. */\n \t\t\"sub v20.8h, v20.8h, %[crc_adj].8h \\n\\t\"\n-\t\t/* A.1 load mbuf pointers. */\n-\t\t\"ld1 {v24.2d - v25.2d}, [%[elts_p]] \\n\\t\"\n \t\t/* D.1 extract op_own byte. */\n \t\t\"tbl %[op_own].8b, {v20.16b - v23.16b}, %[owner_shuf_m].8b \\n\\t\"\n \t\t/* C.2 (CQE 3) adjust flow mark. */\n@@ -917,9 +924,9 @@ rxq_burst_v(struct mlx5_rxq_data *rxq, struct rte_mbuf **pkts, uint16_t pkts_n,\n \t\t [byte_cnt]\"=&w\"(byte_cnt),\n \t\t [ptype_info]\"=&w\"(ptype_info),\n \t\t [flow_tag]\"=&w\"(flow_tag)\n-\t\t:[p3]\"r\"(p3 + 48), [p2]\"r\"(p2 + 48),\n-\t\t [p1]\"r\"(p1 + 48), [p0]\"r\"(p0 + 48),\n+\t\t:[p3]\"r\"(p3), [p2]\"r\"(p2), [p1]\"r\"(p1), [p0]\"r\"(p0),\n \t\t [e3]\"r\"(e3), [e2]\"r\"(e2), [e1]\"r\"(e1), [e0]\"r\"(e0),\n+\t\t [c3]\"w\"(c3), [c2]\"w\"(c2), [c1]\"w\"(c1), [c0]\"w\"(c0),\n \t\t [elts_p]\"r\"(elts_p),\n \t\t [pkts_p]\"r\"(pkts_p),\n \t\t [cqe_shuf_m]\"w\"(cqe_shuf_m),\ndiff --git a/drivers/net/mlx5/mlx5_rxtx_vec_sse.h b/drivers/net/mlx5/mlx5_rxtx_vec_sse.h\nindex 559b0237e..6c4d1c3d5 100644\n--- a/drivers/net/mlx5/mlx5_rxtx_vec_sse.h\n+++ b/drivers/net/mlx5/mlx5_rxtx_vec_sse.h\n@@ -833,7 +833,7 @@ rxq_burst_v(struct mlx5_rxq_data *rxq, struct rte_mbuf **pkts, uint16_t pkts_n,\n \t\t/* B.2 copy mbuf pointers. */\n \t\t_mm_storeu_si128((__m128i *)&pkts[pos], mbp1);\n \t\t_mm_storeu_si128((__m128i *)&pkts[pos + 2], mbp2);\n-\t\trte_compiler_barrier();\n+\t\trte_dma_rmb();\n \t\t/* C.1 load remained CQE data and extract necessary fields. */\n \t\tcqe_tmp2 = _mm_load_si128((__m128i *)&cq[pos + p3]);\n \t\tcqe_tmp1 = _mm_load_si128((__m128i *)&cq[pos + p2]);\n",
    "prefixes": [
        "dpdk-dev",
        "v3",
        "8/8"
    ]
}