On 09/26/2018 05:31 PM, Alejandro Lucero wrote:
On Wed, Sep 26, 2018 at 8:28 AM Maxime Coquelin
<maxime.coque...@redhat.com <mailto:maxime.coque...@redhat.com>> wrote:
Signed-off-by: Dr. David Alan Gilbert <dgilb...@redhat.com
<mailto:dgilb...@redhat.com>>
Signed-off-by: Maxime Coquelin <maxime.coque...@redhat.com
<mailto:maxime.coque...@redhat.com>>
---
lib/librte_vhost/vhost_user.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/lib/librte_vhost/vhost_user.c
b/lib/librte_vhost/vhost_user.c
index d9ef5bca8..cbbfbdf00 100644
--- a/lib/librte_vhost/vhost_user.c
+++ b/lib/librte_vhost/vhost_user.c
@@ -928,6 +928,28 @@ vhost_user_set_mem_table(struct virtio_net
**pdev, struct VhostUserMsg *pmsg)
mmap_size,
alignment,
mmap_offset);
+
+ if (dev->postcopy_listening) {
+ struct uffdio_register reg_struct;
+
+ reg_struct.range.start =
(uint64_t)(uintptr_t)mmap_addr;
+ reg_struct.range.len = mmap_size;
+ reg_struct.mode = UFFDIO_REGISTER_MODE_MISSING;
+
+ if (ioctl(dev->postcopy_ufd, UFFDIO_REGISTER,
+ ®_struct)) {
+ RTE_LOG(ERR, VHOST_CONFIG,
+ "Failed to register
ufd for region %d: (ufd = %d) %s\n",
+ i, dev->postcopy_ufd,
+ strerror(errno));
+ continue;
is it not a registration error a serious problem for supporting
migration properly?
Yes it is, I missed to fix that.
Thanks for reporting it.
Maxime
+ }
+ RTE_LOG(INFO, VHOST_CONFIG,
+ "\t userfaultfd registered
for range : %llx - %llx\n",
+ reg_struct.range.start,
+ reg_struct.range.start +
+ reg_struct.range.len - 1);
+ }
}
for (i = 0; i < dev->nr_vring; i++) {
--
2.17.1