Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.
Bug 1512488 - Guest paused with vhostuser interface with 129 queues
Summary: Guest paused with vhostuser interface with 129 queues
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Enterprise Linux 7
Classification: Red Hat
Component: libvirt
Version: 7.5
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: rc
: ---
Assignee: Michal Privoznik
QA Contact: chhu
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2017-11-13 10:46 UTC by Jingjing Shao
Modified: 2018-01-19 12:50 UTC (History)
5 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2018-01-19 12:50:33 UTC


Attachments (Terms of Use)

Description Jingjing Shao 2017-11-13 10:46:32 UTC
Description of problem:
Guest paused with vhostuser interface with 129 queues

Version-Release number of selected component (if applicable):
kernel-3.10.0-768.el7.x86_64
libvirt-3.9.0-1.el7.x86_64

How reproducible:
100%

Setup:
Prepare the NFV env and set multiqueue as below
# echo "enable queue size ='4'"
# ovs-vsctl set Interface vhost-user2 options:n_rxq=129

Steps to Reproduce:
1.Prepare a running guest with interface as below
   <interface type='vhostuser'>
      <mac address='52:54:000:1e:63'/>
      <source type='unix' path='/var/run/openvswitch/vhost-user2' mode='client'/>
      <model type='virtio'/>
      <driver name='vhost' queues='129'/>
      <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
    </interface>

2. Start the guest and check the status
# virsh start rhel7_jishao

# virsh domstate rhel7_jishao  --reason
paused (starting up)

For long time, the guest keep the paused status

3.Change the queues to '128' and start the guest, guest can start successfully.
# virsh start rhel7_jishao
Domain rhel7_jishao started


Actual results:
As the step2 shows.

Expected results:
1. If vhostuser interface support 129 and more queues, the guest should start successfully.
2. If vhostuser interface does not support 129 and more queues, It should give a more reasonable error message.

Additional info:
N/A

Comment 2 yalzhang@redhat.com 2017-11-13 13:32:54 UTC
add one more info, when set queues size='129' in guest's xml, the guest paused and we can got the error message as below:

# cat /var/log/libvirt/qemu/rhel7.log
...
2017-11-13T09:24:07.866517Z qemu-kvm: -netdev vhost-user,chardev=charnet0,queues=129,id=hostnet0: you are asking more queues than supported: 128
2017-11-13T09:24:07.896360Z qemu-kvm: -netdev vhost-user,chardev=charnet0,queues=129,id=hostnet0: you are asking more queues than supported: 128
2017-11-13T09:24:07.917885Z qemu-kvm: -netdev vhost-user,chardev=charnet0,queues=129,id=hostnet0: you are asking more queues than supported: 128

Comment 3 Jaroslav Suchanek 2017-11-24 21:20:02 UTC
Not sure if libvirt can do anything about it. Miso, please have a look.

Comment 4 Michal Privoznik 2017-11-25 06:36:43 UTC
I don't think there's anything that libvirt can do. This limit is a result of internal implementation of qemu. I mean they have:

#define VIRTIO_QUEUE_MAX 1024

in include/hw/virtio/virtio.h from which other limits are derived (just like the one for queues=). Unfortunately, they don't export the limit anywhere. I mean, if we'd hard code any limits and they would change it libvirt would be more strict that qemu.

Therefore I suggest closing this bug.

Comment 5 Michal Privoznik 2018-01-19 12:50:33 UTC
Closing per comment 4. If you disagree please reopen with stating what do you expect from libvirt to do.


Note You need to log in before you can comment on or make changes to this bug.