DPDK usage discussions
 help / color / mirror / Atom feed
* [dpdk-users] access to different ports on the same NIC by 2 DPDK applications
@ 2021-05-20 20:34 Sudharshan Krishnakumar
  2021-05-20 20:54 ` Stephen Hemminger
  0 siblings, 1 reply; 4+ messages in thread
From: Sudharshan Krishnakumar @ 2021-05-20 20:34 UTC (permalink / raw)
  To: users

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

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-users] access to different ports on the same NIC by 2 DPDK applications
  2021-05-20 20:34 [dpdk-users] access to different ports on the same NIC by 2 DPDK applications Sudharshan Krishnakumar
@ 2021-05-20 20:54 ` Stephen Hemminger
  2021-05-20 21:19   ` Sudharshan Krishnakumar
  0 siblings, 1 reply; 4+ messages in thread
From: Stephen Hemminger @ 2021-05-20 20:54 UTC (permalink / raw)
  To: Sudharshan Krishnakumar; +Cc: users

On Thu, 20 May 2021 13:34:35 -0700
Sudharshan Krishnakumar <sudhar.ckrishna@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.

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-users] access to different ports on the same NIC by 2 DPDK applications
  2021-05-20 20:54 ` Stephen Hemminger
@ 2021-05-20 21:19   ` Sudharshan Krishnakumar
  2021-05-20 22:34     ` Stephen Hemminger
  0 siblings, 1 reply; 4+ messages in thread
From: Sudharshan Krishnakumar @ 2021-05-20 21:19 UTC (permalink / raw)
  To: stephen; +Cc: users

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 <
stephen@networkplumber.org> wrote:

> On Thu, 20 May 2021 13:34:35 -0700
> Sudharshan Krishnakumar <sudhar.ckrishna@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.
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [dpdk-users] access to different ports on the same NIC by 2 DPDK applications
  2021-05-20 21:19   ` Sudharshan Krishnakumar
@ 2021-05-20 22:34     ` Stephen Hemminger
  0 siblings, 0 replies; 4+ messages in thread
From: Stephen Hemminger @ 2021-05-20 22:34 UTC (permalink / raw)
  To: Sudharshan Krishnakumar; +Cc: users

On Thu, 20 May 2021 14:19:13 -0700
Sudharshan Krishnakumar <sudhar.ckrishna@gmail.com> wrote:

> 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.

Groups are explained here.

https://www.kernel.org/doc/Documentation/vfio.txt

The VFIO is about isolation and if two processes are trying to
use the same group they are not isolated.

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2021-05-20 22:35 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-20 20:34 [dpdk-users] access to different ports on the same NIC by 2 DPDK applications Sudharshan Krishnakumar
2021-05-20 20:54 ` Stephen Hemminger
2021-05-20 21:19   ` Sudharshan Krishnakumar
2021-05-20 22:34     ` Stephen Hemminger

DPDK usage discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror https://inbox.dpdk.org/users/0 users/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 users users/ https://inbox.dpdk.org/users \
		users@dpdk.org
	public-inbox-index users

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://inbox.dpdk.org/inbox.dpdk.users


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git