On Tue, Nov 28, 2017 at 01:09:29PM +0100, Maxime Coquelin wrote: > > > On 11/15/2017 12:41 PM, Jianfeng Tan wrote: > >In a running VM, operations (like device attach/detach) will > >trigger the QEMU to resend set_mem_table to vhost-user backend. > > > >DPDK vhost-user handles this message rudely by unmap all existing > >regions and map new ones. This might lead to segfault if there > >is pmd thread just trying to touch those unmapped memory regions. > > > >But for most cases, except VM memory hotplug, QEMU still sends the > >set_mem_table message even the memory regions are not changed as > >QEMU vhost-user filters out those not backed by file (fd > 0). > > > >To fix this case, we add a check in the handler to see if the > >memory regions are really changed; if not, we just keep old memory > >regions. > > > >Fixes: 8f972312b8f4 ("vhost: support vhost-user") > > > >CC: sta...@dpdk.org > > > >CC: Yuanhan Liu <y...@fridaylinux.org> > >CC: Maxime Coquelin <maxime.coque...@redhat.com> > > > >Reported-by: Yang Zhang <zy107...@alibaba-inc.com> > >Reported-by: Xin Long <longxin...@alibaba-inc.com> > >Signed-off-by: Yi Yang <yi.y.y...@intel.com> > >Signed-off-by: Jianfeng Tan <jianfeng....@intel.com> > >--- > > lib/librte_vhost/vhost_user.c | 33 +++++++++++++++++++++++++++++++++ > > 1 file changed, 33 insertions(+) > > Reviewed-by: Maxime Coquelin <maxime.coque...@redhat.com>
Applied to dpdk-next-virtio. Thanks. --yliu