| d4fb4eb0 | 05-Nov-2021 |
Jim Harris <[email protected]> |
power: remove unused poll counter
Following the previous fix, there is nothing using the ppi counter.
We can remove the related ppi_av array in struct priority_worker. This allows us to also remove
power: remove unused poll counter
Following the previous fix, there is nothing using the ppi counter.
We can remove the related ppi_av array in struct priority_worker. This allows us to also remove num_dequeue_pkts_prev and pc from struct priority_worker since they are only used in conjunction with the ppi_av array.
Suggested-by: David Marchand <[email protected]> Signed-off-by: Jim Harris <[email protected]> Reviewed-by: David Marchand <[email protected]>
show more ...
|
| f53fe635 | 09-Jul-2021 |
Anatoly Burakov <[email protected]> |
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 <[email protected]> Acked-by: Konstantin Ananyev <[email protected]> Tested-by: David Hunt <[email protected]>
show more ...
|
| 5dff9a72 | 09-Jul-2021 |
Anatoly Burakov <[email protected]> |
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 <[email protected]> Acked-by: Konstantin Ananyev <[email protected]> Tested-by: David Hunt <[email protected]>
show more ...
|
| 209fd585 | 09-Jul-2021 |
Anatoly Burakov <[email protected]> |
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 <[email protected]> Acked-by: Konstantin Ananyev <[email protected]> Tested-by: David Hunt <[email protected]>
show more ...
|
| 06cffd46 | 08-Jul-2021 |
Anatoly Burakov <[email protected]> |
power: refactor ACPI and intel_pstate support
Currently, ACPI and PSTATE modes have lots of code duplication, confusing logic, and a bunch of other issues that can, and have, led to various bugs and
power: refactor ACPI and intel_pstate support
Currently, ACPI and PSTATE modes have lots of code duplication, confusing logic, and a bunch of other issues that can, and have, led to various bugs and resource leaks.
This commit factors out the common parts of sysfs reading/writing for ACPI and PSTATE drivers.
Signed-off-by: Anatoly Burakov <[email protected]> Signed-off-by: David Hunt <[email protected]>
show more ...
|