Bug 1616400
| Summary: | [RFE] Per-interface multiqueue configuration | ||
|---|---|---|---|
| Product: | Red Hat OpenStack | Reporter: | Andreas Karis <akaris> |
| Component: | openstack-neutron | Assignee: | OSP Team <rhos-maint> |
| Status: | NEW --- | QA Contact: | Eran Kuris <ekuris> |
| Severity: | low | Docs Contact: | |
| Priority: | unspecified | ||
| Version: | 10.0 (Newton) | CC: | chrisw, srevivo |
| Target Milestone: | --- | Keywords: | FutureFeature |
| Target Release: | --- | ||
| Hardware: | Unspecified | ||
| OS: | Unspecified | ||
| Whiteboard: | |||
| Fixed In Version: | Doc Type: | If docs needed, set a value | |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | Type: | Bug | |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
|
Description
Andreas Karis
2018-08-15 19:39:27 UTC
Hi,
I was just assuming that this was a neutron task, given that I'd do a port-create with neutron. My point is, currently, we set this via the image properties, and this isn't very flexible. We also assume that all interfaces are either multi queue or not.
libvirt, however, gives us more flexibility:
~~~
[root@overcloud-compute-0 ~]# virsh dumpxml 4 | grep interface -C4
</controller>
<controller type='pci' index='0' model='pci-root'>
<alias name='pci.0'/>
</controller>
<interface type='bridge'>
<mac address='fa:16:3e:9e:31:8e'/>
<source bridge='qbr09d23991-54'/>
<target dev='tap09d23991-54'/>
<model type='virtio'/>
<driver name='vhost' queues='2'/>
<alias name='net0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</interface>
<interface type='bridge'>
<mac address='fa:16:3e:f0:00:99'/>
<source bridge='qbrd84d8d6c-26'/>
<target dev='tapd84d8d6c-26'/>
<model type='virtio'/>
<driver name='vhost' queues='2'/>
<alias name='net1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</interface>
<serial type='file'>
<source path='/var/lib/nova/instances/7462dca7-ad8d-4dd7-aedc-20c39caecf76/console.log'/>
<target type='isa-serial' port='0'>
<model name='isa-serial'/>
~~~
~~~
[root@rhel-test-multiqueue ~]# ethtool -l eth1
Channel parameters for eth1:
Pre-set maximums:
RX: 0
TX: 0
Other: 0
Combined: 2
Current hardware settings:
RX: 0
TX: 0
Other: 0
Combined: 1
~~~
~~~
[root@overcloud-compute-0 ~]# cat interface.xml
<interface type='bridge'>
<mac address='fa:16:3e:f0:00:99'/>
<source bridge='qbrd84d8d6c-26'/>
<target dev='tapd84d8d6c-26'/>
<model type='virtio'/>
<!-- <driver name='vhost' queues='2'/> -->
<alias name='net1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</interface>
~~~
~~~
[root@overcloud-compute-0 ~]# virsh detach-interface --domain instance-00000011 --mac fa:16:3e:f0:00:99
error: command 'detach-interface' requires <type> option
[root@overcloud-compute-0 ~]# virsh detach-interface --domain instance-00000011 --mac fa:16:3e:f0:00:99 --type bridge
Interface detached successfully
[root@overcloud-compute-0 ~]# virsh attach-device instance-00000011 interface.xml
Device attached successfully
~~~
~~~
[root@rhel-test-multiqueue ~]# ethtool -l eth1
Channel parameters for eth1:
Pre-set maximums:
RX: 0
TX: 0
Other: 0
Combined: 1
Current hardware settings:
RX: 0
TX: 0
Other: 0
Combined: 1
~~~
~~~
[root@overcloud-compute-0 ~]# cat interface.xml
<interface type='bridge'>
<mac address='fa:16:3e:f0:00:99'/>
<source bridge='qbrd84d8d6c-26'/>
<target dev='tapd84d8d6c-26'/>
<model type='virtio'/>
<driver name='vhost' queues='4'/>
<alias name='net1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</interface>
~~~
~~~
[root@overcloud-compute-0 ~]# cat interface.xml
<interface type='bridge'>
<mac address='fa:16:3e:f0:00:99'/>
<source bridge='qbrd84d8d6c-26'/>
<target dev='tapd84d8d6c-26'/>
<model type='virtio'/>
<driver name='vhost' queues='4'/>
<alias name='net1'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x06' function='0x0'/>
</interface>
[root@overcloud-compute-0 ~]# virsh detach-interface --domain instance-00000011 --mac fa:16:3e:f0:00:99 --type bridge
Interface detached successfully
[root@overcloud-compute-0 ~]# virsh attach-device instance-00000011 interface.xml
Device attached successfully
~~~
~~~
[root@rhel-test-multiqueue ~]# ethtool -l eth1
Channel parameters for eth1:
Pre-set maximums:
RX: 0
TX: 0
Other: 0
Combined: 4
Current hardware settings:
RX: 0
TX: 0
Other: 0
Combined: 1
~~~
|