From: Nicholas Pratte <npratte@iol.unh.edu>
To: luca.vizzarro@arm.com, jspewock@iol.unh.edu,
paul.szczepanek@arm.com, Honnappa.Nagarahalli@arm.com,
yoan.picchi@foss.arm.com, juraj.linkes@pantheon.tech,
probb@iol.unh.edu, bruce.richardson@intel.com
Cc: dev@dpdk.org, Nicholas Pratte <npratte@iol.unh.edu>
Subject: [PATCH v9 2/2] dts: Change hugepage 'amount' to a different term
Date: Mon, 10 Jun 2024 11:20:50 -0400 [thread overview]
Message-ID: <20240610152048.23617-6-npratte@iol.unh.edu> (raw)
In-Reply-To: <20240610152048.23617-2-npratte@iol.unh.edu>
The term 'amount' is used for uncountable nouns. Since total hugepages
is a discrete value (i.e. countable), the declaration of the 'amount'
key value pair should be changes to a different term in both the config
and the rest of the code.
Bugzilla ID: 1370
Signed-off-by: Nicholas Pratte <npratte@iol.unh.edu>
Reviewed-by: Jeremy Spewock <jspewock@iol.unh.edu>
---
dts/conf.yaml | 4 ++--
dts/framework/config/__init__.py | 4 ++--
dts/framework/config/conf_yaml_schema.json | 6 +++---
dts/framework/config/types.py | 2 +-
dts/framework/testbed_model/linux_session.py | 12 +++++-------
dts/framework/testbed_model/node.py | 2 +-
dts/framework/testbed_model/os_session.py | 8 +++-----
7 files changed, 17 insertions(+), 21 deletions(-)
diff --git a/dts/conf.yaml b/dts/conf.yaml
index 56c3ae6f4c..ce475776a7 100644
--- a/dts/conf.yaml
+++ b/dts/conf.yaml
@@ -36,7 +36,7 @@ nodes:
use_first_core: false # tells DPDK to use any physical core
memory_channels: 4 # tells DPDK to use 4 memory channels
hugepages_2mb: # optional; if removed, will use system hugepage configuration
- amount: 256
+ number_of: 256
force_first_numa: false
ports:
# sets up the physical link between "SUT 1"@000:00:08.0 and "TG 1"@0000:00:08.0
@@ -72,7 +72,7 @@ nodes:
peer_node: "SUT 1"
peer_pci: "0000:00:08.1"
hugepages_2mb: # optional; if removed, will use system hugepage configuration
- amount: 256
+ number_of: 256
force_first_numa: false
traffic_generator:
type: SCAPY
diff --git a/dts/framework/config/__init__.py b/dts/framework/config/__init__.py
index b6f820e39e..81dd321b18 100644
--- a/dts/framework/config/__init__.py
+++ b/dts/framework/config/__init__.py
@@ -127,11 +127,11 @@ class HugepageConfiguration:
r"""The hugepage configuration of :class:`~framework.testbed_model.node.Node`\s.
Attributes:
- amount: The number of hugepages.
+ number_of: The number of hugepages to allocate.
force_first_numa: If :data:`True`, the hugepages will be configured on the first NUMA node.
"""
- amount: int
+ number_of: int
force_first_numa: bool
diff --git a/dts/framework/config/conf_yaml_schema.json b/dts/framework/config/conf_yaml_schema.json
index f4d7199523..71c893662a 100644
--- a/dts/framework/config/conf_yaml_schema.json
+++ b/dts/framework/config/conf_yaml_schema.json
@@ -150,9 +150,9 @@
"type": "object",
"description": "Optional hugepage configuration. If not specified, hugepages won't be configured and DTS will use system configuration.",
"properties": {
- "amount": {
+ "number_of": {
"type": "integer",
- "description": "The amount of hugepages to configure. Hugepage size will be the system default."
+ "description": "The number of hugepages to configure. Hugepage size will be the system default."
},
"force_first_numa": {
"type": "boolean",
@@ -161,7 +161,7 @@
},
"additionalProperties": false,
"required": [
- "amount"
+ "number_of"
]
},
"mac_address": {
diff --git a/dts/framework/config/types.py b/dts/framework/config/types.py
index 016e0c3dbd..5c9d659901 100644
--- a/dts/framework/config/types.py
+++ b/dts/framework/config/types.py
@@ -37,7 +37,7 @@ class HugepageConfigurationDict(TypedDict):
"""Allowed keys and values."""
#:
- amount: int
+ number_of: int
#:
force_first_numa: bool
diff --git a/dts/framework/testbed_model/linux_session.py b/dts/framework/testbed_model/linux_session.py
index d0f7cfa77c..99abc21353 100644
--- a/dts/framework/testbed_model/linux_session.py
+++ b/dts/framework/testbed_model/linux_session.py
@@ -84,9 +84,7 @@ def get_dpdk_file_prefix(self, dpdk_prefix: str) -> str:
"""Overrides :meth:`~.os_session.OSSession.get_dpdk_file_prefix`."""
return dpdk_prefix
- def setup_hugepages(
- self, hugepage_count: int, hugepage_size: int, force_first_numa: bool
- ) -> None:
+ def setup_hugepages(self, number_of: int, hugepage_size: int, force_first_numa: bool) -> None:
"""Overrides :meth:`~.os_session.OSSession.setup_hugepages`."""
self._logger.info("Getting Hugepage information.")
hugepages_total = self._get_hugepages_total(hugepage_size)
@@ -97,10 +95,10 @@ def setup_hugepages(
raise ConfigurationError("hugepage size not supported by operating system")
self._numa_nodes = self._get_numa_nodes()
- if force_first_numa or hugepages_total < hugepage_count:
+ if force_first_numa or hugepages_total < number_of:
# when forcing numa, we need to clear existing hugepages regardless
# of size, so they can be moved to the first numa node
- self._configure_huge_pages(hugepage_count, hugepage_size, force_first_numa)
+ self._configure_huge_pages(number_of, hugepage_size, force_first_numa)
else:
self._logger.info("Hugepages already configured.")
self._mount_huge_pages()
@@ -138,7 +136,7 @@ def _supports_numa(self) -> bool:
# there's no reason to do any numa specific configuration)
return len(self._numa_nodes) > 1
- def _configure_huge_pages(self, amount: int, size: int, force_first_numa: bool) -> None:
+ def _configure_huge_pages(self, number_of: int, size: int, force_first_numa: bool) -> None:
self._logger.info("Configuring Hugepages.")
hugepage_config_path = f"/sys/kernel/mm/hugepages/hugepages-{size}kB/nr_hugepages"
if force_first_numa and self._supports_numa():
@@ -149,7 +147,7 @@ def _configure_huge_pages(self, amount: int, size: int, force_first_numa: bool)
f"/hugepages-{size}kB/nr_hugepages"
)
- self.send_command(f"echo {amount} | tee {hugepage_config_path}", privileged=True)
+ self.send_command(f"echo {number_of} | tee {hugepage_config_path}", privileged=True)
def update_ports(self, ports: list[Port]) -> None:
"""Overrides :meth:`~.os_session.OSSession.update_ports`."""
diff --git a/dts/framework/testbed_model/node.py b/dts/framework/testbed_model/node.py
index 3f2a727c3b..6818a057d0 100644
--- a/dts/framework/testbed_model/node.py
+++ b/dts/framework/testbed_model/node.py
@@ -266,7 +266,7 @@ def _setup_hugepages(self) -> None:
"""
if self.config.hugepages:
self.main_session.setup_hugepages(
- self.config.hugepages.amount,
+ self.config.hugepages.number_of,
self.main_session.hugepage_size,
self.config.hugepages.force_first_numa,
)
diff --git a/dts/framework/testbed_model/os_session.py b/dts/framework/testbed_model/os_session.py
index 19dcf5f963..bba4aca9ce 100644
--- a/dts/framework/testbed_model/os_session.py
+++ b/dts/framework/testbed_model/os_session.py
@@ -347,18 +347,16 @@ def get_dpdk_file_prefix(self, dpdk_prefix: str) -> str:
"""
@abstractmethod
- def setup_hugepages(
- self, hugepage_count: int, hugepage_size: int, force_first_numa: bool
- ) -> None:
+ def setup_hugepages(self, number_of: int, hugepage_size: int, force_first_numa: bool) -> None:
"""Configure hugepages on the node.
Get the node's Hugepage Size, configure the specified count of hugepages
if needed and mount the hugepages if needed.
Args:
- hugepage_count: Configure this many hugepages.
+ number_of: Configure this many hugepages.
hugepage_size: Configure hugepages of this size.
- force_first_numa: If :data:`True`, configure hugepages just on the first numa node.
+ force_first_numa: If :data:`True`, configure just on the first numa node.
"""
@abstractmethod
--
2.44.0
next prev parent reply other threads:[~2024-06-10 15:22 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-06-10 15:20 [PATCH v9 0/2] Methodology change for hugepage configuration Nicholas Pratte
2024-06-10 15:20 ` [PATCH v9 1/2] dts: Change hugepage runtime config to 2MB Exclusively Nicholas Pratte
2024-06-10 15:26 ` Juraj Linkeš
2024-06-17 15:08 ` Luca Vizzarro
2024-06-20 1:55 ` Thomas Monjalon
2024-06-10 15:20 ` Nicholas Pratte [this message]
2024-06-10 15:26 ` [PATCH v9 2/2] dts: Change hugepage 'amount' to a different term Juraj Linkeš
2024-06-17 15:08 ` Luca Vizzarro
2024-06-20 2:06 ` [PATCH v9 0/2] Methodology change for hugepage configuration Thomas Monjalon
-- strict thread matches above, loose matches on Subject: below --
2024-04-30 18:45 [PATCH v5 " Nicholas Pratte
2024-06-07 14:31 ` [PATCH v9 2/2] dts: Change hugepage 'amount' to a different term Nicholas Pratte
2024-06-07 14:59 ` [PATCH v9 0/2] Methodology change for hugepage configuration Nicholas Pratte
2024-06-07 14:59 ` [PATCH v9 2/2] dts: Change hugepage 'amount' to a different term Nicholas Pratte
2024-06-10 7:38 ` Juraj Linkeš
2024-06-17 14:59 ` Luca Vizzarro
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=20240610152048.23617-6-npratte@iol.unh.edu \
--to=npratte@iol.unh.edu \
--cc=Honnappa.Nagarahalli@arm.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=jspewock@iol.unh.edu \
--cc=juraj.linkes@pantheon.tech \
--cc=luca.vizzarro@arm.com \
--cc=paul.szczepanek@arm.com \
--cc=probb@iol.unh.edu \
--cc=yoan.picchi@foss.arm.com \
/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).