[dpdk-dev] Can pthread_create be called directly in a dpdk application?

Rajesh R rajesh.arr at gmail.com
Sat Aug 15 08:47:05 CEST 2015


On Fri, Aug 14, 2015 at 3:48 PM, Bruce Richardson <
bruce.richardson at intel.com> wrote:

> On Fri, Aug 14, 2015 at 06:13:46AM -0400, Rajesh R wrote:
> > I am relatively new to dpdk. I could make the examples work.
> >
> > Now I am experimenting with a traffic measurement application which
> capture
> > packets using dpdk. The application requires few other threads apart from
> > the rte_threads.
> > If I put the code for thread creation (pthread_create()) before calling
> > eal_rte_init and remote_launch, the rte_init/remote launch is not
> > proceeding. But if I put the eal_rte_init()/remote_launch first it is
> > working, but coee will wait there and would not proceed to the subsequent
> > lines
> >
> > How to do it correctly?
> >
> > --
> Hi Rajesh
>
> there should be no issues with spawning extra threads using pthread_create
> in
> your application. Can you provide a few more specifics and perhaps
> snippets of
> code which exhibit the problem. For example, when spawning the threads
> before
> init and remote launch - can you clarify in what way it is "not
> proceding"? Does
> it do nothing, does it hang, does it crash etc.? Similarly, putting the
> pthread later, where exactly does it wait? Does gdb show anything of
> interest,
> or show more specifics as to what the thread is waiting on?
>
> Regards,
> /Bruce
>


Hi Bruce,

Thanks for a quick reply. Sory it was my mistake.

I realized I was doing the mistake of putting the
pthread_join()/rte_eal_wait_lcore() before the next segment of code and the
control was waiting there.
Now by moving those waiting part to the end of the complete code I  could
make it work.

It works in either ways, putting pthread_create() first or
rte_eal_remote_launch() first.

Thanks a lot.

Regards

Rajesh R


More information about the dev mailing list