From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from dpdk.org (dpdk.org [92.243.14.124]) by dpdk.space (Postfix) with ESMTP id AE949A0096 for ; Wed, 8 May 2019 12:16:30 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id A7A362862; Wed, 8 May 2019 12:16:30 +0200 (CEST) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 364FC2BD5 for ; Wed, 8 May 2019 12:16:29 +0200 (CEST) Received: from smtp.corp.redhat.com (int-mx08.intmail.prod.int.phx2.redhat.com [10.5.11.23]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 9EE083087930; Wed, 8 May 2019 10:16:28 +0000 (UTC) Received: from rh.redhat.com (ovpn-117-210.ams2.redhat.com [10.36.117.210]) by smtp.corp.redhat.com (Postfix) with ESMTP id B60FC1A267; Wed, 8 May 2019 10:16:27 +0000 (UTC) From: Kevin Traynor To: Viacheslav Ovsiienko Cc: Yongseok Koh , dpdk stable Date: Wed, 8 May 2019 11:15:04 +0100 Message-Id: <20190508101534.8984-22-ktraynor@redhat.com> In-Reply-To: <20190508101534.8984-1-ktraynor@redhat.com> References: <20190508101534.8984-1-ktraynor@redhat.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.84 on 10.5.11.23 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.45]); Wed, 08 May 2019 10:16:28 +0000 (UTC) Subject: [dpdk-stable] patch 'net/mlx5: fix memory region cleanup' has been queued to LTS release 18.11.2 X-BeenThere: stable@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches for DPDK stable branches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: stable-bounces@dpdk.org Sender: "stable" Hi, FYI, your patch has been queued to LTS release 18.11.2 Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet. It will be pushed if I get no objections before 05/13/19. So please shout if anyone has objections. Also note that after the patch there's a diff of the upstream commit vs the patch applied to the branch. This will indicate if there was any rebasing needed to apply to the stable branch. If there were code changes for rebasing (ie: not only metadata diffs), please double check that the rebase was correctly done. Queued patches are on a temporary branch at: https://github.com/kevintraynor/dpdk-stable-queue This queued commit can be viewed at: https://github.com/kevintraynor/dpdk-stable-queue/commit/a4d0145b1b580f192de496feb5c8974dbaaa472f Thanks. Kevin Traynor --- >From a4d0145b1b580f192de496feb5c8974dbaaa472f Mon Sep 17 00:00:00 2001 From: Viacheslav Ovsiienko Date: Fri, 12 Apr 2019 15:45:27 +0000 Subject: [PATCH] net/mlx5: fix memory region cleanup [ upstream commit f8753eae84041a7f5ea19434e80651cc2a9a9162 ] mlx5 driver has a global list of Memory Regions created by device, and there is a ml5_mr_release() routine which makes a memory cleanup at device closing. The head of device MR list was fetched outside the rwlock protected section. Also some noticed typos are fixed. Fixes: 974f1e7ef146 ("net/mlx5: add new memory region support") Signed-off-by: Viacheslav Ovsiienko Acked-by: Yongseok Koh --- drivers/net/mlx5/mlx5_mr.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/net/mlx5/mlx5_mr.c b/drivers/net/mlx5/mlx5_mr.c index e255650ad..01bf59106 100644 --- a/drivers/net/mlx5/mlx5_mr.c +++ b/drivers/net/mlx5/mlx5_mr.c @@ -466,5 +466,5 @@ mr_free(struct mlx5_mr *mr) /** - * Releass resources of detached MR having no online entry. + * Release resources of detached MR having no online entry. * * @param dev @@ -516,5 +516,5 @@ mr_find_contig_memsegs_cb(const struct rte_memseg_list *msl, /** - * Create a new global Memroy Region (MR) for a missing virtual address. + * Create a new global Memory Region (MR) for a missing virtual address. * Register entire virtually contiguous memory chunk around the address. * @@ -624,5 +624,5 @@ alloc_resources: mr->ms_bmp = rte_bitmap_init(ms_n, bmp_mem, bmp_size); if (mr->ms_bmp == NULL) { - DEBUG("port %u unable to initialize bitamp for a new MR of" + DEBUG("port %u unable to initialize bitmap for a new MR of" " address (%p).", dev->data->port_id, (void *)addr); @@ -1351,5 +1351,5 @@ mlx5_mr_release(struct rte_eth_dev *dev) { struct mlx5_priv *priv = dev->data->dev_private; - struct mlx5_mr *mr_next = LIST_FIRST(&priv->mr.mr_list); + struct mlx5_mr *mr_next; /* Remove from memory callback device list. */ @@ -1361,4 +1361,5 @@ mlx5_mr_release(struct rte_eth_dev *dev) rte_rwlock_write_lock(&priv->mr.rwlock); /* Detach from MR list and move to free list. */ + mr_next = LIST_FIRST(&priv->mr.mr_list); while (mr_next != NULL) { struct mlx5_mr *mr = mr_next; -- 2.20.1 --- Diff of the applied patch vs upstream commit (please double-check if non-empty: --- --- - 2019-05-08 11:05:06.949187622 +0100 +++ 0022-net-mlx5-fix-memory-region-cleanup.patch 2019-05-08 11:05:05.802933326 +0100 @@ -1 +1 @@ -From f8753eae84041a7f5ea19434e80651cc2a9a9162 Mon Sep 17 00:00:00 2001 +From a4d0145b1b580f192de496feb5c8974dbaaa472f Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit f8753eae84041a7f5ea19434e80651cc2a9a9162 ] + @@ -13 +14,0 @@ -Cc: stable@dpdk.org @@ -18,2 +19,2 @@ - drivers/net/mlx5/mlx5_mr.c | 13 +++++++------ - 1 file changed, 7 insertions(+), 6 deletions(-) + drivers/net/mlx5/mlx5_mr.c | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) @@ -22 +23 @@ -index 44b65916d..a3732d47c 100644 +index e255650ad..01bf59106 100644 @@ -25 +26 @@ -@@ -467,5 +467,5 @@ mr_free(struct mlx5_mr *mr) +@@ -466,5 +466,5 @@ mr_free(struct mlx5_mr *mr) @@ -32,8 +33 @@ -@@ -517,5 +517,5 @@ mr_find_contig_memsegs_cb(const struct rte_memseg_list *msl, - - /** -- * Create a new global Memroy Region (MR) for a missing virtual address. -+ * Create a new global Memory Region (MR) for a missing virtual address. - * This API should be called on a secondary process, then a request is sent to - * the primary process in order to create a MR for the address. As the global MR -@@ -563,5 +563,5 @@ mlx5_mr_create_secondary(struct rte_eth_dev *dev, struct mlx5_mr_cache *entry, +@@ -516,5 +516,5 @@ mr_find_contig_memsegs_cb(const struct rte_memseg_list *msl, @@ -45,2 +39,2 @@ - * This must be called from the primary process. -@@ -674,5 +674,5 @@ alloc_resources: + * +@@ -624,5 +624,5 @@ alloc_resources: @@ -53,8 +47 @@ -@@ -812,5 +812,5 @@ err_nolock: - - /** -- * Create a new global Memroy Region (MR) for a missing virtual address. -+ * Create a new global Memory Region (MR) for a missing virtual address. - * This can be called from primary and secondary process. - * -@@ -1601,5 +1601,5 @@ mlx5_mr_release(struct rte_eth_dev *dev) +@@ -1351,5 +1351,5 @@ mlx5_mr_release(struct rte_eth_dev *dev) @@ -67 +54 @@ -@@ -1611,4 +1611,5 @@ mlx5_mr_release(struct rte_eth_dev *dev) +@@ -1361,4 +1361,5 @@ mlx5_mr_release(struct rte_eth_dev *dev)