From: Nicholas Pratte <npratte@iol.unh.edu>
To: Luca Vizzarro <luca.vizzarro@arm.com>
Cc: dev@dpdk.org, Paul Szczepanek <paul.szczepanek@arm.com>,
Dean Marx <dmarx@iol.unh.edu>, Patrick Robb <probb@iol.unh.edu>
Subject: Re: [PATCH v4 3/7] dts: infer use first core without config
Date: Fri, 24 Jan 2025 13:14:18 -0500 [thread overview]
Message-ID: <CAKXZ7ejJarAi1uJNU5_5sLbNH_m_+d=xidNpuB=b_gybN0s2ug@mail.gmail.com> (raw)
In-Reply-To: <20250124113909.137128-4-luca.vizzarro@arm.com>
I wonder if you could remove this particular patch entirely, since
this particular 'use_first_core' issue is addressed differently in the
proceeding patch. I left this patch in the original series so that we
might discuss what the best mode of action would be for tackling this
problem. In any case, it doesn't hurt to keep this patch in the
series.
Reviewed-by: Nicholas Pratte <npratte@iol.unh.edu>
On Fri, Jan 24, 2025 at 6:39 AM Luca Vizzarro <luca.vizzarro@arm.com> wrote:
>
> From: Nicholas Pratte <npratte@iol.unh.edu>
>
> To further the simplification of the user configuration, use_first_core
> can be inferred from the lcores. If the user explicitly includes the
> core 0 in the lcores range, it will only then be used.
>
> Bugzilla ID: 1360
>
> Signed-off-by: Nicholas Pratte <npratte@iol.unh.edu>
> Signed-off-by: Luca Vizzarro <luca.vizzarro@arm.com>
> Reviewed-by: Paul Szczepanek <paul.szczepanek@arm.com>
> Reviewed-by: Dean Marx <dmarx@iol.unh.edu>
> ---
> dts/conf.yaml | 3 +--
> dts/framework/config/__init__.py | 19 ++++++++++++-------
> dts/framework/testbed_model/node.py | 9 +++++++++
> 3 files changed, 22 insertions(+), 9 deletions(-)
>
> diff --git a/dts/conf.yaml b/dts/conf.yaml
> index 4b6965b3d7..c93eedbc94 100644
> --- a/dts/conf.yaml
> +++ b/dts/conf.yaml
> @@ -40,8 +40,7 @@ nodes:
> hostname: sut1.change.me.localhost
> user: dtsuser
> os: linux
> - lcores: "" # use all the available logical cores
> - use_first_core: false # tells DPDK to use any physical core
> + lcores: "" # use all available logical cores (Skips first core)
> memory_channels: 4 # tells DPDK to use 4 memory channels
> hugepages_2mb: # optional; if removed, will use system hugepage configuration
> number_of: 256
> diff --git a/dts/framework/config/__init__.py b/dts/framework/config/__init__.py
> index 3fa8f4fa8f..5dfa0cf0d4 100644
> --- a/dts/framework/config/__init__.py
> +++ b/dts/framework/config/__init__.py
> @@ -138,12 +138,12 @@ class ScapyTrafficGeneratorConfig(TrafficGeneratorConfig):
> #: A union type discriminating traffic generators by the `type` field.
> TrafficGeneratorConfigTypes = Annotated[ScapyTrafficGeneratorConfig, Field(discriminator="type")]
>
> -#: Comma-separated list of logical cores to use. An empty string means use all lcores.
> +#: Comma-separated list of logical cores to use. An empty string or ```any``` means use all lcores.
> LogicalCores = Annotated[
> str,
> Field(
> - examples=["1,2,3,4,5,18-22", "10-15"],
> - pattern=r"^(([0-9]+|([0-9]+-[0-9]+))(,([0-9]+|([0-9]+-[0-9]+)))*)?$",
> + examples=["1,2,3,4,5,18-22", "10-15", "any"],
> + pattern=r"^(([0-9]+|([0-9]+-[0-9]+))(,([0-9]+|([0-9]+-[0-9]+)))*)?$|any",
> ),
> ]
>
> @@ -161,15 +161,20 @@ class NodeConfiguration(FrozenModel):
> password: str | None = None
> #: The operating system of the :class:`~framework.testbed_model.node.Node`.
> os: OS
> - #: A comma delimited list of logical cores to use when running DPDK.
> - lcores: LogicalCores = "1"
> - #: If :data:`True`, the first logical core won't be used.
> - use_first_core: bool = False
> + #: A comma delimited list of logical cores to use when running DPDK. ```any```, an empty
> + #: string or omitting this field means use any core except for the first one. The first core
> + #: will only be used if explicitly set.
> + lcores: LogicalCores = ""
> #: An optional hugepage configuration.
> hugepages: HugepageConfiguration | None = Field(None, alias="hugepages_2mb")
> #: The ports that can be used in testing.
> ports: list[PortConfig] = Field(min_length=1)
>
> + @property
> + def use_first_core(self) -> bool:
> + """Returns :data:`True` if `lcores` explicitly selects the first core."""
> + return "0" in self.lcores
> +
>
> class SutNodeConfiguration(NodeConfiguration):
> """:class:`~framework.testbed_model.sut_node.SutNode` specific configuration."""
> diff --git a/dts/framework/testbed_model/node.py b/dts/framework/testbed_model/node.py
> index 08328ee482..b08b1cf14d 100644
> --- a/dts/framework/testbed_model/node.py
> +++ b/dts/framework/testbed_model/node.py
> @@ -91,6 +91,15 @@ def __init__(self, node_config: NodeConfiguration):
> self.lcores, LogicalCoreList(self.config.lcores)
> ).filter()
>
> + if LogicalCore(lcore=0, core=0, socket=0, node=0) in self.lcores:
> + self._logger.info(
> + """
> + WARNING: First core being used;
> + using the first core is considered risky and should only
> + be done by advanced users.
> + """
> + )
> +
> self._other_sessions = []
> self._init_ports()
>
> --
> 2.43.0
>
next prev parent reply other threads:[~2025-01-24 18:14 UTC|newest]
Thread overview: 81+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-13 20:18 [PATCH 0/4] dts: Remove Excess Attributes From User Config Nicholas Pratte
2024-06-13 20:18 ` [PATCH 1/4] dts: Remove build target config and list of devices Nicholas Pratte
2024-06-14 18:07 ` Jeremy Spewock
2024-06-13 20:18 ` [PATCH 2/4] dts: Use First Core Logic Change Nicholas Pratte
2024-06-14 18:09 ` Jeremy Spewock
2024-06-20 13:41 ` Nicholas Pratte
2024-06-13 20:18 ` [PATCH 3/4] dts: Self-Discovering Architecture Change Nicholas Pratte
2024-06-14 18:09 ` Jeremy Spewock
2024-06-13 20:18 ` [PATCH 4/4] dts: Rework DPDK Attributes In SUT Node Config Nicholas Pratte
2024-06-14 18:11 ` Jeremy Spewock
2024-07-05 17:13 ` [PATCH v2 0/6] dts: Remove Excess Attributes From User Config Nicholas Pratte
2024-07-05 18:29 ` [PATCH v2 1/6] dts: Remove build target config and list of devices Nicholas Pratte
2024-11-06 19:29 ` Dean Marx
2024-07-05 18:31 ` [PATCH v2 2/6] dts: Use First Core Logic Change Nicholas Pratte
2024-11-06 19:48 ` Dean Marx
2024-07-05 18:32 ` [PATCH v2 3/6] dts: Self-Discovering Architecture Change Nicholas Pratte
2024-11-06 20:13 ` Dean Marx
2024-07-05 18:32 ` [PATCH v2 4/6] dts: Rework DPDK Attributes In SUT Node Config Nicholas Pratte
2024-11-06 20:32 ` Dean Marx
2024-07-05 18:33 ` [PATCH v2 5/6] dts: add conditional behavior for test suite Nicholas Pratte
2024-07-05 18:33 ` [PATCH v2 6/6] doc: dpdk documentation changes for new dts config Nicholas Pratte
2025-01-15 14:18 ` [PATCH v3 0/7] dts: refactor configuration Luca Vizzarro
2025-01-15 14:18 ` [PATCH v3 1/7] dts: enable arch self-discovery Luca Vizzarro
2025-01-16 20:52 ` Dean Marx
2025-01-22 17:38 ` Nicholas Pratte
2025-01-15 14:18 ` [PATCH v3 2/7] dts: simplify build options config Luca Vizzarro
2025-01-16 20:53 ` Dean Marx
2025-01-22 17:45 ` Nicholas Pratte
2025-01-15 14:18 ` [PATCH v3 3/7] dts: infer use first core without config Luca Vizzarro
2025-01-16 20:53 ` Dean Marx
2025-01-22 18:02 ` Nicholas Pratte
2025-01-15 14:18 ` [PATCH v3 4/7] dts: rework DPDK attributes in SUT node config Luca Vizzarro
2025-01-16 20:53 ` Dean Marx
2025-01-15 14:18 ` [PATCH v3 5/7] dts: handle CLI overrides in the configuration Luca Vizzarro
2025-01-16 20:53 ` Dean Marx
2025-01-15 14:18 ` [PATCH v3 6/7] dts: split configuration file Luca Vizzarro
2025-01-16 20:54 ` Dean Marx
2025-01-15 14:18 ` [PATCH v3 7/7] dts: run all test suites by default Luca Vizzarro
2025-01-16 21:01 ` Dean Marx
2025-01-20 10:00 ` Luca Vizzarro
2024-07-05 17:13 ` [PATCH v2 1/6] dts: Remove build target config and list of devices Nicholas Pratte
2024-07-16 15:07 ` Jeremy Spewock
2024-09-12 20:33 ` Nicholas Pratte
2024-09-10 11:30 ` Juraj Linkeš
2024-09-12 20:31 ` Nicholas Pratte
2024-11-18 16:51 ` Luca Vizzarro
2024-07-05 17:13 ` [PATCH v2 2/6] dts: Use First Core Logic Change Nicholas Pratte
2024-09-10 13:34 ` Juraj Linkeš
2024-11-18 16:54 ` Luca Vizzarro
2024-07-05 17:13 ` [PATCH v2 3/6] dts: Self-Discovering Architecture Change Nicholas Pratte
2024-09-10 13:41 ` Juraj Linkeš
2024-11-18 17:14 ` Luca Vizzarro
2024-07-05 17:13 ` [PATCH v2 4/6] dts: Rework DPDK Attributes In SUT Node Config Nicholas Pratte
2024-09-10 14:04 ` Juraj Linkeš
2024-11-18 17:16 ` Luca Vizzarro
2024-07-05 17:13 ` [PATCH v2 5/6] dts: add conditional behavior for test suite Nicholas Pratte
2024-07-16 14:59 ` Jeremy Spewock
2024-09-10 14:12 ` Juraj Linkeš
2024-11-06 20:52 ` Dean Marx
2024-11-18 17:21 ` Luca Vizzarro
2024-07-05 17:13 ` [PATCH v2 6/6] doc: dpdk documentation changes for new dts config Nicholas Pratte
2024-09-10 14:17 ` Juraj Linkeš
2024-11-06 20:57 ` Dean Marx
2024-11-18 17:21 ` Luca Vizzarro
2024-07-05 18:24 ` [PATCH v2 1/6] dts: Remove build target config and list of devices Nicholas Pratte
2025-01-24 11:39 ` [PATCH v4 0/7] dts: refactor configuration Luca Vizzarro
2025-01-24 11:39 ` [PATCH v4 1/7] dts: enable arch self-discovery Luca Vizzarro
2025-01-24 18:09 ` Nicholas Pratte
2025-01-24 11:39 ` [PATCH v4 2/7] dts: simplify build options config Luca Vizzarro
2025-01-24 18:10 ` Nicholas Pratte
2025-01-24 11:39 ` [PATCH v4 3/7] dts: infer use first core without config Luca Vizzarro
2025-01-24 18:14 ` Nicholas Pratte [this message]
2025-01-24 11:39 ` [PATCH v4 4/7] dts: rework DPDK attributes in SUT node config Luca Vizzarro
2025-01-24 18:14 ` Nicholas Pratte
2025-01-24 11:39 ` [PATCH v4 5/7] dts: handle CLI overrides in the configuration Luca Vizzarro
2025-01-24 18:15 ` Nicholas Pratte
2025-01-24 11:39 ` [PATCH v4 6/7] dts: split configuration file Luca Vizzarro
2025-01-24 18:18 ` Nicholas Pratte
2025-01-24 11:39 ` [PATCH v4 7/7] dts: run all test suites by default Luca Vizzarro
2025-01-24 18:20 ` Nicholas Pratte
2025-01-24 18:54 ` [PATCH v4 0/7] dts: refactor configuration Nicholas Pratte
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='CAKXZ7ejJarAi1uJNU5_5sLbNH_m_+d=xidNpuB=b_gybN0s2ug@mail.gmail.com' \
--to=npratte@iol.unh.edu \
--cc=dev@dpdk.org \
--cc=dmarx@iol.unh.edu \
--cc=luca.vizzarro@arm.com \
--cc=paul.szczepanek@arm.com \
--cc=probb@iol.unh.edu \
/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).