[dpdk-stable] patch 'vhost: forbid reallocation when running' has been queued to LTS release 18.11.6

Kevin Traynor ktraynor at redhat.com
Tue Dec 3 19:26:15 CET 2019


Hi,

FYI, your patch has been queued to LTS release 18.11.6

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 12/10/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/e6d285e10987bedbd43f7a2e663448ca159b1f45

Thanks.

Kevin.

---
>From e6d285e10987bedbd43f7a2e663448ca159b1f45 Mon Sep 17 00:00:00 2001
From: Tiwei Bie <tiwei.bie at intel.com>
Date: Mon, 19 Aug 2019 19:34:55 +0800
Subject: [PATCH] vhost: forbid reallocation when running

[ upstream commit 37f7c1b609b67d26cbdd4c16a3ebc85e8d63e6dd ]

When the device has been started, don't do the reallocation anymore.
Otherwise the pointers used in application threads can be invalidated
without proper protection. Instead of introducing a global lock to
protect the change of device pointers which will hurt the performance,
let's just do the reallocation during setup.

Fixes: af295ad4698c ("vhost: realloc device and queues to same numa node as vring desc")

Reported-by: Yinan Wang <yinan.wang at intel.com>
Signed-off-by: Tiwei Bie <tiwei.bie at intel.com>
Reviewed-by: Maxime Coquelin <maxime.coquelin at redhat.com>
---
 lib/librte_vhost/vhost_user.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c
index f0ad550c6..15688ded5 100644
--- a/lib/librte_vhost/vhost_user.c
+++ b/lib/librte_vhost/vhost_user.c
@@ -466,4 +466,7 @@ numa_realloc(struct virtio_net *dev, int index)
 	int ret;
 
+	if (dev->flags & VIRTIO_DEV_RUNNING)
+		return dev;
+
 	old_dev = dev;
 	vq = old_vq = dev->virtqueue[index];
-- 
2.21.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2019-12-03 17:29:52.170042822 +0000
+++ 0006-vhost-forbid-reallocation-when-running.patch	2019-12-03 17:29:51.699751015 +0000
@@ -1 +1 @@
-From 37f7c1b609b67d26cbdd4c16a3ebc85e8d63e6dd Mon Sep 17 00:00:00 2001
+From e6d285e10987bedbd43f7a2e663448ca159b1f45 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 37f7c1b609b67d26cbdd4c16a3ebc85e8d63e6dd ]
+
@@ -13 +14,0 @@
-Cc: stable at dpdk.org
@@ -23 +24 @@
-index f46843610..e4ae027a0 100644
+index f0ad550c6..15688ded5 100644
@@ -26 +27 @@
-@@ -411,4 +411,7 @@ numa_realloc(struct virtio_net *dev, int index)
+@@ -466,4 +466,7 @@ numa_realloc(struct virtio_net *dev, int index)



More information about the stable mailing list