[dpdk-dev] A Question about the necessity of DPDK VF for Ethernet PMDs

Rami Rosen ramirose at gmail.com
Mon Feb 4 08:43:06 CET 2019


 Hello all,



Now that DPDK 19.02 was released three days ago (on time!!), hopefully
there will be time

for people to answer the following question:



According to the "DPDK Getting Started Guide",



"If UEFI secure boot is enabled, the Linux kernel may disallow the use of
UIO on the system.

Therefore, devices for use by DPDK should be bound to the vfio-pci kernel
module

rather than igb_uio or uio_pci_generic. For more details see Binding and

Unbinding Network Ports to/from the Kernel Modules."

See:

http://doc.dpdk.org/guides/linux_gsg/sys_reqs.html#bios-setting-prerequisite-on-x86



Now, when you bind a PCI device with vfio-pci, then the "max_vfs" entry is
*not* created under

/sys/bus/pci/devices/<BDF>/ (as opposed to the case when you bind with
igb_uio).

This means that you cannot create DPDK VFS in this case (as you cannot
write num_vfs to the

non existing max_vfs entry). You can however create Kernel VFs (by echoing
into the sriov_num_vfs

sysfs entry).



So I assume there are deployments of DPDK (with secure boot) when the PMDs
are being binded not by

igb_uio but by vfio_pci.



So the question is:

As explained above, t probably there are setups when you cannot generated
PMD VFs.

Most PMD Ethernet Vendors *do* provide VF PMDs in the DPDK official repo;

but what are the benefits of providing DPDK VFs PMD? is it mandatory in
some use cases ?

Is there any advantage for using a DPDK PF/DPDK VF

combination over using Kernel VF?



Regards,

Rami Rosen


More information about the dev mailing list