diff options
author | 2017-07-25 00:29:47 +0200 | |
---|---|---|
committer | 2017-07-25 03:06:24 +0200 | |
commit | e46f1da4b3342ca724fb5556a5fac547fee274b3 (patch) | |
tree | e4f10abbc6130dd4395fef0b8a3f2d73bb445b04 /patches/opnfv-fuel/0003-lib.sh-AArch64-virt-install-Use-virtio-net-pci.patch | |
parent | 5f29466a9eece85c13b53100ca4ef980f9e7660c (diff) |
p/fuel: virtio: min libvirt 3.x and Qemu 2.6
Expect host virtualization tools (libvirt, qemu) to be recent enough
to support modern virtio-net-pci out of box as a default.
This allows us to drop some changes and a hack - see [1]:
- "model=virtio" implies "model=virtio-net-pci" on libvirt 3.x;
- "model=virtio" puts each NIC on a seperate bus, all work now;
- modern virtio is automatically used when NIC is on PCIe bus;
Revert "p/fuel: lib.sh: Revert to virtio-mmio for PXE net"
This reverts commit 4f72e6be436badd2ded546424ec4a304cd6ce5d3.
[1] https://lists.gnu.org/archive/html/qemu-devel/2017-07/msg07594.html
Change-Id: Iaa7af63846c9d9dca5b7a9be5efa54f8cd56242e
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
Diffstat (limited to 'patches/opnfv-fuel/0003-lib.sh-AArch64-virt-install-Use-virtio-net-pci.patch')
-rw-r--r-- | patches/opnfv-fuel/0003-lib.sh-AArch64-virt-install-Use-virtio-net-pci.patch | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/patches/opnfv-fuel/0003-lib.sh-AArch64-virt-install-Use-virtio-net-pci.patch b/patches/opnfv-fuel/0003-lib.sh-AArch64-virt-install-Use-virtio-net-pci.patch deleted file mode 100644 index c49bddec..00000000 --- a/patches/opnfv-fuel/0003-lib.sh-AArch64-virt-install-Use-virtio-net-pci.patch +++ /dev/null @@ -1,80 +0,0 @@ -From: Alexandru Avadanii <Alexandru.Avadanii@enea.com> -Date: Tue, 11 Jul 2017 19:06:47 +0200 -Subject: [PATCH] lib.sh: AArch64: virt-install: Use virtio-net-pci - -AArch64 virt tools (i.e. libvirt) default to "virtio-mmio", instead of -"virtio-net-pci", at least before libvirt 3.x (see [1]). - -Without PCI bus info, we can't really enforce a specific order for -the guest ethernet devices. - -This leads to a mismatch between cloud-init, who expects "pxe" -network to reside on "eth0", while in fact it ends up on "eth3". -As a consequence, we have no connectivity to the guest, as DHCP -is only configured by cloud-init on "eth0", and also the boot -sequence waits ~5 minutes for "eth0" to come up, before eventually -giving up. - -Moreover, predictable network interface naming is out of the question -with virtio-mmio, as there is no bus information to rely on. - -Therefore we will enforce "virtio-net-pci" on AArch64, instead of -the default "virtio" (which translates into "virtio-mmio" currently). - -FIXME: Apparently, both legacy and modern virtio (0.9 and 1.0) are -active, which leads to triggering bug[2]. -For now, throw some sed magic at it and disable legacy mode. - -[1] https://www.redhat.com/archives/libvir-list/2016-August/msg00931.html -[2] https://bugzilla.redhat.com/show_bug.cgi?id=1370005 - -Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com> ---- - mcp/scripts/lib.sh | 20 ++++++++++++++++---- - 1 file changed, 16 insertions(+), 4 deletions(-) - -diff --git a/mcp/scripts/lib.sh b/mcp/scripts/lib.sh -index 862fdcc..7c4c46f 100644 ---- a/mcp/scripts/lib.sh -+++ b/mcp/scripts/lib.sh -@@ -58,24 +58,36 @@ create_vms() { - - # AArch64: prepare arch specific arguments - local virt_extra_args="" -+ local virt_pxe_net_model="virtio" -+ local virt_net_model="${virt_pxe_net_model}" - if [ "$(uname -i)" = "aarch64" ]; then - # No Cirrus VGA on AArch64, use vga std - virt_extra_args="$virt_extra_args --video=vga" -+ # AArch64 networking defaults to virtio-mmio before libvirt 3.x -+ virt_net_model="virtio-net-pci" - fi - - # create vms with specified options - for node in "${vnodes[@]}"; do - virt-install --name ${node} --ram ${vnodes_ram[$node]} --vcpus ${vnodes_vcpus[$node]} --cpu host --accelerate \ -- --network network:pxe,model=virtio \ -- --network network:mgmt,model=virtio \ -- --network network:internal,model=virtio \ -- --network network:public,model=virtio \ -+ --network network:pxe,model=${virt_pxe_net_model} \ -+ --network network:mgmt,model=${virt_net_model} \ -+ --network network:internal,model=${virt_net_model} \ -+ --network network:public,model=${virt_net_model} \ - --disk path=$(pwd)/images/mcp_${node}.qcow2,format=qcow2,bus=virtio,cache=none,io=native \ - --os-type linux --os-variant none \ - --boot hd --vnc --console pty --autostart --noreboot \ - --disk path=$(pwd)/images/mcp_${node}.iso,device=cdrom \ - --noautoconsole \ - ${virt_extra_args} -+ -+ # NOTE(armband): Disable legacy virtio (0.9) in favor of modern virtio (1.0) -+ # http://blog.vmsplice.net/2011/04/how-to-pass-qemu-command-line-options.html -+ # <qemu:commandline> -+ # <qemu:arg value='-global'/> -+ # <qemu:arg value='virtio-pci.disable-legacy=on'/> -+ # </qemu:commandline> -+ EDITOR="sed -i -e \"s|\(<domain.*\)>|\1 xmlns:qemu='http://libvirt.org/schemas/domain/qemu/1.0'>|\" -e \"s|\(</domain>\)|<qemu:commandline><qemu:arg value='-global'/><qemu:arg value='virtio-pci.disable-legacy=on'/></qemu:commandline>\1|\"" virsh edit ${node} - done - } - |