From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 937E6C433EF for ; Fri, 5 Nov 2021 06:41:11 +0000 (UTC) Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by mail.kernel.org (Postfix) with ESMTP id CE1A761207 for ; Fri, 5 Nov 2021 06:41:10 +0000 (UTC) DMARC-Filter: OpenDMARC Filter v1.4.1 mail.kernel.org CE1A761207 Authentication-Results: mail.kernel.org; dmarc=fail (p=none dis=none) header.from=arm.com Authentication-Results: mail.kernel.org; spf=pass smtp.mailfrom=dpdk.org Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id E357E40689; Fri, 5 Nov 2021 07:41:09 +0100 (CET) Received: from EUR04-DB3-obe.outbound.protection.outlook.com (mail-eopbgr60072.outbound.protection.outlook.com [40.107.6.72]) by mails.dpdk.org (Postfix) with ESMTP id 3AD2B40151 for ; Fri, 5 Nov 2021 07:41:08 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=K4F+xdoJNnNztbTL7/hjBCPALQ8OLAg30YK379xPGNM=; b=2xZkK+/NxTN9N4HZSlXGl4ikoaMLLjPF6qucqySfCl/tmEg0JIATVPMQIW6D8FZCuEC9aoB79HW0Ihcw3/7GD3inY41j8imD9zYvL4q536jtw8KC4UI06a0J3aWxcEHRieelvNPNfgfJmKAWTk7QQwXpmkQq9NRaAS0AExA1Lg4= Received: from AM6PR02CA0006.eurprd02.prod.outlook.com (2603:10a6:20b:6e::19) by AM9PR08MB6643.eurprd08.prod.outlook.com (2603:10a6:20b:30e::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Fri, 5 Nov 2021 06:41:05 +0000 Received: from AM5EUR03FT054.eop-EUR03.prod.protection.outlook.com (2603:10a6:20b:6e:cafe::5d) by AM6PR02CA0006.outlook.office365.com (2603:10a6:20b:6e::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11 via Frontend Transport; Fri, 5 Nov 2021 06:41:05 +0000 X-MS-Exchange-Authentication-Results: spf=temperror (sender IP is 63.35.35.123) smtp.mailfrom=arm.com; dkim=pass (signature was verified) header.d=armh.onmicrosoft.com;dmarc=temperror action=none header.from=arm.com; Received-SPF: TempError (protection.outlook.com: error in processing during lookup of arm.com: DNS Timeout) Received: from 64aa7808-outbound-1.mta.getcheckrecipient.com (63.35.35.123) by AM5EUR03FT054.mail.protection.outlook.com (10.152.16.212) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4649.14 via Frontend Transport; Fri, 5 Nov 2021 06:41:04 +0000 Received: ("Tessian outbound c71e1a752bff:v108"); Fri, 05 Nov 2021 06:41:03 +0000 X-CR-MTA-TID: 64aa7808 Received: from 40f18237ab47.1 by 64aa7808-outbound-1.mta.getcheckrecipient.com id 689A8704-7523-42D3-8777-AF41F791232A.1; Fri, 05 Nov 2021 06:40:57 +0000 Received: from EUR05-AM6-obe.outbound.protection.outlook.com by 64aa7808-outbound-1.mta.getcheckrecipient.com with ESMTPS id 40f18237ab47.1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384); Fri, 05 Nov 2021 06:40:57 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=iWjVi453/Zx4SF9KEZzwLZyUoqqcJO6MABvvVbtZwELPlDLkSKAzAVw7GIoDJiGIxa+S2QZ4s4/5mgiTpZSu1cg1Ju+LiRzRCPLv2Z6vnRutLtGR/PNnE2zTG1wg5CdOSQCimuPrxSvjY+1IPddCCsV29jxO28yY5BiqHw0RYZojezWZMM2Dy9PMsKI3O5jI8nK8J95d2T8mKvOs86ZE0q7p4VuQTOFsFqfdrBolRzP5TooM9pHbB63OAKsoEYqlcDHa6jN6zxFUFYC8WSd/AOJ8Ags5bD7+hElTqFQKPjURCHBN6MCDHoZRzOX2WWzzDUxHmEvPT+zc6/m5bxYKPw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=K4F+xdoJNnNztbTL7/hjBCPALQ8OLAg30YK379xPGNM=; b=IncqdkNfdBgQ4agyqdrsmlQ7Y7kL5avMNxlQvK6+wgGF6d2W1y8bN6AP9XP7ygTmWL6ji1+tsDES7O+MD0AJaLDwQLQoLJsziLSabT9Y9o03CrCPKq0fRQlRrz+70LgoV+YLVuWCbrcAxEesc974w50dwvXRyAhmyZ6/J/vX/Tt32ZuoiDhzVhaeTE8cXT2TJ3bPA8C7YKy7nbb2kDqnmZdrIfs+cFpFFJXXyDCTcnWrINl2OD7FINDA/n5hGYcxSlIR3oe7TJ2naxN1fqnXNrO/bZQNVBENLnBdDfTiASzPeY80xg3uDIBzc1ADcs3Kf7dVARbGiPHLzfSxJV2Lrw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=arm.com; dmarc=pass action=none header.from=arm.com; dkim=pass header.d=arm.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=armh.onmicrosoft.com; s=selector2-armh-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=K4F+xdoJNnNztbTL7/hjBCPALQ8OLAg30YK379xPGNM=; b=2xZkK+/NxTN9N4HZSlXGl4ikoaMLLjPF6qucqySfCl/tmEg0JIATVPMQIW6D8FZCuEC9aoB79HW0Ihcw3/7GD3inY41j8imD9zYvL4q536jtw8KC4UI06a0J3aWxcEHRieelvNPNfgfJmKAWTk7QQwXpmkQq9NRaAS0AExA1Lg4= Received: from AS8PR08MB7080.eurprd08.prod.outlook.com (2603:10a6:20b:401::19) by AS8PR08MB7339.eurprd08.prod.outlook.com (2603:10a6:20b:446::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4669.11; Fri, 5 Nov 2021 06:40:56 +0000 Received: from AS8PR08MB7080.eurprd08.prod.outlook.com ([fe80::29a6:2647:cd31:788b]) by AS8PR08MB7080.eurprd08.prod.outlook.com ([fe80::29a6:2647:cd31:788b%4]) with mapi id 15.20.4669.013; Fri, 5 Nov 2021 06:40:56 +0000 From: Ruifeng Wang To: Xueming Li , "dev@dpdk.org" CC: Viacheslav Ovsiienko , Lior Margalit , Matan Azrad , David Christensen , Bruce Richardson , Konstantin Ananyev , nd Thread-Topic: [PATCH v4 14/14] net/mlx5: add shared Rx queue port datapath support Thread-Index: AQHX0Xh7zcjcofy45U635POKFTJOmKv0eaHg Date: Fri, 5 Nov 2021 06:40:55 +0000 Message-ID: References: <20210727034204.20649-1-xuemingl@nvidia.com> <20211104123320.1638915-1-xuemingl@nvidia.com> <20211104123320.1638915-15-xuemingl@nvidia.com> In-Reply-To: <20211104123320.1638915-15-xuemingl@nvidia.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-ts-tracking-id: C5357612A7167B4E9B3FCF7B2C6E25A6.0 x-checkrecipientchecked: true Authentication-Results-Original: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; x-ms-publictraffictype: Email X-MS-Office365-Filtering-Correlation-Id: fbc58f1e-6835-4c2f-3868-08d9a0273d4b x-ms-traffictypediagnostic: AS8PR08MB7339:|AM9PR08MB6643: X-Microsoft-Antispam-PRVS: x-checkrecipientrouted: true nodisclaimer: true x-ms-oob-tlc-oobclassifiers: OLM:1002;OLM:1002; X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam-Untrusted: BCL:0; X-Microsoft-Antispam-Message-Info-Original: YAI908OiDSXDqBQxAnJXG6qcENORSCbgNA2KgMik3s0sln08tQ2+DvYThkSDLUq0ZUHpnWwM002CkoYyWnWUACB+/rmfjBjOE+LyuBGkpN3AZsZGW/Ntt/NeNFAFpMWDqLnZLpR4zLS8yXRXh1lmMKzS2ygUUw6kucD5GDKbLqv1j1AhCi+mkBQ3qjdQGtQCBsH9n2cXb6bN0VpKX+1UdH4LWjVFzN/xbI6EwlJ97It9Lql3ND9SF0N4D9VoB4qoZBqAZ/98MK+OWTdVYr9IDnmBvbnCdMD+xXthewpYAc6fjeu47QpdHrOIF1dQg+MJjrkhoPh1NFSKIldcnBZJPAaaKekCmonuMUvROJbKMLbg2bVzxex08SEiZ9pH7F628Nqjwip9vkX7/wsNAn/ZOMy4OP3nAjtLSLF0P2oRphq4IgDSFeOPYRvSRXfgdZi/mGkuo6SJsl/JU+BgxRkrBjd+DvR8xs7en+zT8e8hGOJaADiZu90VIe2iEeeZzxCVvhD5FRJUWbHiuiFTFAFxtiUEz4IdRleg1/JW5AlFywO8j0kAZsY8TFsodYmHQwgukTOlge52GojKu+lpQwVIGdwkxIj0aJ6GFKPFJVxVpKTattxL2sT8hIfNm8k7CXaHE6u1bC39zS5zMcfTmZxDo6jQL7r1+hnI1FWkTzHe3GGCUbiwxZp5PNQu8aV/ghu8gqIxChotUYAlpYqyuwfwdQ== X-Forefront-Antispam-Report-Untrusted: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:AS8PR08MB7080.eurprd08.prod.outlook.com; PTR:; CAT:NONE; SFS:(4636009)(366004)(122000001)(6506007)(110136005)(7696005)(316002)(33656002)(186003)(26005)(8676002)(76116006)(508600001)(8936002)(53546011)(38100700002)(54906003)(64756008)(2906002)(83380400001)(9686003)(86362001)(55016002)(5660300002)(4326008)(52536014)(71200400001)(66446008)(66476007)(66556008)(38070700005)(66946007); DIR:OUT; SFP:1101; Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-MS-Exchange-Transport-CrossTenantHeadersStamped: AS8PR08MB7339 Original-Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=arm.com; X-EOPAttributedMessage: 0 X-MS-Exchange-Transport-CrossTenantHeadersStripped: AM5EUR03FT054.eop-EUR03.prod.protection.outlook.com X-MS-Office365-Filtering-Correlation-Id-Prvs: 2b873e67-e433-4d0f-0c9c-08d9a027386e X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: el2+4C9sXuYEGdDwpGT86pGsa5C+nRpPDsSRQfzGLpYNFSmVUtEQ0GD+tBncLPALlRflj0pTitu2Z83kYhoM6m4eXMAUf6gK+l6DdY/gSnZjs9yu51W10KFg4t3S89F1UH3gc/k/S8OS6+7Ppaxm48OdK2WquD2f1azqaE3GipyRHi2yVLZpASp2zE9dXjOqpCbtHKLzw+q+uqiHiZYPVsdU5rWwpvzmg7LlqA7Wishkk6g/LSCegLu0+gYtML1nFD69TTcL4x2oahW5lScpuQB1NkCqiw74DIufSm2kXDZDb2RUXiiVdD2r5nvwYJUllCkoBmUx4faOB2BE5XKJqbNAd1OX8tutJDo3IGA2sugB45C6TNB8/r+xF+xqVS1kem6suR81P209ZkX4cwf5GcwmULlKSLvLFK4LBd6pePN+CFR3U8qq8t/FGgP4S47WR+wqBDE64CGnA8ge2uiO10xkDBEBONrce+aG8gDVLJX/E9Euw2YtTKCsdbrrDdsSlqVSBfqxC7BggGrhqfYMfX2RFx2XJ3N/KFozHANcMcLfwzN2+52fxBYTQVqwlWzJnvIbqZ63hK65M0aJZ8DRU2xdLZO7HF6Vuw5+bGLsGD8azy3WVPIqMVbDSf4+fzui950FtrDDrPfUAgS6YfYeelG+b07qzb1TApdh5gc9bC5MDR5KP1v/D4VO26uGg7myAY5FM8d4TN1acJkoJsy4wA== X-Forefront-Antispam-Report: CIP:63.35.35.123; CTRY:IE; LANG:en; SCL:1; SRV:; IPV:CAL; SFV:NSPM; H:64aa7808-outbound-1.mta.getcheckrecipient.com; PTR:ec2-63-35-35-123.eu-west-1.compute.amazonaws.com; CAT:NONE; SFS:(4636009)(46966006)(36840700001)(83380400001)(7696005)(110136005)(316002)(70206006)(70586007)(53546011)(186003)(8676002)(336012)(356005)(26005)(33656002)(6506007)(9686003)(55016002)(54906003)(8936002)(36860700001)(52536014)(47076005)(508600001)(63370400001)(86362001)(2906002)(63350400001)(81166007)(4326008)(5660300002)(82310400003); DIR:OUT; SFP:1101; X-OriginatorOrg: arm.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 05 Nov 2021 06:41:04.1414 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: fbc58f1e-6835-4c2f-3868-08d9a0273d4b X-MS-Exchange-CrossTenant-Id: f34e5979-57d9-4aaa-ad4d-b122a662184d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=f34e5979-57d9-4aaa-ad4d-b122a662184d; Ip=[63.35.35.123]; Helo=[64aa7808-outbound-1.mta.getcheckrecipient.com] X-MS-Exchange-CrossTenant-AuthSource: AM5EUR03FT054.eop-EUR03.prod.protection.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Anonymous X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR08MB6643 Subject: Re: [dpdk-dev] [PATCH v4 14/14] net/mlx5: add shared Rx queue port datapath support X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" > -----Original Message----- > From: Xueming Li > Sent: Thursday, November 4, 2021 8:33 PM > To: dev@dpdk.org > Cc: Viacheslav Ovsiienko ; xuemingl@nvidia.com; > Lior Margalit ; Matan Azrad ; > David Christensen ; Ruifeng Wang > ; Bruce Richardson > ; Konstantin Ananyev > > Subject: [PATCH v4 14/14] net/mlx5: add shared Rx queue port datapath > support >=20 > From: Viacheslav Ovsiienko >=20 > When receive packet, mlx5 PMD saves mbuf port number from RxQ data. >=20 > To support shared RxQ, save port number into RQ context as user index. > Received packet resolve port number from CQE user index which derived > from RQ context. >=20 > Legacy Verbs API doesn't support RQ user index setting, still read from R= xQ > port number. >=20 > Signed-off-by: Xueming Li > Signed-off-by: Viacheslav Ovsiienko > Acked-by: Slava Ovsiienko > --- > drivers/net/mlx5/mlx5_devx.c | 1 + > drivers/net/mlx5/mlx5_rx.c | 1 + > drivers/net/mlx5/mlx5_rxq.c | 3 ++- > drivers/net/mlx5/mlx5_rxtx_vec_altivec.h | 6 ++++++ > drivers/net/mlx5/mlx5_rxtx_vec_neon.h | 12 +++++++++++- > drivers/net/mlx5/mlx5_rxtx_vec_sse.h | 8 +++++++- > 6 files changed, 28 insertions(+), 3 deletions(-) >=20 > diff --git a/drivers/net/mlx5/mlx5_devx.c b/drivers/net/mlx5/mlx5_devx.c > index d3d189ab7f2..a9f9f4af700 100644 > --- a/drivers/net/mlx5/mlx5_devx.c > +++ b/drivers/net/mlx5/mlx5_devx.c > @@ -277,6 +277,7 @@ mlx5_rxq_create_devx_rq_resources(struct > mlx5_rxq_priv *rxq) >=20 > MLX5_WQ_END_PAD_MODE_NONE; > rq_attr.wq_attr.pd =3D cdev->pdn; > rq_attr.counter_set_id =3D priv->counter_set_id; > + rq_attr.user_index =3D rte_cpu_to_be_16(priv->dev_data->port_id); > if (rxq_data->shared) /* Create RMP based RQ. */ > rxq->devx_rq.rmp =3D &rxq_ctrl->obj->devx_rmp; > /* Create RQ using DevX API. */ > diff --git a/drivers/net/mlx5/mlx5_rx.c b/drivers/net/mlx5/mlx5_rx.c inde= x > 1ffa1b95b88..4d85f64accd 100644 > --- a/drivers/net/mlx5/mlx5_rx.c > +++ b/drivers/net/mlx5/mlx5_rx.c > @@ -709,6 +709,7 @@ rxq_cq_to_mbuf(struct mlx5_rxq_data *rxq, struct > rte_mbuf *pkt, { > /* Update packet information. */ > pkt->packet_type =3D rxq_cq_to_pkt_type(rxq, cqe, mcqe); > + pkt->port =3D unlikely(rxq->shared) ? cqe->user_index_low : > +rxq->port_id; >=20 > if (rxq->rss_hash) { > uint32_t rss_hash_res =3D 0; > diff --git a/drivers/net/mlx5/mlx5_rxq.c b/drivers/net/mlx5/mlx5_rxq.c > index 8feb3e2c0fb..4515d531835 100644 > --- a/drivers/net/mlx5/mlx5_rxq.c > +++ b/drivers/net/mlx5/mlx5_rxq.c > @@ -186,7 +186,8 @@ rxq_alloc_elts_sprq(struct mlx5_rxq_ctrl *rxq_ctrl) > mbuf_init->data_off =3D RTE_PKTMBUF_HEADROOM; > rte_mbuf_refcnt_set(mbuf_init, 1); > mbuf_init->nb_segs =3D 1; > - mbuf_init->port =3D rxq->port_id; > + /* For shared queues port is provided in CQE */ > + mbuf_init->port =3D rxq->shared ? 0 : rxq->port_id; > if (priv->flags & RTE_PKTMBUF_POOL_F_PINNED_EXT_BUF) > mbuf_init->ol_flags =3D RTE_MBUF_F_EXTERNAL; > /* > diff --git a/drivers/net/mlx5/mlx5_rxtx_vec_altivec.h > b/drivers/net/mlx5/mlx5_rxtx_vec_altivec.h > index 1d00c1c43d1..423e229508c 100644 > --- a/drivers/net/mlx5/mlx5_rxtx_vec_altivec.h > +++ b/drivers/net/mlx5/mlx5_rxtx_vec_altivec.h > @@ -1189,6 +1189,12 @@ rxq_cq_process_v(struct mlx5_rxq_data *rxq, > volatile struct mlx5_cqe *cq, >=20 > /* D.5 fill in mbuf - rearm_data and packet_type. */ > rxq_cq_to_ptype_oflags_v(rxq, cqes, opcode, &pkts[pos]); > + if (unlikely(rxq->shared)) { > + pkts[pos]->port =3D cq[pos].user_index_low; > + pkts[pos + p1]->port =3D cq[pos + p1].user_index_low; > + pkts[pos + p2]->port =3D cq[pos + p2].user_index_low; > + pkts[pos + p3]->port =3D cq[pos + p3].user_index_low; > + } > if (rxq->hw_timestamp) { > int offset =3D rxq->timestamp_offset; > if (rxq->rt_timestamp) { > diff --git a/drivers/net/mlx5/mlx5_rxtx_vec_neon.h > b/drivers/net/mlx5/mlx5_rxtx_vec_neon.h > index aa36df29a09..b1d16baa619 100644 > --- a/drivers/net/mlx5/mlx5_rxtx_vec_neon.h > +++ b/drivers/net/mlx5/mlx5_rxtx_vec_neon.h > @@ -787,7 +787,17 @@ rxq_cq_process_v(struct mlx5_rxq_data *rxq, > volatile struct mlx5_cqe *cq, > /* C.4 fill in mbuf - rearm_data and packet_type. */ > rxq_cq_to_ptype_oflags_v(rxq, ptype_info, flow_tag, > opcode, &elts[pos]); > - if (rxq->hw_timestamp) { > + if (unlikely(rxq->shared)) { > + elts[pos]->port =3D container_of(p0, struct mlx5_cqe, > + pkt_info)->user_index_low; I don't know hardware details on CQE, just comparing with other parts. 1. Is there a need to convert 'user_index_low' with rte_be_to_cpu_16? 2. 'cq' is available as input parameter. Can we directly use cq[pos] instea= d of using container_of(p0), just like what was done on other architectures= ? Thanks. > + elts[pos + 1]->port =3D container_of(p1, struct > mlx5_cqe, > + pkt_info)->user_index_low; > + elts[pos + 2]->port =3D container_of(p2, struct > mlx5_cqe, > + pkt_info)->user_index_low; > + elts[pos + 3]->port =3D container_of(p3, struct > mlx5_cqe, > + pkt_info)->user_index_low; > + } > + if (unlikely(rxq->hw_timestamp)) { > int offset =3D rxq->timestamp_offset; > if (rxq->rt_timestamp) { > struct mlx5_dev_ctx_shared *sh =3D rxq->sh; > diff --git a/drivers/net/mlx5/mlx5_rxtx_vec_sse.h > b/drivers/net/mlx5/mlx5_rxtx_vec_sse.h > index b0fc29d7b9e..f3d838389e2 100644 > --- a/drivers/net/mlx5/mlx5_rxtx_vec_sse.h > +++ b/drivers/net/mlx5/mlx5_rxtx_vec_sse.h > @@ -736,7 +736,13 @@ rxq_cq_process_v(struct mlx5_rxq_data *rxq, > volatile struct mlx5_cqe *cq, > *err |=3D _mm_cvtsi128_si64(opcode); > /* D.5 fill in mbuf - rearm_data and packet_type. */ > rxq_cq_to_ptype_oflags_v(rxq, cqes, opcode, &pkts[pos]); > - if (rxq->hw_timestamp) { > + if (unlikely(rxq->shared)) { > + pkts[pos]->port =3D cq[pos].user_index_low; > + pkts[pos + p1]->port =3D cq[pos + p1].user_index_low; > + pkts[pos + p2]->port =3D cq[pos + p2].user_index_low; > + pkts[pos + p3]->port =3D cq[pos + p3].user_index_low; > + } > + if (unlikely(rxq->hw_timestamp)) { > int offset =3D rxq->timestamp_offset; > if (rxq->rt_timestamp) { > struct mlx5_dev_ctx_shared *sh =3D rxq->sh; > -- > 2.33.0