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 CCAC1A0096 for ; Wed, 8 May 2019 12:16:31 +0200 (CEST) Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id C17B0378B; Wed, 8 May 2019 12:16:31 +0200 (CEST) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id B1E22378B for ; Wed, 8 May 2019 12:16:30 +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 27767C057E3F; Wed, 8 May 2019 10:16:30 +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 18C791A267; Wed, 8 May 2019 10:16:28 +0000 (UTC) From: Kevin Traynor To: Viacheslav Ovsiienko Cc: Yongseok Koh , dpdk stable Date: Wed, 8 May 2019 11:15:05 +0100 Message-Id: <20190508101534.8984-23-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.31]); Wed, 08 May 2019 10:16:30 +0000 (UTC) Subject: [dpdk-stable] patch 'net/mlx4: 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/eb4a74ffa52b4b23822abb9bbd6afaba2d424687 Thanks. Kevin Traynor --- >From eb4a74ffa52b4b23822abb9bbd6afaba2d424687 Mon Sep 17 00:00:00 2001 From: Viacheslav Ovsiienko Date: Mon, 15 Apr 2019 08:40:58 +0000 Subject: [PATCH] net/mlx4: fix memory region cleanup [ upstream commit 897dbd3c861d6c78e751a6bdc6061305f65bab00 ] mlx4 driver has a global list of Memory Regions created by device, and there is a ml4_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: 9797bfcce1c9 ("net/mlx4: add new memory region support") Signed-off-by: Viacheslav Ovsiienko Acked-by: Yongseok Koh --- drivers/net/mlx4/mlx4_mr.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/net/mlx4/mlx4_mr.c b/drivers/net/mlx4/mlx4_mr.c index 0d83d81e6..98c236fb7 100644 --- a/drivers/net/mlx4/mlx4_mr.c +++ b/drivers/net/mlx4/mlx4_mr.c @@ -478,5 +478,5 @@ mr_free(struct mlx4_mr *mr) /** - * Releass resources of detached MR having no online entry. + * Release resources of detached MR having no online entry. * * @param dev @@ -526,5 +526,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) { - WARN("port %u unable to initialize bitamp for a new MR of" + WARN("port %u unable to initialize bitmap for a new MR of" " address (%p).", dev->data->port_id, (void *)addr); @@ -1330,5 +1330,5 @@ mlx4_mr_release(struct rte_eth_dev *dev) { struct mlx4_priv *priv = dev->data->dev_private; - struct mlx4_mr *mr_next = LIST_FIRST(&priv->mr.mr_list); + struct mlx4_mr *mr_next; /* Remove from memory callback device list. */ @@ -1341,4 +1341,5 @@ mlx4_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 mlx4_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.994157111 +0100 +++ 0023-net-mlx4-fix-memory-region-cleanup.patch 2019-05-08 11:05:05.804933284 +0100 @@ -1 +1 @@ -From 897dbd3c861d6c78e751a6bdc6061305f65bab00 Mon Sep 17 00:00:00 2001 +From eb4a74ffa52b4b23822abb9bbd6afaba2d424687 Mon Sep 17 00:00:00 2001 @@ -5,0 +6,2 @@ +[ upstream commit 897dbd3c861d6c78e751a6bdc6061305f65bab00 ] + @@ -13 +14,0 @@ -Cc: stable@dpdk.org @@ -18,2 +19,2 @@ - drivers/net/mlx4/mlx4_mr.c | 13 +++++++------ - 1 file changed, 7 insertions(+), 6 deletions(-) + drivers/net/mlx4/mlx4_mr.c | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) @@ -22 +23 @@ -index ad7d4832f..48d458ad4 100644 +index 0d83d81e6..98c236fb7 100644 @@ -32,8 +33 @@ -@@ -528,5 +528,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 -@@ -574,5 +574,5 @@ mlx4_mr_create_secondary(struct rte_eth_dev *dev, struct mlx4_mr_cache *entry, +@@ -526,5 +526,5 @@ mr_find_contig_memsegs_cb(const struct rte_memseg_list *msl, @@ -45,2 +39,2 @@ - * This must be called from the primary process. -@@ -683,5 +683,5 @@ alloc_resources: + * +@@ -624,5 +624,5 @@ alloc_resources: @@ -53,8 +47 @@ -@@ -821,5 +821,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. - * -@@ -1435,5 +1435,5 @@ mlx4_mr_release(struct rte_eth_dev *dev) +@@ -1330,5 +1330,5 @@ mlx4_mr_release(struct rte_eth_dev *dev) @@ -67 +54 @@ -@@ -1446,4 +1446,5 @@ mlx4_mr_release(struct rte_eth_dev *dev) +@@ -1341,4 +1341,5 @@ mlx4_mr_release(struct rte_eth_dev *dev)