From: "Morten Brørup" <mb@smartsharesystems.com>
To: "David Marchand" <david.marchand@redhat.com>
Cc: <dev@dpdk.org>, <jerinj@marvell.com>,
<bruce.richardson@intel.com>, <mdr@ashroe.eu>,
<thomas@monjalon.net>, <andrew.rybchenko@oktetlabs.ru>,
<ktraynor@redhat.com>, <ian.stokes@intel.com>,
<i.maximets@ovn.org>, <olivier.matz@6wind.com>,
<konstantin.ananyev@huawei.com>,
"Neil Horman" <nhorman@tuxdriver.com>,
<mattias.ronnblom@ericsson.com>
Subject: RE: [dpdk-dev] [PATCH v6 07/10] eal: add lcore init callbacks
Date: Fri, 16 Dec 2022 10:55:34 +0100 [thread overview]
Message-ID: <98CBD80474FA8B44BF855DF32C47DC35D875B6@smartserver.smartshare.dk> (raw)
In-Reply-To: <CAJFAV8z3eOrhR=PfBjER3HGeHtrDvgw-0Cyg1W1idcEk7K-Vdg@mail.gmail.com>
> From: David Marchand [mailto:david.marchand@redhat.com]
> Sent: Friday, 16 December 2022 09.09
>
> Morten,
>
> On Thu, Dec 15, 2022 at 11:21 AM Morten Brørup
> <mb@smartsharesystems.com> wrote:
> > > > Shouldn't these callbacks be called from the EAL threads too,
> e.g.
> > > from eal_thread_loop()?
> > > >
> > > > I looks like they are only called from
> eal_lcore_non_eal_allocate(),
> > > which is only called from rte_thread_register().
> > >
> > > These should be called for already present lcores on callback
> > > registration.
> > > See rte_lcore_callback_register().
> >
> > That is completely useless! They need to be called from the thread
> itself, so they have the correct environment, thread local storage,
> thread id, and similar context.
>
> If it is broken, please fix it or come with a better implementation.
>
> At the time, existing modules were storing their per lcore/thread
> private info using a local array and dereferencing it using
> rte_lcore_id() or a criteria of their liking.
> The callbacks have to be carefully written to explicitly initialise
> per lcore/thread private info.
> I thought it was enough, plus nobody objected.
Apparently, you were not alone thinking it was enough. :-)
>
>
> Now, some things to consider for this requirement you want to add.
>
> If we want an application to be able to register callbacks after
> rte_eal_init(), we need to wake/interrupt all EAL threads from what
> they are doing.
> Once EAL threads enter some job the application gave, they won't
> reread anything from EAL.
>
> Or we could require that callbacks are registered before
> rte_eal_init(), the init() callback could be called as the last step
> once all DPDK modules are initialised but before the application calls
> rte_eal_remote_launch().
>
> But the problem of needing the break EAL threads from what they are
> doing is also present when we want to call the uninit() callback.
> And there, I have no good idea.
Thank you for sharing your thoughts on this, David. Very valuable insights!
I will try to determine the relevant scope and come up with a rough RFC, hoping to meet the December 25th proposal deadline for version 23.03.
-Morten
next prev parent reply other threads:[~2022-12-16 9:55 UTC|newest]
Thread overview: 133+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-06-10 14:44 [dpdk-dev] [PATCH 0/7] Register external threads as lcore David Marchand
2020-06-10 14:45 ` [dpdk-dev] [PATCH 1/7] eal: relocate per thread symbols to common David Marchand
2020-06-10 14:45 ` [dpdk-dev] [PATCH 2/7] eal: fix multiple definition of per lcore thread id David Marchand
2020-06-15 6:46 ` Kinsella, Ray
2020-06-10 14:45 ` [dpdk-dev] [PATCH 3/7] eal: introduce thread init helper David Marchand
2020-06-10 14:45 ` [dpdk-dev] [PATCH 4/7] eal: introduce thread uninit helper David Marchand
2020-06-10 14:45 ` [dpdk-dev] [PATCH 5/7] eal: register non-EAL threads as lcore David Marchand
2020-06-15 6:43 ` Kinsella, Ray
2020-06-10 14:45 ` [dpdk-dev] [PATCH 6/7] eal: dump lcores David Marchand
2020-06-15 6:40 ` Kinsella, Ray
2020-06-10 14:45 ` [dpdk-dev] [PATCH 7/7] eal: add lcore hotplug notifications David Marchand
2020-06-15 6:34 ` Kinsella, Ray
2020-06-15 7:13 ` David Marchand
2020-06-10 15:09 ` [dpdk-dev] [PATCH 0/7] Register external threads as lcore Jerin Jacob
2020-06-10 15:13 ` Bruce Richardson
2020-06-10 15:18 ` David Marchand
2020-06-10 15:33 ` Jerin Jacob
2020-06-15 7:11 ` David Marchand
2020-06-19 16:22 ` [dpdk-dev] [PATCH v2 0/9] Register non-EAL " David Marchand
2020-06-19 16:22 ` [dpdk-dev] [PATCH v2 1/9] eal: relocate per thread symbols to common David Marchand
2020-06-19 16:22 ` [dpdk-dev] [PATCH v2 2/9] eal: fix multiple definition of per lcore thread id David Marchand
2020-06-19 16:22 ` [dpdk-dev] [PATCH v2 3/9] eal: introduce thread init helper David Marchand
2020-06-19 16:22 ` [dpdk-dev] [PATCH v2 4/9] eal: introduce thread uninit helper David Marchand
2020-06-19 16:22 ` [dpdk-dev] [PATCH v2 5/9] eal: move lcore role code David Marchand
2020-06-19 16:22 ` [dpdk-dev] [PATCH v2 6/9] eal: register non-EAL threads as lcores David Marchand
2020-06-19 16:22 ` [dpdk-dev] [PATCH v2 7/9] eal: add lcore init callbacks David Marchand
2020-06-19 16:22 ` [dpdk-dev] [PATCH v2 8/9] eal: add lcore iterators David Marchand
2020-06-20 2:21 ` Stephen Hemminger
2020-06-19 16:22 ` [dpdk-dev] [PATCH v2 9/9] mempool/bucket: handle non-EAL lcores David Marchand
2020-06-22 13:25 ` [dpdk-dev] [PATCH v3 0/9] Register non-EAL threads as lcore David Marchand
2020-06-22 13:25 ` [dpdk-dev] [PATCH v3 1/9] eal: relocate per thread symbols to common David Marchand
2020-06-22 13:25 ` [dpdk-dev] [PATCH v3 2/9] eal: fix multiple definition of per lcore thread id David Marchand
2020-06-22 13:25 ` [dpdk-dev] [PATCH v3 3/9] eal: introduce thread init helper David Marchand
2020-06-22 13:25 ` [dpdk-dev] [PATCH v3 4/9] eal: introduce thread uninit helper David Marchand
2020-06-22 13:25 ` [dpdk-dev] [PATCH v3 5/9] eal: move lcore role code David Marchand
2020-06-22 13:25 ` [dpdk-dev] [PATCH v3 6/9] eal: register non-EAL threads as lcores David Marchand
2020-06-22 15:49 ` Ananyev, Konstantin
2020-06-22 16:37 ` Ananyev, Konstantin
2020-06-23 7:49 ` David Marchand
2020-06-23 9:14 ` Bruce Richardson
2020-06-23 12:49 ` David Marchand
2020-06-23 13:15 ` Ananyev, Konstantin
2020-06-24 9:23 ` David Marchand
2020-06-24 9:56 ` Bruce Richardson
2020-06-24 10:08 ` Thomas Monjalon
2020-06-24 10:45 ` Ananyev, Konstantin
2020-06-24 10:39 ` Ananyev, Konstantin
2020-06-24 10:48 ` David Marchand
2020-06-24 11:59 ` Ananyev, Konstantin
2020-06-26 14:43 ` David Marchand
2020-06-30 10:35 ` Thomas Monjalon
2020-06-30 12:07 ` Ananyev, Konstantin
2020-06-30 12:44 ` Olivier Matz
2020-06-30 14:37 ` Thomas Monjalon
2020-06-30 19:02 ` Ananyev, Konstantin
2020-06-30 14:35 ` Thomas Monjalon
2020-06-30 18:57 ` Ananyev, Konstantin
2020-07-01 7:48 ` David Marchand
2020-07-01 11:58 ` Ananyev, Konstantin
2020-07-02 13:06 ` David Marchand
2020-07-03 15:15 ` Thomas Monjalon
2020-07-03 16:40 ` Ananyev, Konstantin
2020-07-04 15:00 ` David Marchand
2020-07-04 21:24 ` Ananyev, Konstantin
2020-06-23 17:02 ` Andrew Rybchenko
2020-06-22 13:25 ` [dpdk-dev] [PATCH v3 7/9] eal: add lcore init callbacks David Marchand
2020-06-22 13:25 ` [dpdk-dev] [PATCH v3 8/9] eal: add lcore iterators David Marchand
2020-06-22 13:25 ` [dpdk-dev] [PATCH v3 9/9] mempool/bucket: handle non-EAL lcores David Marchand
2020-06-23 17:28 ` Andrew Rybchenko
2020-06-26 14:13 ` David Marchand
2020-06-26 14:34 ` Andrew Rybchenko
2020-06-26 14:47 ` [dpdk-dev] [PATCH v4 0/9] Register non-EAL threads as lcore David Marchand
2020-06-26 14:47 ` [dpdk-dev] [PATCH v4 1/9] eal: relocate per thread symbols to common David Marchand
2020-06-30 9:33 ` Olivier Matz
2020-06-26 14:47 ` [dpdk-dev] [PATCH v4 2/9] eal: fix multiple definition of per lcore thread id David Marchand
2020-06-30 9:34 ` Olivier Matz
2020-06-26 14:47 ` [dpdk-dev] [PATCH v4 3/9] eal: introduce thread init helper David Marchand
2020-06-30 9:37 ` Olivier Matz
2020-06-30 12:04 ` David Marchand
2020-06-26 14:47 ` [dpdk-dev] [PATCH v4 4/9] eal: introduce thread uninit helper David Marchand
2020-06-26 15:00 ` Jerin Jacob
2020-06-29 9:07 ` David Marchand
2020-06-29 8:59 ` [dpdk-dev] [EXT] " Sunil Kumar Kori
2020-06-29 9:25 ` David Marchand
2020-06-30 9:42 ` [dpdk-dev] " Olivier Matz
2020-07-01 8:00 ` David Marchand
2020-06-26 14:47 ` [dpdk-dev] [PATCH v4 5/9] eal: move lcore role code David Marchand
2020-06-30 9:45 ` Olivier Matz
2020-06-26 14:47 ` [dpdk-dev] [PATCH v4 6/9] eal: register non-EAL threads as lcores David Marchand
2020-06-29 14:27 ` Ananyev, Konstantin
2020-06-30 10:07 ` Olivier Matz
2020-07-01 7:13 ` David Marchand
2020-07-01 9:11 ` Olivier Matz
2020-06-26 14:47 ` [dpdk-dev] [PATCH v4 7/9] eal: add lcore init callbacks David Marchand
2020-06-29 12:46 ` Ananyev, Konstantin
2020-06-30 10:09 ` Olivier Matz
2020-06-30 10:15 ` Olivier Matz
2020-06-26 14:47 ` [dpdk-dev] [PATCH v4 8/9] eal: add lcore iterators David Marchand
2020-06-30 10:11 ` Olivier Matz
2020-06-26 14:47 ` [dpdk-dev] [PATCH v4 9/9] mempool/bucket: handle non-EAL lcores David Marchand
2020-06-26 14:52 ` Andrew Rybchenko
2020-07-06 14:15 ` [dpdk-dev] [PATCH v5 00/10] Register non-EAL threads as lcore David Marchand
2020-07-06 14:15 ` [dpdk-dev] [PATCH v5 01/10] eal: relocate per thread symbols to common David Marchand
2020-07-06 14:15 ` [dpdk-dev] [PATCH v5 02/10] eal: fix multiple definition of per lcore thread id David Marchand
2020-07-06 14:15 ` [dpdk-dev] [PATCH v5 03/10] eal: introduce thread init helper David Marchand
2020-07-06 14:16 ` [dpdk-dev] [PATCH v5 04/10] eal: introduce thread uninit helper David Marchand
2020-07-06 14:16 ` [dpdk-dev] [PATCH v5 05/10] eal: move lcore role code David Marchand
2020-07-06 14:16 ` [dpdk-dev] [PATCH v5 06/10] eal: register non-EAL threads as lcores David Marchand
2020-07-06 14:16 ` [dpdk-dev] [PATCH v5 07/10] eal: add lcore init callbacks David Marchand
2020-07-06 14:16 ` [dpdk-dev] [PATCH v5 08/10] eal: add lcore iterators David Marchand
2020-07-06 14:16 ` [dpdk-dev] [PATCH v5 09/10] mempool/bucket: handle non-EAL lcores David Marchand
2020-07-06 14:16 ` [dpdk-dev] [PATCH v5 10/10] eal: add multiprocess disable API David Marchand
2020-07-06 20:52 ` [dpdk-dev] [PATCH v6 00/10] Register non-EAL threads as lcore David Marchand
2020-07-06 20:52 ` [dpdk-dev] [PATCH v6 01/10] eal: relocate per thread symbols to common David Marchand
2020-07-06 20:52 ` [dpdk-dev] [PATCH v6 02/10] eal: fix multiple definition of per lcore thread id David Marchand
2020-07-06 20:52 ` [dpdk-dev] [PATCH v6 03/10] eal: introduce thread init helper David Marchand
2020-07-06 20:52 ` [dpdk-dev] [PATCH v6 04/10] eal: introduce thread uninit helper David Marchand
2020-07-06 20:52 ` [dpdk-dev] [PATCH v6 05/10] eal: move lcore role code David Marchand
2020-07-06 20:52 ` [dpdk-dev] [PATCH v6 06/10] eal: register non-EAL threads as lcores David Marchand
2022-11-03 9:02 ` Morten Brørup
2022-11-03 10:15 ` Thomas Monjalon
2020-07-06 20:52 ` [dpdk-dev] [PATCH v6 07/10] eal: add lcore init callbacks David Marchand
2022-12-15 9:05 ` Morten Brørup
2022-12-15 9:09 ` David Marchand
2022-12-15 10:21 ` Morten Brørup
2022-12-16 8:09 ` David Marchand
2022-12-16 9:55 ` Morten Brørup [this message]
2020-07-06 20:52 ` [dpdk-dev] [PATCH v6 08/10] eal: add lcore iterators David Marchand
2020-07-06 20:52 ` [dpdk-dev] [PATCH v6 09/10] mempool/bucket: handle non-EAL lcores David Marchand
2020-07-06 20:52 ` [dpdk-dev] [PATCH v6 10/10] eal: add multiprocess disable API David Marchand
2020-07-06 23:22 ` [dpdk-dev] [PATCH v6 00/10] Register non-EAL threads as lcore Ananyev, Konstantin
2020-07-08 13:05 ` David Marchand
2020-07-08 13:06 ` David Marchand
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=98CBD80474FA8B44BF855DF32C47DC35D875B6@smartserver.smartshare.dk \
--to=mb@smartsharesystems.com \
--cc=andrew.rybchenko@oktetlabs.ru \
--cc=bruce.richardson@intel.com \
--cc=david.marchand@redhat.com \
--cc=dev@dpdk.org \
--cc=i.maximets@ovn.org \
--cc=ian.stokes@intel.com \
--cc=jerinj@marvell.com \
--cc=konstantin.ananyev@huawei.com \
--cc=ktraynor@redhat.com \
--cc=mattias.ronnblom@ericsson.com \
--cc=mdr@ashroe.eu \
--cc=nhorman@tuxdriver.com \
--cc=olivier.matz@6wind.com \
--cc=thomas@monjalon.net \
/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).