Thanks for your inputs. So, does this mean, when ports are bound to VFIO driver(which uses IOMMU), we can run 2 DPDK apps concurrently, only if the 2 apps are accessing ports on 2 different Network cards. In other words, when ports are bound to VFIO driver, if 2 DPDK apps are running concurrently on the same system, then we need 2 Network cards installed on that system. So, I am guessing with 2 Network cards, under /dev, they would enumerate as 2 distinct paths, for example-> /dev/vfio/1 and /dev/vfio/2. Is this a correct understanding, please let me know.
On Thu, May 20, 2021 at 1:54 PM Stephen Hemminger < step...@networkplumber.org> wrote: > On Thu, 20 May 2021 13:34:35 -0700 > Sudharshan Krishnakumar <sudhar.ckris...@gmail.com> wrote: > > > Hi All, > > > > Have a Qs related to-> access to different ports on the same NIC by 2 > DPDK > > applications. > > > > > > > > Setup: 4-Port 10 Gig NIC card with ports bound for DPDK usage. > > > > > > > > With intel’s igb_uio kernel driver (used for binding NIC’s ports) using > > dpdk-setup.sh, at the /dev level, I see 4 device paths created, > > > > /dev/uio0, /dev/uio1, /dev/ui02, /dev/uio3 > > > > > > > > And I was able to run 2 DPDK applications concurrently(by blacklisting > the > > ports in EAL parameters), and they were able to take ownership of > different > > ports on the same NIC. > > > > For example DPDK_APP1 can take access of ports->0,1 and DPDK_APP2 can > take > > access of ports->2,3. > > > > > > > > Currently, I am using another DPDK app that relies on binding to VFIO > > driver. > > > > > > > > So I am trying to switch to binding NIC’s 4 ports to VFIO driver. > > > > > > > > Enabled VTIO in BIOS and added intel_iommu=on in kernel boot-param in > GRUB. > > > > > > > > After binding all 4 ports to VFIO driver, using dpdk-setup,sh, at the > /dev > > level, I only see these 2 device paths created-> /dev/vfio/vfio(control > > channel) > > > > and /dev/vfio/1(essentially just 1 path). > > > > > > > > I am able to run one DPDK application, for example-> PacketGen tool. > > > > But not able to run 2 DPDK applications concurrently accessing different > > ports on the same NIC, due to DPDK application not being able to get > access > > to the ports. > > > > For example, if I launch DPDK_APP1 first, it can get access to the ports, > > but DPDK_APP2 is NOT able to get access, and vice-versa. > > > > Note that both apps are trying to access different ports on the same NIC, > > and also ports have been black-listed as part of EAL params to the DPDK > > apps. > > > > I know this is possible with igb_uio driver. > > > > > > > > Please let me know, if it is possible to do this when ports are bound to > > VFIO driver. > > > > Thanks, > > > > Sudha > > The issue is that the IOMMU can't map two different areas at once > to same device. You might be able to use DPDK primary/secondary process > model to do this. >