15630257fSFerruh Yigit.. SPDX-License-Identifier: BSD-3-Clause 25630257fSFerruh Yigit Copyright(c) 2016 Intel Corporation. 36993fe13SBernard Iremonger 46993fe13SBernard IremongerLive Migration of VM with Virtio on host running vhost_user 56993fe13SBernard Iremonger=========================================================== 66993fe13SBernard Iremonger 76993fe13SBernard IremongerOverview 86993fe13SBernard Iremonger-------- 96993fe13SBernard Iremonger 106993fe13SBernard IremongerLive Migration of a VM with DPDK Virtio PMD on a host which is 116993fe13SBernard Iremongerrunning the Vhost sample application (vhost-switch) and using the DPDK PMD (ixgbe or i40e). 126993fe13SBernard Iremonger 136993fe13SBernard IremongerThe Vhost sample application uses VMDQ so SRIOV must be disabled on the NIC's. 146993fe13SBernard Iremonger 156993fe13SBernard IremongerThe following sections show an example of how to do this migration. 166993fe13SBernard Iremonger 176993fe13SBernard IremongerTest Setup 186993fe13SBernard Iremonger---------- 196993fe13SBernard Iremonger 206993fe13SBernard IremongerTo test the Live Migration two servers with identical operating systems installed are used. 216993fe13SBernard IremongerKVM and QEMU is also required on the servers. 226993fe13SBernard Iremonger 236993fe13SBernard IremongerQEMU 2.5 is required for Live Migration of a VM with vhost_user running on the hosts. 246993fe13SBernard Iremonger 256993fe13SBernard IremongerIn this example, the servers have Niantic and or Fortville NIC's installed. 266993fe13SBernard IremongerThe NIC's on both servers are connected to a switch 276993fe13SBernard Iremongerwhich is also connected to the traffic generator. 286993fe13SBernard Iremonger 296993fe13SBernard IremongerThe switch is configured to broadcast traffic on all the NIC ports. 306993fe13SBernard Iremonger 316993fe13SBernard IremongerThe ip address of host_server_1 is 10.237.212.46 326993fe13SBernard Iremonger 336993fe13SBernard IremongerThe ip address of host_server_2 is 10.237.212.131 346993fe13SBernard Iremonger 35931f3ca3SBernard Iremonger.. _figure_lm_vhost_user: 36931f3ca3SBernard Iremonger 37931f3ca3SBernard Iremonger.. figure:: img/lm_vhost_user.* 38931f3ca3SBernard Iremonger 396993fe13SBernard IremongerLive Migration steps 406993fe13SBernard Iremonger-------------------- 416993fe13SBernard Iremonger 426993fe13SBernard IremongerThe sample scripts mentioned in the steps below can be found in the 436993fe13SBernard Iremonger:ref:`Sample host scripts <lm_virtio_vhost_user_host_scripts>` and 446993fe13SBernard Iremonger:ref:`Sample VM scripts <lm_virtio_vhost_user_vm_scripts>` sections. 456993fe13SBernard Iremonger 466993fe13SBernard IremongerOn host_server_1: Terminal 1 476993fe13SBernard Iremonger~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 486993fe13SBernard Iremonger 496993fe13SBernard IremongerSetup DPDK on host_server_1 506993fe13SBernard Iremonger 516993fe13SBernard Iremonger.. code-block:: console 526993fe13SBernard Iremonger 536993fe13SBernard Iremonger cd /root/dpdk/host_scripts 546993fe13SBernard Iremonger ./setup_dpdk_on_host.sh 556993fe13SBernard Iremonger 566993fe13SBernard IremongerOn host_server_1: Terminal 2 576993fe13SBernard Iremonger~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 586993fe13SBernard Iremonger 596993fe13SBernard IremongerBind the Niantic or Fortville NIC to igb_uio on host_server_1. 606993fe13SBernard Iremonger 616993fe13SBernard IremongerFor Fortville NIC. 626993fe13SBernard Iremonger 636993fe13SBernard Iremonger.. code-block:: console 646993fe13SBernard Iremonger 65c6dab2a8SThomas Monjalon cd /root/dpdk/usertools 665d75454cSPablo de Lara ./dpdk-devbind.py -b igb_uio 0000:02:00.0 676993fe13SBernard Iremonger 686993fe13SBernard IremongerFor Niantic NIC. 696993fe13SBernard Iremonger 706993fe13SBernard Iremonger.. code-block:: console 716993fe13SBernard Iremonger 72c6dab2a8SThomas Monjalon cd /root/dpdk/usertools 735d75454cSPablo de Lara ./dpdk-devbind.py -b igb_uio 0000:09:00.0 746993fe13SBernard Iremonger 756993fe13SBernard IremongerOn host_server_1: Terminal 3 766993fe13SBernard Iremonger~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 776993fe13SBernard Iremonger 786993fe13SBernard IremongerFor Fortville and Niantic NIC's reset SRIOV and run the 796993fe13SBernard Iremongervhost_user sample application (vhost-switch) on host_server_1. 806993fe13SBernard Iremonger 816993fe13SBernard Iremonger.. code-block:: console 826993fe13SBernard Iremonger 836993fe13SBernard Iremonger cd /root/dpdk/host_scripts 846993fe13SBernard Iremonger ./reset_vf_on_212_46.sh 856993fe13SBernard Iremonger ./run_vhost_switch_on_host.sh 866993fe13SBernard Iremonger 876993fe13SBernard IremongerOn host_server_1: Terminal 1 886993fe13SBernard Iremonger~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 896993fe13SBernard Iremonger 906993fe13SBernard IremongerStart the VM on host_server_1 916993fe13SBernard Iremonger 926993fe13SBernard Iremonger.. code-block:: console 936993fe13SBernard Iremonger 946993fe13SBernard Iremonger ./vm_virtio_vhost_user.sh 956993fe13SBernard Iremonger 966993fe13SBernard IremongerOn host_server_1: Terminal 4 976993fe13SBernard Iremonger~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 986993fe13SBernard Iremonger 996993fe13SBernard IremongerConnect to the QEMU monitor on host_server_1. 1006993fe13SBernard Iremonger 1016993fe13SBernard Iremonger.. code-block:: console 1026993fe13SBernard Iremonger 1036993fe13SBernard Iremonger cd /root/dpdk/host_scripts 1046993fe13SBernard Iremonger ./connect_to_qemu_mon_on_host.sh 1056993fe13SBernard Iremonger (qemu) 1066993fe13SBernard Iremonger 1076993fe13SBernard IremongerOn host_server_1: Terminal 1 1086993fe13SBernard Iremonger~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1096993fe13SBernard Iremonger 1106993fe13SBernard Iremonger**In VM on host_server_1:** 1116993fe13SBernard Iremonger 1126993fe13SBernard IremongerSetup DPDK in the VM and run testpmd in the VM. 1136993fe13SBernard Iremonger 1146993fe13SBernard Iremonger.. code-block:: console 1156993fe13SBernard Iremonger 1166993fe13SBernard Iremonger cd /root/dpdk/vm_scripts 1176993fe13SBernard Iremonger ./setup_dpdk_in_vm.sh 1186993fe13SBernard Iremonger ./run_testpmd_in_vm.sh 1196993fe13SBernard Iremonger 1206993fe13SBernard Iremonger testpmd> show port info all 1216993fe13SBernard Iremonger testpmd> set fwd mac retry 1226993fe13SBernard Iremonger testpmd> start tx_first 1236993fe13SBernard Iremonger testpmd> show port stats all 1246993fe13SBernard Iremonger 1256993fe13SBernard IremongerVirtio traffic is seen at P1 and P2. 1266993fe13SBernard Iremonger 1276993fe13SBernard IremongerOn host_server_2: Terminal 1 1286993fe13SBernard Iremonger~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1296993fe13SBernard Iremonger 1306993fe13SBernard IremongerSet up DPDK on the host_server_2. 1316993fe13SBernard Iremonger 1326993fe13SBernard Iremonger.. code-block:: console 1336993fe13SBernard Iremonger 1346993fe13SBernard Iremonger cd /root/dpdk/host_scripts 1356993fe13SBernard Iremonger ./setup_dpdk_on_host.sh 1366993fe13SBernard Iremonger 1376993fe13SBernard IremongerOn host_server_2: Terminal 2 1386993fe13SBernard Iremonger~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1396993fe13SBernard Iremonger 1406993fe13SBernard IremongerBind the Niantic or Fortville NIC to igb_uio on host_server_2. 1416993fe13SBernard Iremonger 1426993fe13SBernard IremongerFor Fortville NIC. 1436993fe13SBernard Iremonger 1446993fe13SBernard Iremonger.. code-block:: console 1456993fe13SBernard Iremonger 146c6dab2a8SThomas Monjalon cd /root/dpdk/usertools 1475d75454cSPablo de Lara ./dpdk-devbind.py -b igb_uio 0000:03:00.0 1486993fe13SBernard Iremonger 1496993fe13SBernard IremongerFor Niantic NIC. 1506993fe13SBernard Iremonger 1516993fe13SBernard Iremonger.. code-block:: console 1526993fe13SBernard Iremonger 153c6dab2a8SThomas Monjalon cd /root/dpdk/usertools 1545d75454cSPablo de Lara ./dpdk-devbind.py -b igb_uio 0000:06:00.0 1556993fe13SBernard Iremonger 1566993fe13SBernard IremongerOn host_server_2: Terminal 3 1576993fe13SBernard Iremonger~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1586993fe13SBernard Iremonger 1596993fe13SBernard IremongerFor Fortville and Niantic NIC's reset SRIOV, and run 1606993fe13SBernard Iremongerthe vhost_user sample application on host_server_2. 1616993fe13SBernard Iremonger 1626993fe13SBernard Iremonger.. code-block:: console 1636993fe13SBernard Iremonger 1646993fe13SBernard Iremonger cd /root/dpdk/host_scripts 1656993fe13SBernard Iremonger ./reset_vf_on_212_131.sh 1666993fe13SBernard Iremonger ./run_vhost_switch_on_host.sh 1676993fe13SBernard Iremonger 1686993fe13SBernard IremongerOn host_server_2: Terminal 1 1696993fe13SBernard Iremonger~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1706993fe13SBernard Iremonger 1716993fe13SBernard IremongerStart the VM on host_server_2. 1726993fe13SBernard Iremonger 1736993fe13SBernard Iremonger.. code-block:: console 1746993fe13SBernard Iremonger 1756993fe13SBernard Iremonger ./vm_virtio_vhost_user_migrate.sh 1766993fe13SBernard Iremonger 1776993fe13SBernard IremongerOn host_server_2: Terminal 4 1786993fe13SBernard Iremonger~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1796993fe13SBernard Iremonger 1806993fe13SBernard IremongerConnect to the QEMU monitor on host_server_2. 1816993fe13SBernard Iremonger 1826993fe13SBernard Iremonger.. code-block:: console 1836993fe13SBernard Iremonger 1846993fe13SBernard Iremonger cd /root/dpdk/host_scripts 1856993fe13SBernard Iremonger ./connect_to_qemu_mon_on_host.sh 1866993fe13SBernard Iremonger (qemu) info status 1876993fe13SBernard Iremonger VM status: paused (inmigrate) 1886993fe13SBernard Iremonger (qemu) 1896993fe13SBernard Iremonger 1906993fe13SBernard IremongerOn host_server_1: Terminal 4 1916993fe13SBernard Iremonger~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 1926993fe13SBernard Iremonger 1936993fe13SBernard IremongerCheck that switch is up before migrating the VM. 1946993fe13SBernard Iremonger 1956993fe13SBernard Iremonger.. code-block:: console 1966993fe13SBernard Iremonger 1976993fe13SBernard Iremonger (qemu) migrate tcp:10.237.212.131:5555 1986993fe13SBernard Iremonger (qemu) info status 1996993fe13SBernard Iremonger VM status: paused (postmigrate) 2006993fe13SBernard Iremonger 2016993fe13SBernard Iremonger (qemu) info migrate 2026993fe13SBernard Iremonger capabilities: xbzrle: off rdma-pin-all: off auto-converge: off zero-blocks: off 2036993fe13SBernard Iremonger Migration status: completed 2046993fe13SBernard Iremonger total time: 11619 milliseconds 2056993fe13SBernard Iremonger downtime: 5 milliseconds 2066993fe13SBernard Iremonger setup: 7 milliseconds 2076993fe13SBernard Iremonger transferred ram: 379699 kbytes 2086993fe13SBernard Iremonger throughput: 267.82 mbps 2096993fe13SBernard Iremonger remaining ram: 0 kbytes 2106993fe13SBernard Iremonger total ram: 1590088 kbytes 2116993fe13SBernard Iremonger duplicate: 303985 pages 2126993fe13SBernard Iremonger skipped: 0 pages 2136993fe13SBernard Iremonger normal: 94073 pages 2146993fe13SBernard Iremonger normal bytes: 376292 kbytes 2156993fe13SBernard Iremonger dirty sync count: 2 2166993fe13SBernard Iremonger (qemu) quit 2176993fe13SBernard Iremonger 2186993fe13SBernard IremongerOn host_server_2: Terminal 1 2196993fe13SBernard Iremonger~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2206993fe13SBernard Iremonger 2216993fe13SBernard Iremonger**In VM on host_server_2:** 2226993fe13SBernard Iremonger 2236993fe13SBernard Iremonger Hit Enter key. This brings the user to the testpmd prompt. 2246993fe13SBernard Iremonger 2256993fe13SBernard Iremonger.. code-block:: console 2266993fe13SBernard Iremonger 2276993fe13SBernard Iremonger testpmd> 2286993fe13SBernard Iremonger 2296993fe13SBernard IremongerOn host_server_2: Terminal 4 2306993fe13SBernard Iremonger~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2316993fe13SBernard Iremonger 2326993fe13SBernard Iremonger**In QEMU monitor on host_server_2** 2336993fe13SBernard Iremonger 2346993fe13SBernard Iremonger.. code-block:: console 2356993fe13SBernard Iremonger 2366993fe13SBernard Iremonger (qemu) info status 2376993fe13SBernard Iremonger VM status: running 2386993fe13SBernard Iremonger 2396993fe13SBernard IremongerOn host_server_2: Terminal 1 2406993fe13SBernard Iremonger~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 2416993fe13SBernard Iremonger 2426993fe13SBernard Iremonger**In VM on host_server_2:** 2436993fe13SBernard Iremonger 2446993fe13SBernard Iremonger.. code-block:: console 2456993fe13SBernard Iremonger 246d629b7b5SJohn McNamara testpmd> show port info all 2476993fe13SBernard Iremonger testpmd> show port stats all 2486993fe13SBernard Iremonger 2496993fe13SBernard IremongerVirtio traffic is seen at P0 and P1. 2506993fe13SBernard Iremonger 2516993fe13SBernard Iremonger 2526993fe13SBernard Iremonger.. _lm_virtio_vhost_user_host_scripts: 2536993fe13SBernard Iremonger 2546993fe13SBernard IremongerSample host scripts 2556993fe13SBernard Iremonger------------------- 2566993fe13SBernard Iremonger 2576993fe13SBernard Iremongerreset_vf_on_212_46.sh 2586993fe13SBernard Iremonger~~~~~~~~~~~~~~~~~~~~~ 2596993fe13SBernard Iremonger 2606993fe13SBernard Iremonger.. code-block:: sh 2616993fe13SBernard Iremonger 2626993fe13SBernard Iremonger #!/bin/sh 2636993fe13SBernard Iremonger # This script is run on the host 10.237.212.46 to reset SRIOV 2646993fe13SBernard Iremonger 2656993fe13SBernard Iremonger # BDF for Fortville NIC is 0000:02:00.0 2666993fe13SBernard Iremonger cat /sys/bus/pci/devices/0000\:02\:00.0/max_vfs 2676993fe13SBernard Iremonger echo 0 > /sys/bus/pci/devices/0000\:02\:00.0/max_vfs 2686993fe13SBernard Iremonger cat /sys/bus/pci/devices/0000\:02\:00.0/max_vfs 2696993fe13SBernard Iremonger 2706993fe13SBernard Iremonger # BDF for Niantic NIC is 0000:09:00.0 2716993fe13SBernard Iremonger cat /sys/bus/pci/devices/0000\:09\:00.0/max_vfs 2726993fe13SBernard Iremonger echo 0 > /sys/bus/pci/devices/0000\:09\:00.0/max_vfs 2736993fe13SBernard Iremonger cat /sys/bus/pci/devices/0000\:09\:00.0/max_vfs 2746993fe13SBernard Iremonger 2756993fe13SBernard Iremongervm_virtio_vhost_user.sh 2766993fe13SBernard Iremonger~~~~~~~~~~~~~~~~~~~~~~~ 2776993fe13SBernard Iremonger 2786993fe13SBernard Iremonger.. code-block:: sh 2796993fe13SBernard Iremonger 2806993fe13SBernard Iremonger #/bin/sh 2816993fe13SBernard Iremonger # Script for use with vhost_user sample application 2826993fe13SBernard Iremonger # The host system has 8 cpu's (0-7) 2836993fe13SBernard Iremonger 2846993fe13SBernard Iremonger # Path to KVM tool 2856993fe13SBernard Iremonger KVM_PATH="/usr/bin/qemu-system-x86_64" 2866993fe13SBernard Iremonger 2876993fe13SBernard Iremonger # Guest Disk image 2886993fe13SBernard Iremonger DISK_IMG="/home/user/disk_image/virt1_sml.disk" 2896993fe13SBernard Iremonger 2906993fe13SBernard Iremonger # Number of guest cpus 2916993fe13SBernard Iremonger VCPUS_NR="6" 2926993fe13SBernard Iremonger 2936993fe13SBernard Iremonger # Memory 2946993fe13SBernard Iremonger MEM=1024 2956993fe13SBernard Iremonger 2966993fe13SBernard Iremonger VIRTIO_OPTIONS="csum=off,gso=off,guest_tso4=off,guest_tso6=off,guest_ecn=off" 2976993fe13SBernard Iremonger 2986993fe13SBernard Iremonger # Socket Path 2996993fe13SBernard Iremonger SOCKET_PATH="/root/dpdk/host_scripts/usvhost" 3006993fe13SBernard Iremonger 3016993fe13SBernard Iremonger taskset -c 2-7 $KVM_PATH \ 3026993fe13SBernard Iremonger -enable-kvm \ 3036993fe13SBernard Iremonger -m $MEM \ 3046993fe13SBernard Iremonger -smp $VCPUS_NR \ 3056993fe13SBernard Iremonger -object memory-backend-file,id=mem,size=1024M,mem-path=/mnt/huge,share=on \ 3066993fe13SBernard Iremonger -numa node,memdev=mem,nodeid=0 \ 3076993fe13SBernard Iremonger -cpu host \ 3086993fe13SBernard Iremonger -name VM1 \ 3096993fe13SBernard Iremonger -no-reboot \ 3106993fe13SBernard Iremonger -net none \ 3116993fe13SBernard Iremonger -vnc none \ 3126993fe13SBernard Iremonger -nographic \ 3136993fe13SBernard Iremonger -hda $DISK_IMG \ 3146993fe13SBernard Iremonger -chardev socket,id=chr0,path=$SOCKET_PATH \ 3156993fe13SBernard Iremonger -netdev type=vhost-user,id=net1,chardev=chr0,vhostforce \ 3166993fe13SBernard Iremonger -device virtio-net-pci,netdev=net1,mac=CC:BB:BB:BB:BB:BB,$VIRTIO_OPTIONS \ 3176993fe13SBernard Iremonger -chardev socket,id=chr1,path=$SOCKET_PATH \ 3186993fe13SBernard Iremonger -netdev type=vhost-user,id=net2,chardev=chr1,vhostforce \ 3196993fe13SBernard Iremonger -device virtio-net-pci,netdev=net2,mac=DD:BB:BB:BB:BB:BB,$VIRTIO_OPTIONS \ 3206993fe13SBernard Iremonger -monitor telnet::3333,server,nowait 3216993fe13SBernard Iremonger 3226993fe13SBernard Iremongerconnect_to_qemu_mon_on_host.sh 3236993fe13SBernard Iremonger~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3246993fe13SBernard Iremonger 3256993fe13SBernard Iremonger.. code-block:: sh 3266993fe13SBernard Iremonger 3276993fe13SBernard Iremonger #!/bin/sh 3286993fe13SBernard Iremonger # This script is run on both hosts when the VM is up, 3296993fe13SBernard Iremonger # to connect to the Qemu Monitor. 3306993fe13SBernard Iremonger 3316993fe13SBernard Iremonger telnet 0 3333 3326993fe13SBernard Iremonger 3336993fe13SBernard Iremongerreset_vf_on_212_131.sh 3346993fe13SBernard Iremonger~~~~~~~~~~~~~~~~~~~~~~ 3356993fe13SBernard Iremonger 3366993fe13SBernard Iremonger.. code-block:: sh 3376993fe13SBernard Iremonger 3386993fe13SBernard Iremonger #!/bin/sh 3396993fe13SBernard Iremonger # This script is run on the host 10.237.212.131 to reset SRIOV 3406993fe13SBernard Iremonger 341d629b7b5SJohn McNamara # BDF for Niantic NIC is 0000:06:00.0 3426993fe13SBernard Iremonger cat /sys/bus/pci/devices/0000\:06\:00.0/max_vfs 3436993fe13SBernard Iremonger echo 0 > /sys/bus/pci/devices/0000\:06\:00.0/max_vfs 3446993fe13SBernard Iremonger cat /sys/bus/pci/devices/0000\:06\:00.0/max_vfs 3456993fe13SBernard Iremonger 3466993fe13SBernard Iremonger # BDF for Fortville NIC is 0000:03:00.0 3476993fe13SBernard Iremonger cat /sys/bus/pci/devices/0000\:03\:00.0/max_vfs 3486993fe13SBernard Iremonger echo 0 > /sys/bus/pci/devices/0000\:03\:00.0/max_vfs 3496993fe13SBernard Iremonger cat /sys/bus/pci/devices/0000\:03\:00.0/max_vfs 3506993fe13SBernard Iremonger 3516993fe13SBernard Iremongervm_virtio_vhost_user_migrate.sh 3526993fe13SBernard Iremonger~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3536993fe13SBernard Iremonger 3546993fe13SBernard Iremonger.. code-block:: sh 3556993fe13SBernard Iremonger 3566993fe13SBernard Iremonger #/bin/sh 3576993fe13SBernard Iremonger # Script for use with vhost user sample application 3586993fe13SBernard Iremonger # The host system has 8 cpu's (0-7) 3596993fe13SBernard Iremonger 3606993fe13SBernard Iremonger # Path to KVM tool 3616993fe13SBernard Iremonger KVM_PATH="/usr/bin/qemu-system-x86_64" 3626993fe13SBernard Iremonger 3636993fe13SBernard Iremonger # Guest Disk image 3646993fe13SBernard Iremonger DISK_IMG="/home/user/disk_image/virt1_sml.disk" 3656993fe13SBernard Iremonger 3666993fe13SBernard Iremonger # Number of guest cpus 3676993fe13SBernard Iremonger VCPUS_NR="6" 3686993fe13SBernard Iremonger 3696993fe13SBernard Iremonger # Memory 3706993fe13SBernard Iremonger MEM=1024 3716993fe13SBernard Iremonger 3726993fe13SBernard Iremonger VIRTIO_OPTIONS="csum=off,gso=off,guest_tso4=off,guest_tso6=off,guest_ecn=off" 3736993fe13SBernard Iremonger 3746993fe13SBernard Iremonger # Socket Path 3756993fe13SBernard Iremonger SOCKET_PATH="/root/dpdk/host_scripts/usvhost" 3766993fe13SBernard Iremonger 3776993fe13SBernard Iremonger taskset -c 2-7 $KVM_PATH \ 3786993fe13SBernard Iremonger -enable-kvm \ 3796993fe13SBernard Iremonger -m $MEM \ 3806993fe13SBernard Iremonger -smp $VCPUS_NR \ 3816993fe13SBernard Iremonger -object memory-backend-file,id=mem,size=1024M,mem-path=/mnt/huge,share=on \ 3826993fe13SBernard Iremonger -numa node,memdev=mem,nodeid=0 \ 3836993fe13SBernard Iremonger -cpu host \ 3846993fe13SBernard Iremonger -name VM1 \ 3856993fe13SBernard Iremonger -no-reboot \ 3866993fe13SBernard Iremonger -net none \ 3876993fe13SBernard Iremonger -vnc none \ 3886993fe13SBernard Iremonger -nographic \ 3896993fe13SBernard Iremonger -hda $DISK_IMG \ 3906993fe13SBernard Iremonger -chardev socket,id=chr0,path=$SOCKET_PATH \ 3916993fe13SBernard Iremonger -netdev type=vhost-user,id=net1,chardev=chr0,vhostforce \ 3926993fe13SBernard Iremonger -device virtio-net-pci,netdev=net1,mac=CC:BB:BB:BB:BB:BB,$VIRTIO_OPTIONS \ 3936993fe13SBernard Iremonger -chardev socket,id=chr1,path=$SOCKET_PATH \ 3946993fe13SBernard Iremonger -netdev type=vhost-user,id=net2,chardev=chr1,vhostforce \ 3956993fe13SBernard Iremonger -device virtio-net-pci,netdev=net2,mac=DD:BB:BB:BB:BB:BB,$VIRTIO_OPTIONS \ 3966993fe13SBernard Iremonger -incoming tcp:0:5555 \ 3976993fe13SBernard Iremonger -monitor telnet::3333,server,nowait 3986993fe13SBernard Iremonger 3996993fe13SBernard Iremonger.. _lm_virtio_vhost_user_vm_scripts: 4006993fe13SBernard Iremonger 4016993fe13SBernard IremongerSample VM scripts 4026993fe13SBernard Iremonger----------------- 4036993fe13SBernard Iremonger 4046993fe13SBernard Iremongersetup_dpdk_virtio_in_vm.sh 4056993fe13SBernard Iremonger~~~~~~~~~~~~~~~~~~~~~~~~~~ 4066993fe13SBernard Iremonger 4076993fe13SBernard Iremonger.. code-block:: sh 4086993fe13SBernard Iremonger 4096993fe13SBernard Iremonger #!/bin/sh 4106993fe13SBernard Iremonger # this script matches the vm_virtio_vhost_user script 4116993fe13SBernard Iremonger # virtio port is 03 4126993fe13SBernard Iremonger # virtio port is 04 4136993fe13SBernard Iremonger 414*de34aaa9SThomas Monjalon /root/dpdk/usertools/dpdk-hugepages.py --show 415*de34aaa9SThomas Monjalon /root/dpdk/usertools/dpdk-hugepages.py --setup 2G 416*de34aaa9SThomas Monjalon /root/dpdk/usertools/dpdk-hugepages.py --show 4176993fe13SBernard Iremonger 4186993fe13SBernard Iremonger ifconfig -a 419c6dab2a8SThomas Monjalon /root/dpdk/usertools/dpdk-devbind.py --status 4206993fe13SBernard Iremonger 4216993fe13SBernard Iremonger rmmod virtio-pci 4226993fe13SBernard Iremonger 4236993fe13SBernard Iremonger modprobe uio 42456bb5841SThomas Monjalon insmod igb_uio.ko 4256993fe13SBernard Iremonger 426c6dab2a8SThomas Monjalon /root/dpdk/usertools/dpdk-devbind.py -b igb_uio 0000:00:03.0 427c6dab2a8SThomas Monjalon /root/dpdk/usertools/dpdk-devbind.py -b igb_uio 0000:00:04.0 4286993fe13SBernard Iremonger 429c6dab2a8SThomas Monjalon /root/dpdk/usertools/dpdk-devbind.py --status 4306993fe13SBernard Iremonger 4316993fe13SBernard Iremongerrun_testpmd_in_vm.sh 4326993fe13SBernard Iremonger~~~~~~~~~~~~~~~~~~~~ 4336993fe13SBernard Iremonger 4346993fe13SBernard Iremonger.. code-block:: sh 4356993fe13SBernard Iremonger 4366993fe13SBernard Iremonger #!/bin/sh 4376993fe13SBernard Iremonger # Run testpmd for use with vhost_user sample app. 4386993fe13SBernard Iremonger # test system has 8 cpus (0-7), use cpus 2-7 for VM 4396993fe13SBernard Iremonger 44079238624SCiara Power /root/dpdk/<build_dir>/app/dpdk-testpmd \ 4418b9bd0efSMoti Haimovsky -l 0-5 -n 4 --socket-mem 350 -- --burst=64 --i 442