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.