Note: This bug is displayed in read-only format because
the product is no longer active in Red Hat Bugzilla.
RHEL Engineering is moving the tracking of its product development work on RHEL 6 through RHEL 9 to Red Hat Jira (issues.redhat.com). If you're a Red Hat customer, please continue to file support cases via the Red Hat customer portal. If you're not, please head to the "RHEL project" in Red Hat Jira and file new tickets here. Individual Bugzilla bugs in the statuses "NEW", "ASSIGNED", and "POST" are being migrated throughout September 2023. Bugs of Red Hat partners with an assigned Engineering Partner Manager (EPM) are migrated in late September as per pre-agreed dates. Bugs against components "kernel", "kernel-rt", and "kpatch" are only migrated if still in "NEW" or "ASSIGNED". If you cannot log in to RH Jira, please consult article #7032570. That failing, please send an e-mail to the RH Jira admins at rh-issues@redhat.com to troubleshoot your issue as a user management inquiry. The email creates a ServiceNow ticket with Red Hat. Individual Bugzilla bugs that are migrated will be moved to status "CLOSED", resolution "MIGRATED", and set with "MigratedToJIRA" in "Keywords". The link to the successor Jira issue will be found under "Links", have a little "two-footprint" icon next to it, and direct you to the "RHEL project" in Red Hat Jira (issue links are of type "https://issues.redhat.com/browse/RHEL-XXXX", where "X" is a digit). This same link will be available in a blue banner at the top of the page informing you that that bug has been migrated.
Description of problem:
Issue reported on the ipxe-devel mailing list:
http://lists.ipxe.org/pipermail/ipxe-devel/2017-November/005886.html
iPXE is unable to transmit and receive packets through a vhost-user interface if virtio-net is configured with mq=on. It looks like DPDK simply won't consider the interface 'ready' until after all queues have been initialized.
http://dpdk.org/browse/dpdk/tree/lib/librte_vhost/vhost_user.c#n713
iPXE has a simple virtio-net driver without MQ support so it always initializes only queues 0 and 1.
Version-Release number of selected component (if applicable):
Recent upstream QEMU (commit 5e19aed)
Recent OVS (commit a7ce5b8)
DPDK 17.05.2
Recent upstream iPXE (commit b5e0b50)
How reproducible:
100%
Steps to Reproduce:
$ git clone git://git.ipxe.org/ipxe.git
$ cd ipxe/src
$ make bin/1af41000.rom DEBUG=virtio-net:2
$ ln -s bin/1af41000.rom efi-virtio.rom
Then run QEMU without changing the current directory (i.e. should
still be .../ipxe/src):
qemu-system-x86_64 \
-machine pc,accel=kvm -m 128M -boot strict=on -device cirrus-vga \
-monitor stdio \
-object memory-backend-file,id=mem,size=128M,mem-path=/dev/hugepages,share=on \
-numa node,memdev=mem \
-chardev socket,id=char1,path=/var/run/openvswitch/vhost-user0 \
-netdev type=vhost-user,id=mynet1,chardev=char1,vhostforce \
-device virtio-net-pci,mac=00:00:00:00:00:01,netdev=mynet1,bootindex=0
You'll see a bunch of "enqueuing iobuf" debug messages on the screen,
followed by at least "tx complete". Maybe also "rx complete" depending
on what /var/run/openvswitch/vhost-user0 is connected to.
Now if you enable multiqueue by replacing the last two lines with:
-netdev type=vhost-user,id=mynet1,chardev=char1,vhostforce,queues=16 \
-device virtio-net-pci,mac=00:00:00:00:00:01,netdev=mynet1,mq=on,vectors=34,bootindex=0
you'll see only "enqueuing iobuf" without any completion, indicating
that the host is not processing packets placed in the tx virtqueue by
iPXE.
Actual results:
Buffers are not "completed", no packets are transmitted or received.
Expected results:
iPXE has network connectivity.
(In reply to Ladi Prosek from comment #0)
> iPXE has a simple virtio-net driver without MQ support so it always
> initializes only queues 0 and 1.
Not sure if it matters, but the same applies to OVMF's VirtioNetDxe driver.
Hi Matteo,
I have posted a DPDK patch upstream to fix this issue.
Last revision may be found here, but is not applied upstream yet:
http://dpdk.org/ml/archives/dev/2017-December/083502.html
I will notify you once it is applied upstream.
Regards,
Maxime
Hi Matteo,
(In reply to Matteo Croce from comment #4)
> was the patch merged as 07f8db29b8833378dd506f3e197319f8b669aed9 ?
There are in total 4 patches to backport, two from my initial series, and another
series fixing SPDK support by Stefan.
Stefan series is accepted, but didn't land yet into upstream master.
It will be in next 18.02-rc3 release.
Do you want me to provide you a backport of the 4 patches?
If yes, should I attach it to the bz, or sent it to you directly by e-mail?
Cheers,
Maxime
Created attachment 1392231[details]
Patches backport for v17.11
Hi Matteo,
Please find the backport for v17.11.
Actually, there are 6 patches, not 4 as I mentioned previously.
Regards,
Maxime