Newly deployed Cavium System with 18.04 to get my own view onto this
(without openstack/charms in the way)
1. start a basic guest
$ sudo apt install uvtool-libvirt qemu-efi-aarch64
$ uvt-simplestreams-libvirt --verbose sync --source http://cloud-images.ubuntu.com/daily arch=arm64 label=daily release=bionic
$ uvt-kvm create --password=ubuntu b1 release=bionic arch=arm64 label=daily
=> Just works, nothing special in logs
Since it was stated that the special VF/PF are not uses this already breaks the argument made in the bug report - my guest just works on this system.
2. check the odd PF/VF situation
Please note that I had only the initial renames to the new naming scheme, but no others:
dmesg | grep renamed
[ 10.450002] thunder-nicvf 0002:01:00.2 enP2p1s0f2: renamed from eth1
[ 10.489989] thunder-nicvf 0002:01:00.1 enP2p1s0f1: renamed from eth0
[ 10.629936] thunder-nicvf 0002:01:00.4 enP2p1s0f4: renamed from eth3
[ 10.877936] thunder-nicvf 0002:01:00.3 enP2p1s0f3: renamed from eth2
[ 10.957933] thunder-nicvf 0002:01:00.5 enP2p1s0f5: renamed from eth4
None of the devices has pyhsical_port_id but that is no fatal.
Because on other platforms I found the same e.g. ppc64el some have that some don't /sys/devices/pci0003:00/0003:00:00.0/0003:01:00.0/0003:02:09.0/0003:09:00.0/net/enP3p9s0f0/phys_port_id': Operation not supported
It will just use NULL which essentially menas there is just one phys
port and that is fine.
It is more interesting that it later checks physfn which exists on Cavium (but not on ppc64 for example)
lrwxrwxrwx 1 root root 0 May 18 06:23 /sys/devices/pci0002:00/0002:00:02.0/0002:01:01.4/physfn -> ../0002:01:00.0/
If this would NOT exist it would give up here.
But it does exist, so it tries to go on with it and then fails as it doesn't find anything.
That would match what we read in the reported upstream mail discussion.
But none of this matters as per jhobbs it should not use those devices
FYI code in libvirt around that:
This gives you something like
If none of these functions failed BUT returned no path then the reported message appears.
On other HW it either works OR just doesn't find the paths and gives up before the error message.
3. check libvirt capabilities and status
As I asked before, we would need to know the libvirt action that fails, as all I tried just works.
Also general probing like one would expect on an initial nova node setup:
$ virsh capabilities
$ virsh domcapabilities
$ virsh sysinfo
$ virsh nodeinfo
works just fine without the reported errors.
4. Lets even use those devices now
The host uses enP2p1s0f1, that is:
0002:01:00.1 Ethernet controller: Cavium, Inc. THUNDERX Network Interface Controller virtual function (rev 09)
So lets use its siblings
As passthrough host-interface
0002:01:00.2 Ethernet controller: Cavium, Inc. THUNDERX Network Interface Controller virtual function (rev 09)
<interface type='hostdev' managed='yes'>
<address type='pci' domain='0x0002' bus='0x1' slot='0x0' function='0x2'/>
As passthrough generic hostdev:
0002:01:00.3 Ethernet controller: Cavium, Inc. THUNDERX Network Interface Controller virtual function (rev 09)
<hostdev mode='subsystem' type='pci' managed='yes'>
<address type='pci' domain='0x0002' bus='0x1' slot='0x0' function='0x3'/>
Note: please follow the upstream mailing list discussion on the
difference of those.
$ virsh attach-device b1 interface.xml
error: Failed to attach device from interface.xml
error: internal error: The PF device for VF /sys/bus/pci/devices/0002:01:00.2 has no network device name
And in Log:
4624: error : virPCIGetVirtualFunctionInfo:3016 : internal error: The PF device for VF /sys/bus/pci/devices/0002:01:00.2 has no network device name
As outlined in the mail-thread these special devices can still be attached, if you let libvirt handle it not as VFs but as generic PCI.
$ virsh attach-device b1 hostdev.xml
Device attached successfully
My guest can work fine with this now.
And e voila when you attach it as hostdev then (due to unplugging/pluggin on the host) you get the device renames you have seen.
[ 3222.919212] vfio-pci 0002:01:00.3: enabling device (0004 -> 0006)
[ 3229.172142] thunder-nicvf 0002:01:00.3: enabling device (0004 -> 0006)
[ 3229.219106] thunder-nicvf 0002:01:00.3 enP2p1s0f3: renamed from eth0
This is your error IMHO, but you said multiple times you are not doing that.
I assume you really want to use the VFs as passthrough devices - which is a whole other story than "just set up openstack".
If you really just set up the base nova node, then total +1 on Ryans:
"At this point, we can compare the logs to Xenial, but I think the next
step is back to the charms/nova-compute to determine how a node reports
back to openstack that a compute node is ready."
** Changed in: libvirt (Ubuntu)
Status: New => Incomplete
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
libvirtError: Node device not found: no node device with matching name
To manage notifications about this bug go to:
ubuntu-bugs mailing list