mirror of
git://nv-tegra.nvidia.com/linux-nv-oot.git
synced 2025-12-24 10:11:26 +03:00
A circle buffer is introduced to store recent normalized GPU active cycle counts. The highest value in this buffer marks the busiest moment in recent history. When podgov decides next GPU freqeuncy, it makes sure the new frequency level can satisfy the recent high work load. This can be considered as an adaptive GPU frequency floor. This feature can reduce stutter for certain use cases where work load spikes occur without any temporal pattern, such as 4k video playback. Bug 1963732 Change-Id: I70024f4d3ffb63425852e4f320eeffb6bc77c5e3 Signed-off-by: Peng Liu <pengliu@nvidia.com> Reviewed-on: https://git-master.nvidia.com/r/2114154 GVS: Gerrit_Virtual_Submit Reviewed-by: Thomas Fleury <tfleury@nvidia.com> Tested-by: Aaron Tian <atian@nvidia.com> Reviewed-by: David Lock <dlock@nvidia.com> Reviewed-by: Mubushir Rahman <mubushirr@nvidia.com> Reviewed-by: Alex Waterman <alexw@nvidia.com> Reviewed-by: mobile promotions <svcmobile_promotions@nvidia.com> Tested-by: mobile promotions <svcmobile_promotions@nvidia.com>
38 lines
1.3 KiB
Plaintext
38 lines
1.3 KiB
Plaintext
if PM_DEVFREQ
|
|
|
|
comment "NVIDIA DEVFREQ Governors"
|
|
|
|
config DEVFREQ_GOV_POD_SCALING
|
|
tristate "Power On Demand Scaling"
|
|
help
|
|
Sets the frequency based on two properties:
|
|
(1) The governor receives activity throughput hints that
|
|
indicate whether scaling up or down is required
|
|
(2) the load of the devices is estimated using busy times
|
|
from device profile to determine if the frequency should
|
|
be altered.
|
|
|
|
config DEVFREQ_GOV_POD_SCALING_HISTORY_BUFFER_SIZE_MAX
|
|
int
|
|
default 100
|
|
|
|
config DEVFREQ_GOV_WMARK_SIMPLE
|
|
tristate "Simple Watermark"
|
|
help
|
|
Sets the frequency based on monitor watermark events.
|
|
This governor returns the next frequency from frequency table
|
|
based on type watermark event.
|
|
|
|
config DEVFREQ_GOV_WMARK_ACTIVE
|
|
tristate "Active Watermark"
|
|
help
|
|
Sets the frequency based on monitor watermark events.
|
|
This governor calculates relation between current load and
|
|
target load. The next frequency is calculated by multiplying
|
|
this relation with the current frequency.
|
|
|
|
The watermark values are updated so that the watermarks are
|
|
triggered when the above algorithm would change the frequency.
|
|
|
|
endif # PM_DEVFREQ
|