#
f30a1bbd |
| 28-Oct-2024 |
Sivaprasad Tummala <sivaprasad.tummala@amd.com> |
power: rename files for CPU frequency management
This patch renames the existing core power library source files from rte_power.* to rte_power_cpufreq.* for better clarity
Signed-off-by: Sivaprasad
power: rename files for CPU frequency management
This patch renames the existing core power library source files from rte_power.* to rte_power_cpufreq.* for better clarity
Signed-off-by: Sivaprasad Tummala <sivaprasad.tummala@amd.com>
show more ...
|
#
7e06c0de |
| 15-Apr-2024 |
Tyler Retzlaff <roretzla@linux.microsoft.com> |
examples: move alignment attribute on types for MSVC
Move location of __rte_aligned(a) to new conventional location. The new placement between {struct,union} and the tag allows the desired alignment
examples: move alignment attribute on types for MSVC
Move location of __rte_aligned(a) to new conventional location. The new placement between {struct,union} and the tag allows the desired alignment to be imparted on the type regardless of the toolchain being used for both C and C++. Additionally, it avoids confusion by Doxygen when generating documentation.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Reviewed-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Akhil Goyal <gakhil@marvell.com>
show more ...
|
#
b49c677a |
| 15-Jan-2021 |
David Hunt <david.hunt@intel.com> |
examples/vm_power: respect core mask
When vm_power_manager is started, it takes over power management on all cores. This should be limited to cores defined in the core mask.
When initialising, if a
examples/vm_power: respect core mask
When vm_power_manager is started, it takes over power management on all cores. This should be limited to cores defined in the core mask.
When initialising, if a core is not on the coremask, skip it. Applies to both initialisation and exit.
Signed-off-by: David Hunt <david.hunt@intel.com>
show more ...
|
#
95f648ff |
| 14-Jul-2020 |
Rory Sexton <rory.sexton@intel.com> |
examples/vm_power: make branch ratio threshold per core
This modification allows for the branch ratio threshold to be set per core rather than system wide. This gives greater flexibility to the bran
examples/vm_power: make branch ratio threshold per core
This modification allows for the branch ratio threshold to be set per core rather than system wide. This gives greater flexibility to the branch ratio monitoring allowing it to manage different workloads with different characteristics on the same system.
Signed-off-by: Rory Sexton <rory.sexton@intel.com> Reviewed-by: David Hunt <david.hunt@intel.com> Acked-by: Reshma Pattan <reshma.pattan@intel.com>
show more ...
|
#
666272d2 |
| 20-May-2020 |
Thomas Monjalon <thomas@monjalon.net> |
examples/vm_power: drop Unix path limit redefinition
The Unix socket path may be as long as UNIX_PATH_MAX. This constant is supposed to be defined in sys/un.h. On Linux, it appears to be in linux/un
examples/vm_power: drop Unix path limit redefinition
The Unix socket path may be as long as UNIX_PATH_MAX. This constant is supposed to be defined in sys/un.h. On Linux, it appears to be in linux/un.h.
This constant was re-defined locally, based on a variable declaration. It is breaking compilation with -fno-common (default in GCC 10) We could avoid the variable declaration by using NULL struct, but it looks simpler not redefining this system constant.
As the power library and its examples are restricted to Linux only, the Linux header file is directly included.
Fixes: 0d74597c1b4f ("examples/vm_power: fix max length of unix socket path") Cc: stable@dpdk.org
Signed-off-by: Thomas Monjalon <thomas@monjalon.net> Acked-by: David Marchand <david.marchand@redhat.com> Acked-by: Kevin Traynor <ktraynor@redhat.com>
show more ...
|
#
31c9a664 |
| 24-Jul-2019 |
David Hunt <david.hunt@intel.com> |
examples/vm_power: fix OOB frequency oscillations
The branch ratio algorithm in the vm_power_manager sample application can be very sensitive at patricular loads in a workload, causing oscillations
examples/vm_power: fix OOB frequency oscillations
The branch ratio algorithm in the vm_power_manager sample application can be very sensitive at patricular loads in a workload, causing oscillations between min and max frequency. For example, if a workload is at 50%, scaling up may change the ratio enough that it immediately thinks it needs to scale down again.
This patch introduces a sliding window recording the scale up/down direction for the last 32 samples, and scales up if any samples indicate we should scale up, otherwise scale down. Each core has it's own window.
Fixes: 4b1a631b8a8a ("examples/vm_power: add oob monitoring functions") Cc: stable@dpdk.org
Signed-off-by: David Hunt <david.hunt@intel.com> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
show more ...
|
#
3f1fc5f2 |
| 26-Apr-2019 |
David Hunt <david.hunt@intel.com> |
examples/power: fix buffer overrun
The freqs array in freq_info struct has RTE_MAX_LCORE_FREQS elements, yet the code can attempt to look at the index at RTE_MAX_LCORE, which may be greater than RT
examples/power: fix buffer overrun
The freqs array in freq_info struct has RTE_MAX_LCORE_FREQS elements, yet the code can attempt to look at the index at RTE_MAX_LCORE, which may be greater than RTE_MAX_LCORE_FREQS. Fix to limit index to RTE_MAX_LCORE_FREQS.
Coverity issue: 337660 Fixes: d26c18c93260 ("examples/vm_power: cpu frequency in host") Cc: stable@dpdk.org
Signed-off-by: David Hunt <david.hunt@intel.com> Acked-by: Reshma Pattan <reshma.pattan@intel.com>
show more ...
|
#
751227a0 |
| 09-Apr-2019 |
David Hunt <david.hunt@intel.com> |
power: fix buffer overruns
A previous change removed the limit of 64 cores by moving away from 64-bit masks to char arrays. However this left a buffer overrun issue, where the max channels was defin
power: fix buffer overruns
A previous change removed the limit of 64 cores by moving away from 64-bit masks to char arrays. However this left a buffer overrun issue, where the max channels was defined as 64, and max cores was defined as 256. These should all be consistently set to RTE_MAX_LCORE.
The #defines being removed are CHANNEL_CMDS_MAX_CPUS, CHANNEL_CMDS_MAX_CHANNELS, POWER_MGR_MAX_CPUS, and CHANNEL_CMDS_MAX_VM_CHANNELS, and are being replaced with RTE_MAX_LCORE for consistency and simplicity.
Coverity issue: 337672, 337673, 337678 Fixes: fd73630e95c1 ("examples/power: change 64-bit masks to arrays") Cc: stable@dpdk.org
Signed-off-by: David Hunt <david.hunt@intel.com> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
show more ...
|
#
6ff7b996 |
| 08-Jan-2019 |
David Hunt <david.hunt@intel.com> |
examples/power: fix for p-state
The vm_power_manager starts by setting the environment to acpi using rte_power_set_env(PM_ENV_ACPI_CPUFREQ). This causes a problem starting vm_power_manager when the
examples/power: fix for p-state
The vm_power_manager starts by setting the environment to acpi using rte_power_set_env(PM_ENV_ACPI_CPUFREQ). This causes a problem starting vm_power_manager when the system is using the intel_pstate driver. The env should be set to none, or not called at all, because the library now auto-detects the environment to be either acpi or intel_pstate. This patch sets the environment to none so that the library can successfully auto-detect.
Fixes: e6c6dc0f96c8 ("power: add p-state driver compatibility")
Signed-off-by: David Hunt <david.hunt@intel.com>
show more ...
|
#
b6b22982 |
| 14-Dec-2018 |
David Hunt <david.hunt@intel.com> |
examples/power: remove mask functions
Since we're moving to allowing greater than 64 cores, the mask functions that use uint64_t to perform functions on a masked set of cores are no longer needed, s
examples/power: remove mask functions
Since we're moving to allowing greater than 64 cores, the mask functions that use uint64_t to perform functions on a masked set of cores are no longer needed, so removing them.
Signed-off-by: David Hunt <david.hunt@intel.com> Reviewed-by: Anatoly Burakov <anatoly.burakov@intel.com>
show more ...
|
#
c12ade20 |
| 31-Oct-2018 |
David Hunt <david.hunt@intel.com> |
examples/vm_power: respect maximum CPUs
The vm_power_manager app was not respecting the POWER_MGR_MAX_CPUS during initialisation, so if there were more CPUs than this value (64), it would lead to bu
examples/vm_power: respect maximum CPUs
The vm_power_manager app was not respecting the POWER_MGR_MAX_CPUS during initialisation, so if there were more CPUs than this value (64), it would lead to buffer overruns of there were more then 64 cores in the system.
Added in a check during init and un-init to only initialise up to lcore_id 63.
This raises the question as to why not simply increase the value of POWER_MGR_MAX_CPUS. Well, it's not that simple, as many of the APIs take a uint64_t as a parameter for the core mask, and this will not work for cores greater than 63. So some work needs to be done in the future to remove this limitation. For now we'll fix the memory corruption.
Also, the patch that this fixes says "allow greater than 64 cores" but that's not across the entire application, it's only for the out-of-band monitoring. I'll add a notice for an API change in the next release to clean this up, i.e. depricate any API calls that use masks.
Fixes: 6453b9284b64 ("examples/vm_power: allow greater than 64 cores") Cc: stable@dpdk.org
Signed-off-by: David Hunt <david.hunt@intel.com>
show more ...
|
#
711f43ba |
| 13-Jul-2018 |
David Hunt <david.hunt@intel.com> |
examples/vm_power: make branch ratio configurable
For different workloads and poll loops, the theshold may be different for when you want to scale up and down.
This patch allows changing of the def
examples/vm_power: make branch ratio configurable
For different workloads and poll loops, the theshold may be different for when you want to scale up and down.
This patch allows changing of the default branch ratio by using the -b command line argument (or --branch-ratio=)
Signed-off-by: David Hunt <david.hunt@intel.com> Acked-by: Radu Nicolau <radu.nicolau@intel.com>
show more ...
|
#
6453b928 |
| 13-Jul-2018 |
David Hunt <david.hunt@intel.com> |
examples/vm_power: allow greater than 64 cores
To facilitate more info per core, change the global_cpu_mask from a uint64_t to an array. This also removes the limit on 64 cores, allocing the aray at
examples/vm_power: allow greater than 64 cores
To facilitate more info per core, change the global_cpu_mask from a uint64_t to an array. This also removes the limit on 64 cores, allocing the aray at run-time based on the number of cores found in the system.
Signed-off-by: David Hunt <david.hunt@intel.com> Acked-by: Radu Nicolau <radu.nicolau@intel.com>
show more ...
|
#
99a968fa |
| 13-Jul-2018 |
David Hunt <david.hunt@intel.com> |
examples/vm_power: add core list parameter
Add in the '-l' command line parameter (also --core-list) So the user can now pass --corelist=4,6,8-10 and it will expand out to 4,6,8,9,10 using the parse
examples/vm_power: add core list parameter
Add in the '-l' command line parameter (also --core-list) So the user can now pass --corelist=4,6,8-10 and it will expand out to 4,6,8,9,10 using the parse function provided in parse.c (parse_set).
This list of cores is then used to enable out-of-band monitoring to scale up and down these cores based on the ratio of branch hits versus branch misses. The ratio will be low when a poll loop is spinning with no packets being received, so the frequency will be scaled down.
Also , as part of this change, we introduce a core_info struct which keeps information on each core in the system, and whether we're doing out of band monitoring on them.
Signed-off-by: David Hunt <david.hunt@intel.com> Acked-by: Radu Nicolau <radu.nicolau@intel.com>
show more ...
|
#
3998e2a0 |
| 19-Dec-2017 |
Bruce Richardson <bruce.richardson@intel.com> |
examples: use SPDX tag for Intel copyright files
Replace the BSD license header with the SPDX tag for files with only an Intel copyright on them.
Signed-off-by: Bruce Richardson <bruce.richardson@i
examples: use SPDX tag for Intel copyright files
Replace the BSD license header with the SPDX tag for files with only an Intel copyright on them.
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
#
7f472f74 |
| 11-Oct-2017 |
David Hunt <david.hunt@intel.com> |
examples/vm_power_mgr: add scale to medium freq fn
Signed-off-by: Nemanja Marjanovic <nemanja.marjanovic@intel.com> Signed-off-by: Rory Sexton <rory.sexton@intel.com> Signed-off-by: David Hunt <davi
examples/vm_power_mgr: add scale to medium freq fn
Signed-off-by: Nemanja Marjanovic <nemanja.marjanovic@intel.com> Signed-off-by: Rory Sexton <rory.sexton@intel.com> Signed-off-by: David Hunt <david.hunt@intel.com> Reviewed-by: Santosh Shukla <santosh.shukla@caviumnetworks.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com>
show more ...
|
#
567997b9 |
| 13-Sep-2017 |
David Hunt <david.hunt@intel.com> |
examples/vm_power_manager: add per-core turbo
Add extra commands to command line to allow enable/disable of per-core turbo.
When a core has turbo enabled, calling for max frequency will allow it to
examples/vm_power_manager: add per-core turbo
Add extra commands to command line to allow enable/disable of per-core turbo.
When a core has turbo enabled, calling for max frequency will allow it to go to a turbo frequency (P0n).
When a core has turbo disabled, calling for max frequency will allow it to go to the maximum non-turbo frequency (P1), but not beyond.
Signed-off-by: David Hunt <david.hunt@intel.com>
show more ...
|
#
50810f09 |
| 08-Feb-2016 |
Thomas Monjalon <thomas.monjalon@6wind.com> |
config: remove useless explicit includes of generated header
The file rte_config.h is automatically generated and included. No need to #include it.
The example performance-thread needs a makefile f
config: remove useless explicit includes of generated header
The file rte_config.h is automatically generated and included. No need to #include it.
The example performance-thread needs a makefile fix to avoid overwriting the default cflags.
Signed-off-by: Thomas Monjalon <thomas.monjalon@6wind.com>
show more ...
|
#
d26c18c9 |
| 25-Nov-2014 |
Alan Carew <alan.carew@intel.com> |
examples/vm_power: cpu frequency in host
A wrapper around librte_power(using ACPI cpufreq), providing locking around the non-threadsafe library, allowing for frequency changes based on core masks an
examples/vm_power: cpu frequency in host
A wrapper around librte_power(using ACPI cpufreq), providing locking around the non-threadsafe library, allowing for frequency changes based on core masks and core numbers from both the CLI thread and epoll monitor thread.
Signed-off-by: Alan Carew <alan.carew@intel.com> Signed-off-by: Pablo de Lara <pablo.de.lara.guarch@intel.com>
show more ...
|