** Description changed:

- [Description]
+ [Impact]
  
- Ubuntu 14.04.4 and SRIOV settings.
+ libnl can only enable up to 30 VFs even if the PF supports up to 63 VFs
+ in an Openstack SRIOV configuration.
  
  As already documented in https://bugs.launchpad.net/mos/+bug/1501738
  there is a bug in the default libnl library release installed on Ubuntu
- 14.04.4
+ 14.04.4.
  
  When trying to enable a guest with more than 30 VFs attached, the
  following error is returned:
  
  error: Failed to start domain guest1
  error: internal error: missing IFLA_VF_INFO in netlink response
  
- [Impact]
- 
- The library release is the 3.2.21-1 the bug is impacting on the maximum
- VFs number that can be enabled (up to 30) even if the PF supports up to
- 63 VFs in an Openstack SRIOV configuration
- 
  [Test Case]
  
- The sequence to reproduce this bug is:
- 
- 1) Edit /etc/default/grub
+  1) Edit /etc/default/grub.
  
  GRUB_CMDLINE_LINUX="intel_iommu=on ixgbe.max_vfs=63"
  
- 2) $ sudo update-grub
+  2) Update grub and reboot the machine.
  
- ### Reboot the machine.
+ $ sudo update-grub
  
- 3) Check that the virtual functions are available:
+  3) Check that the virtual functions are available.
  
  $ sudo lspci|grep -i eth | grep -i virtual | wc -l
  126
  
- 4) Create a KVM guest
+  4) Create a KVM guest.
  
  $ sudo uvt-kvm create guest1 release=trusty
  
- 5) List the VF devices :
+  5) List the VF devices.
  
  $ sudo lspci|grep -i eth | grep -i virtual | awk '{print $1}' | sed
  's/\:/\_/g' | sed 's/\./\_/g' > devices.txt
  
- 6) Get the libvirt node device:
+  6) Get the libvirt node device.
  
  $ sudo for device in $(cat ./devices.txt); do virsh nodedev-list | grep
  $device; done > pci_devices.txt
  
- 7) Generate the XML config for each device:
+  7) Generate the XML config for each device.
  
  $ sudo mkdir devices && for d in $(cat pci_devices.txt); do virsh
  nodedev-dumpxml $d > devices/$d.xml; done
  
- 8) Save and Run the following script
+  8) Save and Run the following script.
  (http://pastebin.ubuntu.com/23374186/)
  
  $ sudo python generate-interfaces.py |grep address | wc -l
  
- 9) Finally attach the devices to the guest.
+  9) Finally attach the devices to the guest.
  
  $ sudo for i in $(seq 0 63); do virsh attach-device guest1 
./interfaces/$i.xml --config; done
  Device attached successfully
  [...]
  
  Device attached successfully
  Device attached successfully
  
- 10) Then destroy/start the guest again, at this point the error is
+  10) Then destroy/start the guest again, at this point the error is
  reproduced.
  
  $ sudo virsh destroy guest1
  Domain guest1 destroyed
  
  $ sudo virsh start guest1
  
  error: Failed to start domain guest1
  error: internal error: missing IFLA_VF_INFO in netlink response
  
-  * detailed instructions how to reproduce the bug
- 
-  * these should allow someone who is not familiar with the affected
-    package to reproduce the bug and verify that the updated package fixes
-    the problem.
- 
  [Regression Potential]
  
-  ** None identified.
+  * None identified.
  
  [Other Info]
  
- - Redhat Bug: https://bugzilla.redhat.com/show_bug.cgi?id=1040626
+  * Redhat Bug: https://bugzilla.redhat.com/show_bug.cgi?id=1040626
  
- [Workaround]
+  * A workaround is to install a newer library release.
  
- The workaround is to install a newer library release, the 3.2.24-2:
- 
- wget 
https://launchpad.net/ubuntu/+archive/primary/+files/libnl-3-200_3.2.24-2_amd64.deb
- wget 
https://launchpad.net/ubuntu/+archive/primary/+files/libnl-genl-3-200_3.2.24-2_amd64.deb
- wget 
https://launchpad.net/ubuntu/+archive/primary/+files/libnl-route-3-200_3.2.24-2_amd64.deb
- dpkg -i libnl-3-200_3.2.24-2_amd64.deb
- dpkg -i libnl-genl-3-200_3.2.24-2_amd64.deb
- dpkg -i libnl-route-3-200_3.2.24-2_amd64.deb
+ $ wget 
https://launchpad.net/ubuntu/+archive/primary/+files/libnl-3-200_3.2.24-2_amd64.deb
+ $ wget 
https://launchpad.net/ubuntu/+archive/primary/+files/libnl-genl-3-200_3.2.24-2_amd64.deb
+ $ wget 
https://launchpad.net/ubuntu/+archive/primary/+files/libnl-route-3-200_3.2.24-2_amd64.deb
+ $ dpkg -i libnl-3-200_3.2.24-2_amd64.deb
+ $ dpkg -i libnl-genl-3-200_3.2.24-2_amd64.deb
+ $ dpkg -i libnl-route-3-200_3.2.24-2_amd64.deb

** Changed in: libnl3 (Ubuntu Precise)
   Importance: Undecided => Medium

-- 
You received this bug notification because you are a member of Ubuntu
Touch seeded packages, which is subscribed to libnl3 in Ubuntu.
https://bugs.launchpad.net/bugs/1567578

Title:
   libnl should be updated to support up to 63 VFs per single PF

Status in libnl3 package in Ubuntu:
  Fix Released
Status in libnl3 source package in Precise:
  New
Status in libnl3 source package in Trusty:
  Fix Committed

Bug description:
  [Impact]

  libnl can only enable up to 30 VFs even if the PF supports up to 63
  VFs in an Openstack SRIOV configuration.

  As already documented in https://bugs.launchpad.net/mos/+bug/1501738
  there is a bug in the default libnl library release installed on
  Ubuntu 14.04.4.

  When trying to enable a guest with more than 30 VFs attached, the
  following error is returned:

  error: Failed to start domain guest1
  error: internal error: missing IFLA_VF_INFO in netlink response

  [Test Case]

   1) Edit /etc/default/grub.

  GRUB_CMDLINE_LINUX="intel_iommu=on ixgbe.max_vfs=63"

   2) Update grub and reboot the machine.

  $ sudo update-grub

   3) Check that the virtual functions are available.

  $ sudo lspci|grep -i eth | grep -i virtual | wc -l
  126

   4) Create a KVM guest.

  $ sudo uvt-kvm create guest1 release=trusty

   5) List the VF devices.

  $ sudo lspci|grep -i eth | grep -i virtual | awk '{print $1}' | sed
  's/\:/\_/g' | sed 's/\./\_/g' > devices.txt

   6) Get the libvirt node device.

  $ sudo for device in $(cat ./devices.txt); do virsh nodedev-list |
  grep $device; done > pci_devices.txt

   7) Generate the XML config for each device.

  $ sudo mkdir devices && for d in $(cat pci_devices.txt); do virsh
  nodedev-dumpxml $d > devices/$d.xml; done

   8) Save and Run the following script.
  (http://pastebin.ubuntu.com/23374186/)

  $ sudo python generate-interfaces.py |grep address | wc -l

   9) Finally attach the devices to the guest.

  $ sudo for i in $(seq 0 63); do virsh attach-device guest1 
./interfaces/$i.xml --config; done
  Device attached successfully
  [...]

  Device attached successfully
  Device attached successfully

   10) Then destroy/start the guest again, at this point the error is
  reproduced.

  $ sudo virsh destroy guest1
  Domain guest1 destroyed

  $ sudo virsh start guest1

  error: Failed to start domain guest1
  error: internal error: missing IFLA_VF_INFO in netlink response

  [Regression Potential]

   * None identified.

  [Other Info]

   * Redhat Bug: https://bugzilla.redhat.com/show_bug.cgi?id=1040626

   * A workaround is to install a newer library release.

  $ wget 
https://launchpad.net/ubuntu/+archive/primary/+files/libnl-3-200_3.2.24-2_amd64.deb
  $ wget 
https://launchpad.net/ubuntu/+archive/primary/+files/libnl-genl-3-200_3.2.24-2_amd64.deb
  $ wget 
https://launchpad.net/ubuntu/+archive/primary/+files/libnl-route-3-200_3.2.24-2_amd64.deb
  $ dpkg -i libnl-3-200_3.2.24-2_amd64.deb
  $ dpkg -i libnl-genl-3-200_3.2.24-2_amd64.deb
  $ dpkg -i libnl-route-3-200_3.2.24-2_amd64.deb

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libnl3/+bug/1567578/+subscriptions

-- 
Mailing list: https://launchpad.net/~touch-packages
Post to     : touch-packages@lists.launchpad.net
Unsubscribe : https://launchpad.net/~touch-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to