Bug 1168201

Summary: [PPC] cannot hotplug vNIC with sPAPR VLAN driver
Product: Red Hat Enterprise Virtualization Manager Reporter: Martin Pavlik <mpavlik>
Component: vdsmAssignee: Dan Kenigsberg <danken>
Status: CLOSED DEFERRED QA Contact: Meni Yakove <myakove>
Severity: low Docs Contact:
Priority: low    
Version: 3.6.0CC: bazulay, dgibson, ecohen, gklein, lpeer, lsurette, michal.skrivanek, myakove, mzamazal, rmm, yeylon, ylavi
Target Milestone: ---   
Target Release: ---   
Hardware: ppc64   
OS: Linux   
Whiteboard: network
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2015-11-24 07:57:44 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: Network RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1122979    
Attachments:
Description Flags
log_collector none

Description Martin Pavlik 2014-11-26 11:56:06 UTC
Created attachment 961618 [details]
log_collector

Description of problem:
on Power PC it is not possible to hotplug vNIC with sPAPR VLAN driver

Version-Release number of selected component (if applicable):
Red Hat Enterprise Virtualization Manager Version: 3.4.4-2.2.el6ev 
vdsm-4.14.18-0.pkvm2_1_1.ppc64
libvirt-1.2.5-1.1.pkvm2_1_1.20.28.ppc64


How reproducible:
100%

Steps to Reproduce:
1. create VM with OS supporting hotplug installed (I tested with Fedora 20)
2. Virtual Machines -> your VM -> Network Interfaces -> New
3. select type: sPAPR VLAN (vNIC linked, plugged), click OK

Actual results:
hotplug fails

Expected results:
hotplug successfull

Additional info:
other dirvers (virtio, e1000) work ok

hread-2416::ERROR::2014-11-26 11:33:05,942::vm::3329::vm.Vm::(hotplugNic) vmId=`798409fb-8004-4243-b2e7-219d67325230`::Hotplug failed
Traceback (most recent call last):
  File "/usr/share/vdsm/vm.py", line 3327, in hotplugNic
    self._dom.attachDevice(nicXml)
  File "/usr/share/vdsm/vm.py", line 928, in f
    ret = attr(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/vdsm/libvirtconnection.py", line 92, in wrapper
    ret = f(*args, **kwargs)
  File "/usr/lib64/python2.7/site-packages/libvirt.py", line 497, in attachDevice
    if ret == -1: raise libvirtError ('virDomainAttachDevice() failed', dom=self)
libvirtError: An error occurred, but the cause is unknown

Comment 1 Michal Skrivanek 2014-11-26 12:18:13 UTC
Is it supported on F20?

Comment 2 Martin Pavlik 2014-11-26 12:45:29 UTC
it does not work with RHEL7 either

it does not work with the latest packages for hotplug support in guest OS as per

https://www.ibm.com/developerworks/community/wikis/home?lang=en#!/wiki/W51a7ffcf4dfd_4b40_9d82_446ebc23c550/page/Guest%20considerations


[root@dhcp167-139 ~]# cat /etc/redhat-release 
Red Hat Enterprise Linux Server release 7.0 (Maipo)
[root@dhcp167-139 ~]# rpm -q  powerpc-utils
powerpc-utils-1.2.20-3.ppc64
[root@dhcp167-139 ~]# rpm -q librtas
librtas-1.3.10-1.el7.ppc64
[root@dhcp167-139 ~]# rpm -q  ppc64-diag
ppc64-diag-2.6.5-1.ppc64
[root@dhcp167-139 ~]# uname -a
Linux dhcp167-139.klab.eng.bos.redhat.com 3.10.0-123.el7.ppc64 #1 SMP Mon May 5 11:18:37 EDT 2014 ppc64 ppc64 ppc64 GNU/Linux

Comment 4 Michal Skrivanek 2014-11-27 09:48:04 UTC
no supported in libvirt/qemu at the moment. Future support is an open question.
We should comment out spapr from hotplug interface list in osinfo

Comment 9 Michal Skrivanek 2015-09-09 12:28:20 UTC
David, can you help us to get an answer about spapr? Is that something which is supposed to work?
Thanks!

Comment 10 David Gibson 2015-09-10 00:16:15 UTC
PAPR defines an interface for hotplug of VIO devices, but AFAIK neither Red Hat nor IBM have any plans to implement it.

Comment 11 Michal Skrivanek 2015-09-14 15:15:09 UTC
then please disable hotplug for spapr nic

Comment 12 Michal Skrivanek 2015-09-17 12:28:17 UTC
note this is a generic osinfo change

Comment 13 Milan Zamazal 2015-11-12 15:08:18 UTC
Unfortunately disabling particular network device hotplug is not just a change in osinfo as there is actually no such option there. There is only a common boolean option to enable or disable network hotplug on ppc. As we don't want to disable NIC hotplug on ppc completely, nor to remove sPAPR NIC device, a new option for selective hotplug based on NIC type should be added. However, this is not a one-liner as was originally expected and the bug is not critical, since it doesn't cause any damage, just may surprise users. So I'm leaving the bug.

Comment 14 Dan Kenigsberg 2015-11-13 18:45:40 UTC
Milan, can you educate me regarding sPAPR NICs? Why is it impossible to hotplug them? How can I identify them?

Comment 15 David Gibson 2015-11-16 00:35:43 UTC
Dan,

The "sPAPR NIC" is virtual network interface defined by PAPR - the document which specifies the paravirtual environment in which Power guests operate.  It's defined in section 16.4 of the LoPAPR document (https://members.openpowerfoundation.org/document/dl/469).

The intended function is basically the same as virtio-net, but it's a completely different implementation.  virtio is better designed, and will perform better, so we don't recommend using the sPAPR NIC, but we include support for it because customers may have existing guests which were running under PowerVM and so are already configured for this NIC type.  Supporting sPAPR NICs could simplify this migration.

These are *NOT* PCI devices, in any sense, they are purely virtual devices accessed by PAPR defined hypercalls.  So, PCI hotplug mechanisms aren't applicable.

PAPR does define a hotplug mechanism for virtual IO devices like the sPAPR NIC, but it has not been implemented in qemu, and neither IBM nor Red Hat has any immediate plans to implement it.

Comment 16 Dan Kenigsberg 2015-11-23 13:49:09 UTC
Meni, can you reproduce this bug on RHEV-for-PPC64LE-on-el7.2?

Comment #0 smells like a libvirt/qemu bug that might have change quite much since then.

Comment 17 David Gibson 2015-11-23 23:37:58 UTC
No, the situation has not changed since comment 0 - just as comment 15 describes.

I'm not sure how many times I have to say it: hotplug of sPAPR VIO devices is not implemented, nor are there plans to implement it.