|
Revision tags: v24.11, v24.11-rc4, v24.11-rc3, v24.11-rc2 |
|
| #
13064331 |
| 25-Oct-2024 |
Mattias Rönnblom <mattias.ronnblom@ericsson.com> |
power: keep per-lcore state in lcore variable
Replace static array of cache-aligned structs with an lcore variable, to slightly benefit code simplicity and performance.
Signed-off-by: Mattias Rönnb
power: keep per-lcore state in lcore variable
Replace static array of cache-aligned structs with an lcore variable, to slightly benefit code simplicity and performance.
Signed-off-by: Mattias Rönnblom <mattias.ronnblom@ericsson.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@huawei.com> Acked-by: Chengwen Feng <fengchengwen@huawei.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org>
show more ...
|
|
Revision tags: v24.11-rc1 |
|
| #
74efd38b |
| 12-Aug-2024 |
Stephen Hemminger <stephen@networkplumber.org> |
power: enable cast qualifier warnings
Only in one place does the power library need un-constify a pointer and this can be done by casting to uintptr_t first. Better, to have the warning enabled acro
power: enable cast qualifier warnings
Only in one place does the power library need un-constify a pointer and this can be done by casting to uintptr_t first. Better, to have the warning enabled across the rest of the code.
Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Huisong Li <lihuisong@huawei.com> Acked-by: Tyler Retzlaff <roretzla@linux.microsoft.com>
show more ...
|
| #
35220c7c |
| 10-Oct-2024 |
Wathsala Vithanage <wathsala.vithanage@arm.com> |
power: enable CPPC
Power library already supports Linux CPPC driver, but initialization was failing. Enable its use in the drivers check, and fix the name of the CPPC driver name.
Fixes: ef1cc88f18
power: enable CPPC
Power library already supports Linux CPPC driver, but initialization was failing. Enable its use in the drivers check, and fix the name of the CPPC driver name.
Fixes: ef1cc88f1837 ("power: support cppc_cpufreq driver") Cc: stable@dpdk.org
Signed-off-by: Wathsala Vithanage <wathsala.vithanage@arm.com> Reviewed-by: Dhruv Tripathi <dhruv.tripathi@arm.com>
show more ...
|
|
Revision tags: v24.07, v24.07-rc4, v24.07-rc3, v24.07-rc2, v24.07-rc1, v24.03, v24.03-rc4, v24.03-rc3, v24.03-rc2 |
|
| #
c6552d9a |
| 04-Mar-2024 |
Tyler Retzlaff <roretzla@linux.microsoft.com> |
lib: move alignment attribute on types for MSVC
The current location used for __rte_aligned(a) for alignment of types is not compatible with MSVC. There is only a single location accepted by both to
lib: move alignment attribute on types for MSVC
The current location used for __rte_aligned(a) for alignment of types is not compatible with MSVC. There is only a single location accepted by both toolchains.
The standard offers no alignment facility that compatibly interoperates with C and C++ but it may be achieved by relocating the placement of __rte_aligned(a) to the aforementioned location accepted by all currently supported toolchains.
To allow alignment for both compilers, do the following:
* Expand __rte_aligned(a) to __declspec(align(a)) when building with MSVC.
* Move __rte_aligned from the end of {struct,union} definitions to be between {struct,union} and tag.
The placement between {struct,union} and the tag allows the desired alignment to be imparted on the type regardless of the toolchain being used for all of GCC, LLVM, MSVC compilers building both C and C++.
Note: this move has an additional benefit as Doxygen is not confused anymore like for the rte_event_vector struct definition.
Signed-off-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Acked-by: Morten Brørup <mb@smartsharesystems.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@huawei.com> Acked-by: Chengwen Feng <fengchengwen@huawei.com> Reviewed-by: Maxime Coquelin <maxime.coquelin@redhat.com> Signed-off-by: David Marchand <david.marchand@redhat.com>
show more ...
|
|
Revision tags: v24.03-rc1 |
|
| #
ae67895b |
| 08-Dec-2023 |
David Marchand <david.marchand@redhat.com> |
lib: add more logging helpers
Add helpers for logging messages in libraries instead of calling RTE_LOG() directly. Those helpers take care of adding a \n: this will make the transition to RTE_LOG_LI
lib: add more logging helpers
Add helpers for logging messages in libraries instead of calling RTE_LOG() directly. Those helpers take care of adding a \n: this will make the transition to RTE_LOG_LINE trivial.
Note: - for acl and sched libraries that still has some debug multilines messages, a direct call to RTE_LOG is used: this will make it easier to notice such special cases,
Signed-off-by: David Marchand <david.marchand@redhat.com>
show more ...
|
| #
8e2407e4 |
| 06-Dec-2023 |
David Marchand <david.marchand@redhat.com> |
lib: add newline in logs
Fix places leading to a log message not terminated with a newline.
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Stephen Hemminge
lib: add newline in logs
Fix places leading to a log message not terminated with a newline.
Cc: stable@dpdk.org
Signed-off-by: David Marchand <david.marchand@redhat.com> Acked-by: Stephen Hemminger <stephen@networkplumber.org> Reviewed-by: Tyler Retzlaff <roretzla@linux.microsoft.com> Reviewed-by: Andrew Rybchenko <andrew.rybchenko@oktetlabs.ru>
show more ...
|
|
Revision tags: v23.11, v23.11-rc4, v23.11-rc3, v23.11-rc2, v23.11-rc1 |
|
| #
1ed04d33 |
| 09-Oct-2023 |
Sivaprasad Tummala <sivaprasad.tummala@amd.com> |
power: support amd-pstate cpufreq driver
amd-pstate introduces a new CPU frequency control mechanism for AMD EPYC processors using the ACPI Collaborative Performance Power Control feature for a fine
power: support amd-pstate cpufreq driver
amd-pstate introduces a new CPU frequency control mechanism for AMD EPYC processors using the ACPI Collaborative Performance Power Control feature for a finer grained frequency management.
Signed-off-by: Sivaprasad Tummala <sivaprasad.tummala@amd.com> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com>
show more ...
|
|
Revision tags: v23.07, v23.07-rc4, v23.07-rc3, v23.07-rc2, v23.07-rc1, v23.03, v23.03-rc4, v23.03-rc3, v23.03-rc2, v23.03-rc1, v22.11, v22.11-rc4, v22.11-rc3, v22.11-rc2, v22.11-rc1 |
|
| #
72b452c5 |
| 27-Aug-2022 |
Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> |
eal: remove unneeded includes from a public header
Do not include <ctype.h>, <errno.h>, and <stdlib.h> from <rte_common.h>, because they are not used by this file. Include the needed headers directl
eal: remove unneeded includes from a public header
Do not include <ctype.h>, <errno.h>, and <stdlib.h> from <rte_common.h>, because they are not used by this file. Include the needed headers directly from the files that need them.
Signed-off-by: Dmitry Kozlyuk <dmitry.kozliuk@gmail.com> Acked-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|
|
Revision tags: v22.07, v22.07-rc4, v22.07-rc3, v22.07-rc2, v22.07-rc1 |
|
| #
42651168 |
| 02-Jun-2022 |
Kevin Laatz <kevin.laatz@intel.com> |
power: add get/set min/max scaling frequencies API
Add new get/set API to allow the user or application to set the minimum and maximum frequencies to use when scaling. Previously, the frequency rang
power: add get/set min/max scaling frequencies API
Add new get/set API to allow the user or application to set the minimum and maximum frequencies to use when scaling. Previously, the frequency range was determined by the HW capabilities of the CPU. With this new API, the user or application can constrain this if required.
Signed-off-by: Kevin Laatz <kevin.laatz@intel.com> Acked-by: Ray Kinsella <mdr@ashroe.eu> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com> Tested-by: David Hunt <david.hunt@intel.com>
show more ...
|
| #
4a8fbc28 |
| 02-Jun-2022 |
Kevin Laatz <kevin.laatz@intel.com> |
power: add get/set pause duration API
Add new get/set API for configuring 'pause_duration' which used to adjust the pause mode callback duration.
Signed-off-by: Kevin Laatz <kevin.laatz@intel.com>
power: add get/set pause duration API
Add new get/set API for configuring 'pause_duration' which used to adjust the pause mode callback duration.
Signed-off-by: Kevin Laatz <kevin.laatz@intel.com> Acked-by: Ray Kinsella <mdr@ashroe.eu> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com> Tested-by: David Hunt <david.hunt@intel.com>
show more ...
|
| #
9e9e945b |
| 02-Jun-2022 |
Kevin Laatz <kevin.laatz@intel.com> |
power: add get/set empty-poll maximum API
Add new get/set APIs to configure emptypoll max which is used to determine when a queue can go into sleep state.
Signed-off-by: Kevin Laatz <kevin.laatz@in
power: add get/set empty-poll maximum API
Add new get/set APIs to configure emptypoll max which is used to determine when a queue can go into sleep state.
Signed-off-by: Kevin Laatz <kevin.laatz@intel.com> Acked-by: Ray Kinsella <mdr@ashroe.eu> Tested-by: David Hunt <david.hunt@intel.com>
show more ...
|
|
Revision tags: v22.03, v22.03-rc4, v22.03-rc3, v22.03-rc2, v22.03-rc1, v21.11, v21.11-rc4, v21.11-rc3, v21.11-rc2, v21.11-rc1 |
|
| #
c6e30514 |
| 25-Oct-2021 |
Miao Li <miao.li@intel.com> |
power: support missing Rx queue info
Since some vdevs like virtio and vhost do not support rxq_info_get and queue state inquiry, the error return value -ENOTSUP need to be ignored when queue_stopped
power: support missing Rx queue info
Since some vdevs like virtio and vhost do not support rxq_info_get and queue state inquiry, the error return value -ENOTSUP need to be ignored when queue_stopped cannot get rx queue information and rx queue state. This patch changes the return value of queue_stopped when rte_eth_rx_queue_info_get return -ENOTSUP to support vdevs which cannot provide rx queue information and rx queue state enable power management.
Fixes: 209fd585456c ("power: make ethdev power management thread unsafe") Cc: stable@dpdk.org
Signed-off-by: Miao Li <miao.li@intel.com> Acked-by: Anatoly Burakov <anatoly.burakov@intel.com> Reviewed-by: Chenbo Xia <chenbo.xia@intel.com>
show more ...
|
|
Revision tags: v21.08, v21.08-rc4, v21.08-rc3, v21.08-rc2 |
|
| #
565d0122 |
| 21-Jul-2021 |
Anatoly Burakov <anatoly.burakov@intel.com> |
power: fix multi-queue scale mode
Currently in scale mode, multi-queue initialization will attempt to initialize and de-initialize the per-lcore power library structures multiple times. Fix it to on
power: fix multi-queue scale mode
Currently in scale mode, multi-queue initialization will attempt to initialize and de-initialize the per-lcore power library structures multiple times. Fix it to only do this whenever we either enabling first queue or disabling last queue.
Fixes: 5dff9a72b0ef ("power: support callbacks for multiple Rx queues")
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com> Tested-by: David Hunt <david.hunt@intel.com>
show more ...
|
|
Revision tags: v21.08-rc1 |
|
| #
f53fe635 |
| 09-Jul-2021 |
Anatoly Burakov <anatoly.burakov@intel.com> |
power: support monitoring multiple Rx queues
Use the new multi-monitor intrinsic to allow monitoring multiple ethdev Rx queues while entering the energy efficient power state. The multi version will
power: support monitoring multiple Rx queues
Use the new multi-monitor intrinsic to allow monitoring multiple ethdev Rx queues while entering the energy efficient power state. The multi version will be used unconditionally if supported, and the UMWAIT one will only be used when multi-monitor is not supported by the hardware.
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Tested-by: David Hunt <david.hunt@intel.com>
show more ...
|
| #
5dff9a72 |
| 09-Jul-2021 |
Anatoly Burakov <anatoly.burakov@intel.com> |
power: support callbacks for multiple Rx queues
Currently, there is a hard limitation on the PMD power management support that only allows it to support a single queue per lcore. This is not ideal a
power: support callbacks for multiple Rx queues
Currently, there is a hard limitation on the PMD power management support that only allows it to support a single queue per lcore. This is not ideal as most DPDK use cases will poll multiple queues per core.
The PMD power management mechanism relies on ethdev Rx callbacks, so it is very difficult to implement such support because callbacks are effectively stateless and have no visibility into what the other ethdev devices are doing. This places limitations on what we can do within the framework of Rx callbacks, but the basics of this implementation are as follows:
- Replace per-queue structures with per-lcore ones, so that any device polled from the same lcore can share data - Any queue that is going to be polled from a specific lcore has to be added to the list of queues to poll, so that the callback is aware of other queues being polled by the same lcore - Both the empty poll counter and the actual power saving mechanism is shared between all queues polled on a particular lcore, and is only activated when all queues in the list were polled and were determined to have no traffic. - The limitation on UMWAIT-based polling is not removed because UMWAIT is incapable of monitoring more than one address.
Also, while we're at it, update and improve the docs.
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Tested-by: David Hunt <david.hunt@intel.com>
show more ...
|
| #
209fd585 |
| 09-Jul-2021 |
Anatoly Burakov <anatoly.burakov@intel.com> |
power: make ethdev power management thread unsafe
Currently, we expect that only one callback can be active at any given moment, for a particular queue configuration, which is relatively easy to imp
power: make ethdev power management thread unsafe
Currently, we expect that only one callback can be active at any given moment, for a particular queue configuration, which is relatively easy to implement in a thread-safe way. However, we're about to add support for multiple queues per lcore, which will greatly increase the possibility of various race conditions.
We could have used something like an RCU for this use case, but absent of a pressing need for thread safety we'll go the easy way and just mandate that the API's are to be called when all affected ports are stopped, and document this limitation. This greatly simplifies the `rte_power_monitor`-related code.
Signed-off-by: Anatoly Burakov <anatoly.burakov@intel.com> Acked-by: Konstantin Ananyev <konstantin.ananyev@intel.com> Tested-by: David Hunt <david.hunt@intel.com>
show more ...
|
|
Revision tags: v21.05, v21.05-rc4, v21.05-rc3, v21.05-rc2, v21.05-rc1 |
|
| #
99a2dd95 |
| 20-Apr-2021 |
Bruce Richardson <bruce.richardson@intel.com> |
lib: remove librte_ prefix from directory names
There is no reason for the DPDK libraries to all have 'librte_' prefix on the directory names. This prefix makes the directory names longer and also m
lib: remove librte_ prefix from directory names
There is no reason for the DPDK libraries to all have 'librte_' prefix on the directory names. This prefix makes the directory names longer and also makes it awkward to add features referring to individual libraries in the build - should the lib names be specified with or without the prefix. Therefore, we can just remove the library prefix and use the library's unique name as the directory name, i.e. 'eal' rather than 'librte_eal'
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
show more ...
|