[dpdk-dev] [PATCH 06/12] vhost: register new regions with userfaultfd

Maxime Coquelin maxime.coquelin at redhat.com
Thu Sep 27 11:37:09 CEST 2018



On 09/26/2018 05:31 PM, Alejandro Lucero wrote:
> 
> 
> On Wed, Sep 26, 2018 at 8:28 AM Maxime Coquelin 
> <maxime.coquelin at redhat.com <mailto:maxime.coquelin at redhat.com>> wrote:
> 
>     Signed-off-by: Dr. David Alan Gilbert <dgilbert at redhat.com
>     <mailto:dgilbert at redhat.com>>
>     Signed-off-by: Maxime Coquelin <maxime.coquelin at redhat.com
>     <mailto:maxime.coquelin at 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,
>     +                                               &reg_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
> 


More information about the dev mailing list