[dpdk-dev] Using rte_ring_mp_xyz() across EAL and non-EAL threads ?

Bruce Richardson bruce.richardson at intel.com
Thu Jul 2 11:20:41 CEST 2015


On Wed, Jul 01, 2015 at 10:50:49AM -0700, Gopakumar Choorakkot Edakkunni wrote:
> rte_ring_create() needs a socket-id though and seems to be allocating
> core-specific memory pools for the ring ? But my non-EAL app thread is
> not bound to any core, so now I am wondering if that will work.
> 
> Rgds,
> Gopa.

There are no core-specific elements for rte_rings, just for mempools. Yes, you
need a NUMA node ID when creating the ring, so that DPDK knows where to allocate
the memory for it. However, once that is done, the ring can safely be used from
both EAL and non-EAL threads. There is no requirement to have an lcore-id for
the thread.

/Bruce

> 
> On Wed, Jul 1, 2015 at 10:46 AM, Gopakumar Choorakkot Edakkunni
> <gopakumar.c.e at gmail.com> wrote:
> > Hi,
> >
> > I have a requirement where one of my non-EAL app threads needs to
> > handoff some packets to an EAL task. I was thinking of using
> > rte_ring_mp_enqueue/dequeue for that purpose. I looked at the code for
> > the rte_ring library and it doesnt look like it has any "EAL"
> > dependencies, but I wanted to double confirm that there are no issues
> > in using it that way. Dint find much yes/no info about that on the
> > mailers/docs. Pls let me know your thoughts.
> >
> > Rgds,
> > Gopa.


More information about the dev mailing list