Bug 2007572

Summary: RHOSP16.1: TX queue size is not propagated to guest VM for "vhost" interface type
Product: Red Hat OpenStack Reporter: Shravan Kumar Tiwari <shtiwari>
Component: openstack-novaAssignee: OSP DFG:Compute <osp-dfg-compute>
Status: CLOSED NOTABUG QA Contact: OSP DFG:Compute <osp-dfg-compute>
Severity: high Docs Contact:
Priority: unspecified    
Version: 16.1 (Train)CC: alifshit, dasmith, eglynn, jhakimra, kchamart, sbauza, sgordon, smooney, vromanso
Target Milestone: ---Keywords: FutureFeature, Reopened, Triaged
Target Release: ---   
Hardware: x86_64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2022-10-04 21:06:23 UTC 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:
Bug Depends On: 2040509    
Bug Blocks:    

Description Shravan Kumar Tiwari 2021-09-24 09:53:43 UTC
Description of problem:
- RX and TX queue size are configured on director templates
    NovaLibvirtRxQueueSize: 1024
    NovaLibvirtTxQueueSize: 1024

- this is also correctly set in nova.conf
tx_queue_size=1024
rx_queue_size=1024

- however the libvirt domain XML only has RX settings
[shtiwari@supportshell virsh]$ grep -e queue -e UUID virsh_-r_dumpxml_instance-00000e74
      <driver name='vhost' queues='2' rx_queue_size='1024'/>

Instance UUID is:
virsh_-r_dominfo_instance-00000e74:UUID:           2f9201e3-df6a-4099-9277-4101db156d10

Version-Release number of selected component (if applicable):
RHOSP16.1



Actual results:
tx_queue_size is not present in libvirt xml created for guest VM during server creation and hence not propagated to guest VM. only rx_queue_size is propagated.

Expected results:
tx_queue_size should also be updated and propagated to guest VM with the value configured and present in nova.conf.

Additional info:

Comment 13 Artom Lifshitz 2021-10-25 15:24:06 UTC
DFG:Compute will review the requested support exception on October 28th. Since the RFE has been filed for `tuned`, closing this as a duplicate of the tuned RFE.

*** This bug has been marked as a duplicate of bug 2015044 ***

Comment 15 Artom Lifshitz 2021-10-25 18:43:49 UTC
Re-opening since we might have to convert this into an RFE for tx_queue_length in OSP 18.

Comment 16 Kashyap Chamarthy 2021-11-10 16:20:03 UTC
Summary from bug-triage call:


- Firstly, libvirt's documentation is very clear that QEMU only supports 
  setting up `rx_queue_size` for interface type "vhostuser".  However
  the user here was using interface type "vhost".  So, Nova (and 
  libvirt) ignoring "rx_queue_size" for "vhost" is expected behaviour.

- Given the above, *if* there is a valid use-case to have
  "rx_queue_size" support for interface type "vhost", then the first
  step here is to have the support for it in QEMU.

  [TODO] So please file a QEMU RFE needs to be filed first, with a
  clear mention of the use-case.

Comment 17 Kashyap Chamarthy 2021-11-10 16:23:19 UTC
(In reply to Kashyap Chamarthy from comment #16)
> Summary from bug-triage call:
> 
> 
> - Firstly, libvirt's documentation is very clear that QEMU only supports 
>   setting up `rx_queue_size` for interface type "vhostuser".  However
>   the user here was using interface type "vhost".  So, Nova (and 
>   libvirt) ignoring "rx_queue_size" for "vhost" is expected behaviour.
>
> - Given the above, *if* there is a valid use-case to have
>   "rx_queue_size" support for interface type "vhost", then the first
>   step here is to have the support for it in QEMU.
> 
>   [TODO] So please file a QEMU RFE needs to be filed first, with a
>   clear mention of the use-case.


Err, a bad typo. I mean "tx_queue_size" (not "rx_queue_size") in the 
entire comment above.

Comment 18 Kashyap Chamarthy 2022-01-12 14:14:42 UTC
(In reply to Kashyap Chamarthy from comment #17)
> (In reply to Kashyap Chamarthy from comment #16)
> > Summary from bug-triage call:
> > 
> > 
> > - Firstly, libvirt's documentation is very clear that QEMU only supports 
> >   setting up `rx_queue_size` for interface type "vhostuser".  However
> >   the user here was using interface type "vhost".  So, Nova (and 
> >   libvirt) ignoring "rx_queue_size" for "vhost" is expected behaviour.
> >
> > - Given the above, *if* there is a valid use-case to have
> >   "rx_queue_size" support for interface type "vhost", then the first
> >   step here is to have the support for it in QEMU.
> > 
> >   [TODO] So please file a QEMU RFE needs to be filed first, with a
> >   clear mention of the use-case.
> 
> 
> Err, a bad typo. I mean "tx_queue_size" (not "rx_queue_size") in the 
> entire comment above.


Shravan?  Can you please remind us if you've filed the QEMU RFE here?

Comment 20 Artom Lifshitz 2022-10-04 21:06:23 UTC
Let's close this for now pending the QEMU work. If/when that gets completed, we can reopen this RFE, or file a new one to enable the qemu support in Nova.