From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 52CD55913 for ; Wed, 2 Dec 2015 15:11:00 +0100 (CET) Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (Postfix) with ESMTPS id AC4BB33E608; Wed, 2 Dec 2015 14:10:59 +0000 (UTC) Received: from redhat.com (vpn-201-9.tlv.redhat.com [10.35.201.9]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with SMTP id tB2EAuxX010697; Wed, 2 Dec 2015 09:10:57 -0500 Date: Wed, 2 Dec 2015 16:10:56 +0200 From: Victor Kaplansky To: Yuanhan Liu Message-ID: <20151202160747-mutt-send-email-victork@redhat.com> References: <1449027793-30975-1-git-send-email-yuanhan.liu@linux.intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1449027793-30975-1-git-send-email-yuanhan.liu@linux.intel.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 Cc: dev@dpdk.org, "Michael S. Tsirkin" Subject: Re: [dpdk-dev] [PATCH 0/4 for 2.3] vhost-user live migration support X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Dec 2015 14:11:00 -0000 On Wed, Dec 02, 2015 at 11:43:09AM +0800, Yuanhan Liu wrote: > This patch set adds the initial vhost-user live migration support. > > The major task behind that is to log pages we touched during > live migration. So, this patch is basically about adding vhost > log support, and using it. > > Patchset > ======== > - Patch 1 handles VHOST_USER_SET_LOG_BASE, which tells us where > the dirty memory bitmap is. > > - Patch 2 introduces a vhost_log_write() helper function to log > pages we are gonna change. > > - Patch 3 logs changes we made to used vring. > > - Patch 4 sets log_fhmfd protocol feature bit, which actually > enables the vhost-user live migration support. > > A simple test guide (on same host) > ================================== > > The following test is based on OVS + DPDK. And here is guide > to setup OVS + DPDK: > > http://wiki.qemu.org/Features/vhost-user-ovs-dpdk > > 1. start ovs-vswitchd > > 2. Add two ovs vhost-user port, say vhost0 and vhost1 > > 3. Start a VM1 to connect to vhost0. Here is my example: > > $QEMU -enable-kvm -m 1024 -smp 4 \ > -chardev socket,id=char0,path=/var/run/openvswitch/vhost0 \ > -netdev type=vhost-user,id=mynet1,chardev=char0,vhostforce \ > -device virtio-net-pci,netdev=mynet1,mac=52:54:00:12:34:58 \ > -object memory-backend-file,id=mem,size=1024M,mem-path=$HOME/hugetlbfs,share=on \ > -numa node,memdev=mem -mem-prealloc \ > -kernel $HOME/iso/vmlinuz -append "root=/dev/sda1" \ > -hda fc-19-i386.img \ > -monitor telnet::3333,server,nowait -curses > > 4. run "ping $host" inside VM1 > > 5. Start VM2 to connect to vhost0, and marking it as the target > of live migration (by adding -incoming tcp:0:4444 option) > > $QEMU -enable-kvm -m 1024 -smp 4 \ > -chardev socket,id=char0,path=/var/run/openvswitch/vhost1 \ > -netdev type=vhost-user,id=mynet1,chardev=char0,vhostforce \ > -device virtio-net-pci,netdev=mynet1,mac=52:54:00:12:34:58 \ > -object memory-backend-file,id=mem,size=1024M,mem-path=$HOME/hugetlbfs,share=on \ > -numa node,memdev=mem -mem-prealloc \ > -kernel $HOME/iso/vmlinuz -append "root=/dev/sda1" \ > -hda fc-19-i386.img \ > -monitor telnet::3334,server,nowait -curses \ > -incoming tcp:0:4444 > > 6. connect to VM1 monitor, and start migration: > > > migrate tcp:0:4444 > > 7. After a while, you will find that VM1 has been migrated to VM2, > and the "ping" command continues running, perfectly. > > > Note: this patch set has mostly been based on Victor Kaplansk's demo > work (vhost-user-bridge) at QEMU project. I was thinking to add Victor > as the co-author. Victor, what do you think of that? :) Thanks for adding me to credits list! -- Victor > > Comments are welcome! > > --- > Yuanhan Liu (4): > vhost: handle VHOST_USER_SET_LOG_BASE request > vhost: introduce vhost_log_write > vhost: log vring changes > vhost: enable log_shmfd protocol feature > > lib/librte_vhost/rte_virtio_net.h | 35 ++++++++++++++ > lib/librte_vhost/vhost_rxtx.c | 70 ++++++++++++++++++--------- > lib/librte_vhost/vhost_user/vhost-net-user.c | 7 ++- > lib/librte_vhost/vhost_user/vhost-net-user.h | 6 +++ > lib/librte_vhost/vhost_user/virtio-net-user.c | 44 +++++++++++++++++ > lib/librte_vhost/vhost_user/virtio-net-user.h | 5 +- > lib/librte_vhost/virtio-net.c | 4 ++ > 7 files changed, 145 insertions(+), 26 deletions(-) > > -- > 1.9.0