From: Stephen Hemminger <stephen@networkplumber.org>
To: "Juan Pablo L." <jpablolorenzetti@hotmail.com>
Cc: "users@dpdk.org" <users@dpdk.org>
Subject: Re: lcores clarification
Date: Tue, 18 Oct 2022 15:41:06 -0700 [thread overview]
Message-ID: <20221018154106.101b064f@hermes.local> (raw)
In-Reply-To: <AM0PR04MB66926606ECAABB532742D72CD9289@AM0PR04MB6692.eurprd04.prod.outlook.com>
On Tue, 18 Oct 2022 22:06:04 +0000
Juan Pablo L. <jpablolorenzetti@hotmail.com> wrote:
> Hellos guys, I have a doubt that I have not been able to clarify with the docs, so maybe you can help me please ...
>
> I have a process that I want to run on a set of CPUs (performing the same task) but I want to run all of them at the same time, so my question is:
>
> if I configure something like "--lcores='2@(5-7)'" that will make my lcore with id 2 run simultaneously (at the same time in parallel) on CPUs 5,6,7 or it will run my lcore id 2 only one time at any given time on either CPU 5,6 or 7 ?
>
> would it be better if I configure different lcore id for the same and assign it to individual CPUs ? , e.g: "--lcores='2@5,3@6,4@7'" even though lcore id 2,3,4 are really the same job ?
>
> I think my question is just a matter of what is the best way to configure EAL to accomplish what I want, that is to run the same process on all CPU available concurrently, even though, I believe, option 2 seems to be the obvious way I just want to make sure I am not doing something that DPDK could do for me already ....
>
> A bonus question if its not too much, since lcores are really pthreads (in linux) and I have isolated the CPUs from the kernel scheduler, my guess is that if I have different lcores (performing the same or different tasks) running on the same CPU DPDK will be doing the scheduling right ? ..
>
> thank you very much!!!!
>
If you have multiple threads running on same lcore, you better not use locks or rings,
or mbufs, or most of the DPDK. Because these features all work like:
while (resource is busy)
spin wait
So if one thread has a resource and gets preempted. When another thread runs
and tries to acquire the same resource; the thread will spin until scheduler
decides to run the other thread.
This is not unique to DPDK, the same problem is described in the pthread_spinlock
man page.
next prev parent reply other threads:[~2022-10-18 22:41 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-18 22:06 Juan Pablo L.
2022-10-18 22:41 ` Stephen Hemminger [this message]
2022-10-18 23:04 ` Juan Pablo L.
2022-10-18 23:20 ` Stephen Hemminger
2022-10-19 14:31 ` Juan Pablo L.
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20221018154106.101b064f@hermes.local \
--to=stephen@networkplumber.org \
--cc=jpablolorenzetti@hotmail.com \
--cc=users@dpdk.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).