Thread (59 messages) 59 messages, 4 authors, 2020-07-17

Re: [dpdk-dev] [PATCH v2 3/5] vhost: handle memory hotplug with vDPA devices

From: Xia, Chenbo <hidden>
Date: 2020-06-28 03:18:42

quoted hunk ↗ jump to hunk
-----Original Message-----
From: dev <redacted> On Behalf Of Matan Azrad
Sent: Thursday, June 25, 2020 9:38 PM
To: Maxime Coquelin <redacted>
Cc: dev@dpdk.org; Wang, Xiao W <redacted>
Subject: [dpdk-dev] [PATCH v2 3/5] vhost: handle memory hotplug with vDPA
devices

Some vDPA drivers' basic configurations should be updated when the guest
memory is hotplugged.

Close vDPA device before hotplug operation and recreate it after the hotplug
operation is done.

Signed-off-by: Matan Azrad <redacted>
---
 lib/librte_vhost/vhost_user.c | 9 +++++++++
 1 file changed, 9 insertions(+)
diff --git a/lib/librte_vhost/vhost_user.c b/lib/librte_vhost/vhost_user.c index
b90fc78..f690fdb 100644
--- a/lib/librte_vhost/vhost_user.c
+++ b/lib/librte_vhost/vhost_user.c
@@ -1073,6 +1073,15 @@
 	}

 	if (dev->mem) {
+		if (dev->flags & VIRTIO_DEV_VDPA_CONFIGURED) {
+			int did = dev->vdpa_dev_id;
+			struct rte_vdpa_device *vdpa_dev =
+						rte_vdpa_get_device(did);
+
+			if (vdpa_dev && vdpa_dev->ops->dev_close)
+				vdpa_dev->ops->dev_close(dev->vid);
+			dev->flags &= ~VIRTIO_DEV_VDPA_CONFIGURED;
+		}
For now, this solution is general for all vendors. Later we may improve this by calling vendor's
callback as they may behave differently. For now this looks good to me :) (sorry that the reply
is late for memory hotplug discussion because of holiday). Thanks!
 		free_mem_region(dev);
 		rte_free(dev->mem);
 		dev->mem = NULL;
--
1.8.3.1
Reviewed-by: Chenbo Xia <redacted>
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help