Bug 1258206

Summary: [SR-IOV] - 'Queues' are not working if 'passthrough'' is checked on the vNIC profile
Product: [oVirt] ovirt-engine Reporter: Michael Burman <mburman>
Component: RFEsAssignee: Dan Kenigsberg <danken>
Status: CLOSED NOTABUG QA Contact: Michael Burman <mburman>
Severity: medium Docs Contact:
Priority: medium    
Version: 3.6.0CC: bugs, danken, gklein, lsurette, mst, rbalakri, Rhev-m-bugs, yeylon, ykaul, ylavi
Target Milestone: ovirt-4.0.0-alphaKeywords: FutureFeature
Target Release: ---Flags: ylavi: ovirt-4.0.0?
ylavi: planning_ack+
rule-engine: devel_ack?
rule-engine: testing_ack?
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Enhancement
Doc Text:
Story Points: ---
Clone Of:
: 1309274 (view as bug list) Environment:
Last Closed: 2016-02-17 11:57:03 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: 1293233    
Bug Blocks: 1309274    
Attachments:
Description Flags
Logs none

Description Michael Burman 2015-08-30 09:33:37 UTC
Created attachment 1068389 [details]
Logs

Description of problem:
[SR-IOV] - 'Queues' are not working if 'passthrough'' is checked on the vNIC profile.

queues are not working as expected when running VM and using vNIC profile with 'passthrough' checked and queues value configured.  

vdsm.log -->

Thread-1643::ERROR::2015-08-30 12:18:52,743::vm::1413::virt.vm::(_getRunningVmStats) vmId=`b76928d3-05bd-4c7a-9525-634f5a0f1c29`::Error fetching vm stats
Traceback (most recent call last):
  File "/usr/share/vdsm/virt/vm.py", line 1410, in _getRunningVmStats
    vm_sample.interval)
  File "/usr/share/vdsm/virt/vmstats.py", line 42, in produce
    networks(vm, stats, first_sample, last_sample, interval)
  File "/usr/share/vdsm/virt/vmstats.py", line 213, in networks
    first_indexes = _find_bulk_stats_reverse_map(first_sample, 'net')
  File "/usr/share/vdsm/virt/vmstats.py", line 340, in _find_bulk_stats_reverse_map
    name_to_idx[stats['%s.%d.name' % (group, idx)]] = idx
KeyError: 'net.0.name'

- when running VM with queues but without 'passthrough' checked,everything works as expected.

Version-Release number of selected component (if applicable):
3.6.0-0.12.master.el6

How reproducible:
100

Steps to Reproduce:
1. Run - engine-config -s
'CustomDeviceProperties={type=interface;prop={queues=[1-9][0-9]*}}'
2. Create network with 'passthrouhg' profile and with queues configured (for example 2) 
3. Add profile vNIC with this profile to VM and run it
4. Check if value is updated in vdsm and if passed to libvirt 

Actual results:
error in vdsm log. queues value is not appear. 
less /var/log/vdsm/vdsm.log > ?queues

- virsh -r dumpxml 'DOM' | grep queue

- ps -ww `pgrep qemu-kvm`
XML is not sent to qemu-kvm 

Expected results:
queues feature should work when using 'passthrough' vNIC profile.

Comment 1 Yaniv Lavi 2015-10-07 10:29:08 UTC
are queues supported by VF?

Comment 2 Dan Kenigsberg 2015-11-09 14:18:02 UTC
http://libvirt.org/formatdomain.html#elementsDriverBackendOptions

queues
    The optional queues attribute controls the number of queues to be used for either Multiqueue virtio-net or vhost-user network interfaces. Use of multiple packet processing queues requires the interface having the <model type='virtio'/> element. Each queue will potentially be handled by a different processor, resulting in much higher throughput. virtio-net since 1.0.6 (QEMU and KVM only) vhost-user since 1.2.17 (QEMU and KVM only) 


"Queues" are irrelevant to sr-iov function. However, that field is implemented as a custom property of VNIC profile, so it impossible to add logic on when to show it.

We consider having a smarter policy of setting the number of queues, where we can be more precise. Let this bug track that as a feature

Comment 3 Dan Kenigsberg 2016-02-17 11:57:03 UTC
closing this bug since it caused some confusion, opening rfe 1309274 instead.