From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id A654CA04FD; Wed, 8 Jun 2022 22:10:09 +0200 (CEST) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 571CC40689; Wed, 8 Jun 2022 22:10:09 +0200 (CEST) Received: from NAM11-DM6-obe.outbound.protection.outlook.com (mail-dm6nam11on2044.outbound.protection.outlook.com [40.107.223.44]) by mails.dpdk.org (Postfix) with ESMTP id C0C1440042 for ; Wed, 8 Jun 2022 22:10:07 +0200 (CEST) ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Or3Oc4dWmBIYARCRogq/J0tNpavBEaPLBnhm4MwMIJZYFbqMB1jspv7z/QqzfH3876FARjtTBajsPPlnw+XFZPmRgbtchGpmUTsS1y82WgWDyw7lXbmBWcqBuZ+ApXMOjMgf8gzIXt1pFrcMkpJJvgfD2wnU/2j92cW4NlROtDOqQE2sUPgyyhtYVI9zQP3bugEKYnQK9bF/UMvrwh437yHNsUbbL7+aDLsJ496LxoJ6VqeRUChRJWEI1jPmv6iXFrDgdoPl/3YBLbg7mtkhHqpb0tV6Etv8ff8EB2tSg2FGbIHl6OhpYtxIz2E27G0qCb4EUrtdyHgVndCD2clX4w== 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=Eci+xqDVdEP4sGYBgyIdlsgTCpj6mKIL03egul0zGZM=; b=L+9Wpn30V6q+XAcQMwBdJ7JqjvHzC8qW2qi8x/W6bJgZlzeO3MTXuapiGuIDp9DxadqnA/D3eZo1E5rY3eM/4HN8B3I/2kzcgjpC12N9yBNw6bTLSR1BfZDJfTKNyWUG0mpVtZGSf4R5tnOClarmdRO5tXaptt+f0i3BxStvFk2k2q+uXWCAlIdmTaQK5TbZorZAtjmEss7ukie+LDBUk9audi8Xix/YIFdjlO7l4YyipYnoQ5WwZjexz16JTeSy4+84ai8skaIVTh0PherzOcb78eTKTssFWArIOcsGnfE58BsMbVB0oP3WxV1DiOfmIomMtXki/qaevw8sTDnIvg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nvidia.com; dmarc=pass action=none header.from=nvidia.com; dkim=pass header.d=nvidia.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Nvidia.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=Eci+xqDVdEP4sGYBgyIdlsgTCpj6mKIL03egul0zGZM=; b=HNz+XltIsWd6Pu32FvCTg3833L1lC4ndEjmqY1dL1HVhWvsDRN82dJKGRrbEiaFbn1JIC5D/+4IGXqG3WfdQB8zrPtRFI6wvpPM9HyRHnhAxXBbUmTf1kspL+7QwgTHXfQXTJequ8J1v4PfneAAyRfGjij+L86K58w1PFofNwbM9pPWNuQdjQTHg5xZiY0UeKdrVzxtk/ffoJ84l0/tR3mZBs+UTkZqXlmL/LzF02O0+KlVAPaFWEMDNE3Lc54HtST7Ne/zJkb2zFJtFTLbYHZdlR2TOybwuEpjgVvkX7YqoZUTBeh3QJxK7poJqpIAXGSqPRfDP2lYK6BRxnfxuww== Received: from DM4PR12MB5389.namprd12.prod.outlook.com (2603:10b6:5:39e::8) by CY4PR1201MB0021.namprd12.prod.outlook.com (2603:10b6:910:1a::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.18; Wed, 8 Jun 2022 20:10:05 +0000 Received: from DM4PR12MB5389.namprd12.prod.outlook.com ([fe80::202f:4817:3698:ea4]) by DM4PR12MB5389.namprd12.prod.outlook.com ([fe80::202f:4817:3698:ea4%4]) with mapi id 15.20.5332.012; Wed, 8 Jun 2022 20:10:05 +0000 From: Matan Azrad To: Spike Du , Slava Ovsiienko , Ori Kam , "NBU-Contact-Thomas Monjalon (EXTERNAL)" CC: "andrew.rybchenko@oktetlabs.ru" , "stephen@networkplumber.org" , "mb@smartsharesystems.com" , "dev@dpdk.org" , Raslan Darawsheh Subject: Re: [PATCH v5 1/7] net/mlx5: add LWM support for Rxq Thread-Topic: [PATCH v5 1/7] net/mlx5: add LWM support for Rxq Thread-Index: AQHYem6OMwM5A80/2U61lWgVsUTx/a1F8nuM Date: Wed, 8 Jun 2022 20:10:05 +0000 Message-ID: References: <20220603124821.1148119-1-spiked@nvidia.com> <20220607125942.241379-1-spiked@nvidia.com> <20220607125942.241379-2-spiked@nvidia.com> In-Reply-To: <20220607125942.241379-2-spiked@nvidia.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: authentication-results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=nvidia.com; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 8aa0cb69-91b9-46cd-122d-08da498ae12d x-ms-traffictypediagnostic: CY4PR1201MB0021:EE_ x-ld-processed: 43083d15-7273-40c1-b7db-39efd9ccc17a,ExtAddr x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: 7xZCZ0hI4JOBh4p8tXpshkgnxGNvCMgtGnmD6ERKuP9DIibY9tM1D4RB8H6KL7gIj1CkbBc7SZzYAGViJPWeXZsPdcCA5xTwL1fGzLV1tNwIEqrXj1Bx2JX+9E3oD/eY0FFL3fm/HuD6tfFlSr8nm0kJxrlU5VacK325Zw1dgdZhek/FxfVSJeL86Ss/VT0Gicsg1oxqvqGOC0csf5ezkrs98RjmzZKFIK2B5i7Svrk6K1+PFMBKHnakwWk/R6xA1v8FcqnoLBbbAnIh1dV7UYTh0ok3QlKrMUDF4ceGVFi4wTWszGhGgygokhMvh8TemGhpS4UiVvbKTZYiLDDVZqfamyAbGGzmZTI9Lcicyp1j+Kgp562DAmByVY5rNe9065ACITX8o7HBOQB7SxAS5E8n/cIGL2foklVxB5UCVrEmoI0yWh3JUhUJN9CzWrbHjTeKKMQ0eb9lJYk/MhpF9qkRXYvgNi+ST/sk/XKH77WGdSS5wC3I611Vbkf2ou9bEg2cyJeyIaOB8n0J97pQxT0MlIGXUWgv9e+/oo4Tu6XNnJeqTGsg+7pZ52pGl+d6ZiZ//gkSc/XMU15UBq2lNop3KfVxZSLEVUkjfu9EVRt5JtK15/eHQH4jQej8ctYsbMD89XPIzyhkmhum+vI1PjV6CFDbRAsZDdf7dq0HaLubGvHHb+Kavnf4Q4+yxUCnb3sUWY0WqPBwMh/q7clzhvtk5jbjnOdN7ghAWQO4ivt0IPdbecqCg+d9ys8jPFhQpLku+kusAz/tt7+FbSEoRgXxWrL3WyAphr/s+85xt2I= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR12MB5389.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(4326008)(186003)(107886003)(2906002)(9686003)(38070700005)(86362001)(55016003)(38100700002)(166002)(26005)(6506007)(122000001)(33656002)(110136005)(316002)(54906003)(66946007)(66476007)(66446008)(64756008)(66556008)(8676002)(91956017)(76116006)(7696005)(52536014)(5660300002)(53546011)(45080400002)(83380400001)(508600001)(8936002)(71200400001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?windows-1255?Q?poYsi4by4V+AJxc8hToPzJ39vM9gEuPw2KB/ogkvK0haA0QDlUXlOct+?= =?windows-1255?Q?TJG7/+VIUVP4NrOnHZWwtktOMl6dI0oZgi5jl0EPCNI9enj1m6X6u/7S?= =?windows-1255?Q?jFEofdgZOCvn4On2wPcGg6vw33gTJgEP8FofhZfllppYdNR7xYsZisUT?= =?windows-1255?Q?qU7xaYrDZxdfhuNJfsshCOJazMUr7/ZPoOzVmwrtTIpQ/mhHJEd3Jk4G?= =?windows-1255?Q?NqXClwC6xugJQzOLfn/2VGWjjUa70WJeisSq5IFWgYCPry5852kpqpuC?= =?windows-1255?Q?g6QcbLKQ2RrkLMJgmuD8zJSADAyEJoxjzFr4jmLlVf3s9T2yMuRbbG6g?= =?windows-1255?Q?BvX2m+px1e8olKPWHqMch/QWyfTRCgq7MPhD6kE+JLPNBfjvFOBjMsUr?= =?windows-1255?Q?TG1nd0J+QeMD2apKQbTSz/zqRrrxALkXqP0C+AK3bjYIZKecALUZNSLL?= =?windows-1255?Q?PgeRtIH17hCUXbumRZ8A/Tmxwp6UaloptiZNrkZTcd9i4XUyxSlRU1pV?= =?windows-1255?Q?l6ZFMbwlBjYSgeQ3kwH8rpxM4yo7hyo+Qea3lXoD+CAx1p6jUsGWwZcL?= =?windows-1255?Q?Qfm3fqyT6Bx6+/36rk0x8CBEp91riv1PiN8zifEkLAZA/yfmntIDRK+M?= =?windows-1255?Q?X2N4v7niRXdnLhnQlt0NBJunq3CXS7A6LDqcOLEeciXEw6JqePzuXgF+?= =?windows-1255?Q?KS7Jlwyv0A1uzmMZQuSjUovROoDoiWQxPfGCUshXMNcdXI3wtyyOqAeB?= =?windows-1255?Q?iipuWvlm6gJscKB3HvHIQlAuaUi0YKyGH0SjdToiaM+/4upYGsDbbYOb?= =?windows-1255?Q?LjqAh2sakXF8G0iHrkv8UbQ5GEQtSARrXhj5k+cj9kcA0g+Y5c/9kpSL?= =?windows-1255?Q?LtJFM105u/+UGMP9FfTKTGuNsuiFAidrgnUYIRmz7xrOWWcsKLkm3qiC?= =?windows-1255?Q?PYGOfMaw2JkpELYW7XUaRLDqYDF1/lmLkqJ7npq39r0LwUuw3sUIszLP?= =?windows-1255?Q?YzcI7i+Y0Q12ISXdpMyFcXZaGeC/Q21h2oe+9zbniNhVuVAnRnP2n5ye?= =?windows-1255?Q?TSGcop8NjdNHkpqDXgiAsFN1ORt7USP5JbAGGb/dtcFxciFPTs2pEaSF?= =?windows-1255?Q?yC/MiQtq1LfiEwCupOszH+EmTpEFqg48VNV0WsEA3CTeuTXbYfJaAXT9?= =?windows-1255?Q?0+QMA2zPno9352SxKYeid2AynGHJ3wRgoJ8igc3B0ImXxLF3qK/q7+ED?= =?windows-1255?Q?HnM+VjwFx18AZz9kZiB1d6JglZT2SBrLoBvTqHrpxK84Q3fL03Y24GPc?= =?windows-1255?Q?Xn1d15j+zuVWulWXpn743PbtVA3MfbZrUgRT4oECMqHuSnvr5InAUelg?= =?windows-1255?Q?eITJOXPQrttVKqLDlG9oKMDZdXwBpEtGV6BgfJoRDhXOxxIb6brQZcwK?= =?windows-1255?Q?xBB1YZLeRuB0uRnITmk5lA1qldk4MDSyafKW1i/IPPELQ4U76+vbsQCl?= =?windows-1255?Q?7eP/zx91FBagQ7QFc2rFHWRXKr04OJR+14g46OgiVhEUAojcdsJKTzTt?= =?windows-1255?Q?wRc/ZOqXn8NKkMWgcb11CADo2Bp8QhX6ZENywGvUFXZFkGXcvp/oPfkf?= =?windows-1255?Q?6GPKajzYcr4VMCiOzUDalre5jmTXD3ZoxQpmmVVCHAV4HpXiFQKS2eNM?= =?windows-1255?Q?KfwPK8Rn72cZNIG0S2CZPWsH78sSxZ377Tri2Bp/PHwH9PRrXBc7Y9w8?= =?windows-1255?Q?lahEMTyvQTq3hOUa7q2fOaDzCRr/p6mtvxWyQ61gV5LEdul0SFsBPEWN?= =?windows-1255?Q?FHS3v3Ut/bIdBN3hWnqJ/U051WEykKScReQzKVdY3ADXeOFmTRdB9fWP?= =?windows-1255?Q?isIC5LDxILgKDEgxaiHls0gvDZyZ9qRc5Cc=3D?= Content-Type: multipart/alternative; boundary="_000_DM4PR12MB5389875B617DA1592FCE6C2FDFA49DM4PR12MB5389namp_" MIME-Version: 1.0 X-OriginatorOrg: Nvidia.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5389.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 8aa0cb69-91b9-46cd-122d-08da498ae12d X-MS-Exchange-CrossTenant-originalarrivaltime: 08 Jun 2022 20:10:05.7863 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 43083d15-7273-40c1-b7db-39efd9ccc17a X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: cKueIlTMyXj6JxX9Iq7vILJxwEJY5c2iVWdmDiCqn9JL8HtSbL6CPpjgDqIWkREeGaZmBuYEdeBHW8ZOTvhmwg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR1201MB0021 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 --_000_DM4PR12MB5389875B617DA1592FCE6C2FDFA49DM4PR12MB5389namp_ Content-Type: text/plain; charset="windows-1255" Content-Transfer-Encoding: quoted-printable Series-acked-by: Matan Azrad > =F7=E1=EC =FEOutlook =F2=E1=E5=F8 Android=FE ________________________________ From: Spike Du Sent: Tuesday, June 7, 2022 3:59:36 PM To: Matan Azrad ; Slava Ovsiienko ; Ori Kam ; NBU-Contact-Thomas Monjalon (EXTERNAL) Cc: andrew.rybchenko@oktetlabs.ru ; stephen@= networkplumber.org ; mb@smartsharesystems.com <= mb@smartsharesystems.com>; dev@dpdk.org ; Raslan Darawsheh Subject: [PATCH v5 1/7] net/mlx5: add LWM support for Rxq Add lwm(Limit WaterMark) field to Rxq object which indicates the percentage of RX queue size used by HW to raise LWM event to the user. Allow LWM setting in modify_rq command. Allow the LWM configuration dynamically by adding RDY2RDY state change. Signed-off-by: Spike Du --- drivers/net/mlx5/mlx5.h | 1 + drivers/net/mlx5/mlx5_devx.c | 13 ++++++++++++- drivers/net/mlx5/mlx5_devx.h | 1 + drivers/net/mlx5/mlx5_rx.h | 1 + 4 files changed, 15 insertions(+), 1 deletion(-) diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h index ef755ee..305edff 100644 --- a/drivers/net/mlx5/mlx5.h +++ b/drivers/net/mlx5/mlx5.h @@ -1395,6 +1395,7 @@ enum mlx5_rxq_modify_type { MLX5_RXQ_MOD_RST2RDY, /* modify state from reset to ready. */ MLX5_RXQ_MOD_RDY2ERR, /* modify state from ready to error. */ MLX5_RXQ_MOD_RDY2RST, /* modify state from ready to reset. */ + MLX5_RXQ_MOD_RDY2RDY, /* modify state from ready to ready. */ }; enum mlx5_txq_modify_type { diff --git a/drivers/net/mlx5/mlx5_devx.c b/drivers/net/mlx5/mlx5_devx.c index 4b48f94..c918a50 100644 --- a/drivers/net/mlx5/mlx5_devx.c +++ b/drivers/net/mlx5/mlx5_devx.c @@ -62,7 +62,7 @@ * @return * 0 on success, a negative errno value otherwise and rte_errno is set. */ -static int +int mlx5_devx_modify_rq(struct mlx5_rxq_priv *rxq, uint8_t type) { struct mlx5_devx_modify_rq_attr rq_attr; @@ -76,6 +76,11 @@ case MLX5_RXQ_MOD_RST2RDY: rq_attr.rq_state =3D MLX5_RQC_STATE_RST; rq_attr.state =3D MLX5_RQC_STATE_RDY; + if (rxq->lwm) { + rq_attr.modify_bitmask |=3D + MLX5_MODIFY_RQ_IN_MODIFY_BITMASK_WQ_LWM; + rq_attr.lwm =3D rxq->lwm; + } break; case MLX5_RXQ_MOD_RDY2ERR: rq_attr.rq_state =3D MLX5_RQC_STATE_RDY; @@ -85,6 +90,12 @@ rq_attr.rq_state =3D MLX5_RQC_STATE_RDY; rq_attr.state =3D MLX5_RQC_STATE_RST; break; + case MLX5_RXQ_MOD_RDY2RDY: + rq_attr.rq_state =3D MLX5_RQC_STATE_RDY; + rq_attr.state =3D MLX5_RQC_STATE_RDY; + rq_attr.modify_bitmask |=3D MLX5_MODIFY_RQ_IN_MODIFY_BITMAS= K_WQ_LWM; + rq_attr.lwm =3D rxq->lwm; + break; default: break; } diff --git a/drivers/net/mlx5/mlx5_devx.h b/drivers/net/mlx5/mlx5_devx.h index a95207a..ebd1da4 100644 --- a/drivers/net/mlx5/mlx5_devx.h +++ b/drivers/net/mlx5/mlx5_devx.h @@ -11,6 +11,7 @@ int mlx5_txq_devx_modify(struct mlx5_txq_obj *obj, enum mlx5_txq_modify_type type, uint8_t dev_port)= ; void mlx5_txq_devx_obj_release(struct mlx5_txq_obj *txq_obj); +int mlx5_devx_modify_rq(struct mlx5_rxq_priv *rxq, uint8_t type); extern struct mlx5_obj_ops devx_obj_ops; diff --git a/drivers/net/mlx5/mlx5_rx.h b/drivers/net/mlx5/mlx5_rx.h index e715ed6..25a5f2c 100644 --- a/drivers/net/mlx5/mlx5_rx.h +++ b/drivers/net/mlx5/mlx5_rx.h @@ -175,6 +175,7 @@ struct mlx5_rxq_priv { struct mlx5_devx_rq devx_rq; struct rte_eth_hairpin_conf hairpin_conf; /* Hairpin configuration= . */ uint32_t hairpin_status; /* Hairpin binding status. */ + uint32_t lwm:16; }; /* External RX queue descriptor. */ -- 1.8.3.1 --_000_DM4PR12MB5389875B617DA1592FCE6C2FDFA49DM4PR12MB5389namp_ Content-Type: text/html; charset="windows-1255" Content-Transfer-Encoding: quoted-printable Series-acked-by: Matan Azrad <matan@nvidia.com= >


From: Spike Du <spiked@n= vidia.com>
Sent: Tuesday, June 7, 2022 3:59:36 PM
To: Matan Azrad <matan@nvidia.com>; Slava Ovsiienko <viache= slavo@nvidia.com>; Ori Kam <orika@nvidia.com>; NBU-Contact-Thomas = Monjalon (EXTERNAL) <thomas@monjalon.net>
Cc: andrew.rybchenko@oktetlabs.ru <andrew.rybchenko@oktetlabs.ru&= gt;; stephen@networkplumber.org <stephen@networkplumber.org>; mb@smar= tsharesystems.com <mb@smartsharesystems.com>; dev@dpdk.org <dev@dp= dk.org>; Raslan Darawsheh <rasland@nvidia.com>
Subject: [PATCH v5 1/7] net/mlx5: add LWM support for Rxq
 
Add lwm(Limit WaterMark) field to Rxq object which= indicates the percentage
of RX queue size used by HW to raise LWM event to the user.
Allow LWM setting in modify_rq command.
Allow the LWM configuration dynamically by adding RDY2RDY state change.

Signed-off-by: Spike Du <spiked@nvidia.com>
---
 drivers/net/mlx5/mlx5.h      |  1 +
 drivers/net/mlx5/mlx5_devx.c | 13 ++++++++++++-
 drivers/net/mlx5/mlx5_devx.h |  1 +
 drivers/net/mlx5/mlx5_rx.h   |  1 +
 4 files changed, 15 insertions(+), 1 deletion(-)

diff --git a/drivers/net/mlx5/mlx5.h b/drivers/net/mlx5/mlx5.h
index ef755ee..305edff 100644
--- a/drivers/net/mlx5/mlx5.h
+++ b/drivers/net/mlx5/mlx5.h
@@ -1395,6 +1395,7 @@ enum mlx5_rxq_modify_type {
         MLX5_RXQ_MOD_RST2RDY, /* m= odify state from reset to ready. */
         MLX5_RXQ_MOD_RDY2ERR, /* m= odify state from ready to error. */
         MLX5_RXQ_MOD_RDY2RST, /* m= odify state from ready to reset. */
+       MLX5_RXQ_MOD_RDY2RDY, /* modify state= from ready to ready. */
 };
 
 enum mlx5_txq_modify_type {
diff --git a/drivers/net/mlx5/mlx5_devx.c b/drivers/net/mlx5/mlx5_devx.c index 4b48f94..c918a50 100644
--- a/drivers/net/mlx5/mlx5_devx.c
+++ b/drivers/net/mlx5/mlx5_devx.c
@@ -62,7 +62,7 @@
  * @return
  *   0 on success, a negative errno value otherwise and rte= _errno is set.
  */
-static int
+int
 mlx5_devx_modify_rq(struct mlx5_rxq_priv *rxq, uint8_t type)
 {
         struct mlx5_devx_modify_rq= _attr rq_attr;
@@ -76,6 +76,11 @@
         case MLX5_RXQ_MOD_RST2RDY:=
            &nb= sp;    rq_attr.rq_state =3D MLX5_RQC_STATE_RST;
            &nb= sp;    rq_attr.state =3D MLX5_RQC_STATE_RDY;
+            &n= bsp;  if (rxq->lwm) {
+            &n= bsp;          rq_attr.modify_b= itmask |=3D
+            &n= bsp;            = ;      MLX5_MODIFY_RQ_IN_MODIFY_BITMASK_WQ_LWM; +            &n= bsp;          rq_attr.lwm =3D = rxq->lwm;
+            &n= bsp;  }
            &nb= sp;    break;
         case MLX5_RXQ_MOD_RDY2ERR:=
            &nb= sp;    rq_attr.rq_state =3D MLX5_RQC_STATE_RDY;
@@ -85,6 +90,12 @@
            &nb= sp;    rq_attr.rq_state =3D MLX5_RQC_STATE_RDY;
            &nb= sp;    rq_attr.state =3D MLX5_RQC_STATE_RST;
            &nb= sp;    break;
+       case MLX5_RXQ_MOD_RDY2RDY:
+            &n= bsp;  rq_attr.rq_state =3D MLX5_RQC_STATE_RDY;
+            &n= bsp;  rq_attr.state =3D MLX5_RQC_STATE_RDY;
+            &n= bsp;  rq_attr.modify_bitmask |=3D MLX5_MODIFY_RQ_IN_MODIFY_BITMASK_WQ_= LWM;
+            &n= bsp;  rq_attr.lwm =3D rxq->lwm;
+            &n= bsp;  break;
         default:
            &nb= sp;    break;
         }
diff --git a/drivers/net/mlx5/mlx5_devx.h b/drivers/net/mlx5/mlx5_devx.h index a95207a..ebd1da4 100644
--- a/drivers/net/mlx5/mlx5_devx.h
+++ b/drivers/net/mlx5/mlx5_devx.h
@@ -11,6 +11,7 @@
 int mlx5_txq_devx_modify(struct mlx5_txq_obj *obj,
            &nb= sp;            = enum mlx5_txq_modify_type type, uint8_t dev_port);
 void mlx5_txq_devx_obj_release(struct mlx5_txq_obj *txq_obj);
+int mlx5_devx_modify_rq(struct mlx5_rxq_priv *rxq, uint8_t type);
 
 extern struct mlx5_obj_ops devx_obj_ops;
 
diff --git a/drivers/net/mlx5/mlx5_rx.h b/drivers/net/mlx5/mlx5_rx.h
index e715ed6..25a5f2c 100644
--- a/drivers/net/mlx5/mlx5_rx.h
+++ b/drivers/net/mlx5/mlx5_rx.h
@@ -175,6 +175,7 @@ struct mlx5_rxq_priv {
         struct mlx5_devx_rq devx_r= q;
         struct rte_eth_hairpin_con= f hairpin_conf; /* Hairpin configuration. */
         uint32_t hairpin_status; /= * Hairpin binding status. */
+       uint32_t lwm:16;
 };
 
 /* External RX queue descriptor. */
--
1.8.3.1

--_000_DM4PR12MB5389875B617DA1592FCE6C2FDFA49DM4PR12MB5389namp_--