Squashed backup commit (no shallow-clone history issues) of xiaomi-mt6833-dev/kernel_xiaomi_mt6833 (lineage-23.2 branch, upstream commit 9eece662e) plus all fixes applied to get everpal_defconfig building clean against a modern (GCC 15.2.0) toolchain -- see the previous commit message on the lineage-23.2 branch (also in this repo history is not available here since this is a squashed snapshot; full incremental history lives in the local DL380 checkout and the upstream GitHub remote). Upstream: https://github.com/xiaomi-mt6833-dev/kernel_xiaomi_mt6833 (lineage-23.2)
190 lines
6.1 KiB
Plaintext
190 lines
6.1 KiB
Plaintext
menu "MTK load balance and schedule enhancement"
|
|
|
|
config MTK_IDLE_BALANCE_ENHANCEMENT
|
|
bool "mtk load balance enhancement"
|
|
depends on SMP
|
|
default n
|
|
help
|
|
Mediatek aggressive idle balance, include
|
|
1. for runnable tasks with idle prefer attributes
|
|
2. for runnable and running tasks with min_cap(dynamic floor)
|
|
3. migrate runnable task directly and
|
|
use stop machine to migrate running task
|
|
|
|
config MTK_SCHED_INTEROP
|
|
bool "mtk scheduling interopation enhancement"
|
|
default y
|
|
help
|
|
Original Linux Design, RT & CFS do load balance seperatedly,
|
|
and let would result in unload balance.
|
|
that is, one CPU has more than 2 tasks, however, one CPU is IDLE
|
|
We make RT & CFS to check each other and make load more balance.
|
|
|
|
config MTK_SCHED_TRACE
|
|
bool "mtk scheduling trace, output mtk schedule trace into FTRACE"
|
|
default n
|
|
help
|
|
MTK scheduling trace, output schedule trace into FTRACE
|
|
the ftrace api for scheduling is mt_sched_printf and
|
|
used for scheduling module to output info to ftrace
|
|
Say Y to enable mtk scheduling trace
|
|
|
|
config MTK_SCHED_DEBUG
|
|
bool "mtk scheduling log, also output schedule log into Kernel log"
|
|
depends on MTK_SCHED_TRACE
|
|
default n
|
|
help
|
|
MTK scheduling log, add scheduling log into Kernel log.
|
|
Including print scheduler debug information at KE and print
|
|
load balance information at kernel log.
|
|
Say no if not sure.
|
|
|
|
endmenu
|
|
menu "MTK Energy Aware Scheduler Plus"
|
|
config MTK_SCHED_EAS_POWER_SUPPORT
|
|
bool "Enable MTK power calculation for EAS"
|
|
depends on MTK_UNIFY_POWER
|
|
default n
|
|
help
|
|
Power calculation for mtk Soc.
|
|
According to platform characters(share-buck..etc),
|
|
return correct power of core and cluster for
|
|
scheduler to refer.
|
|
|
|
config MTK_SCHED_MULTI_GEARS
|
|
bool "MTK enhancmenet for mutl CPU gears"
|
|
depends on MTK_SCHED_EAS_POWER_SUPPORT
|
|
default n
|
|
help
|
|
MTK enhancement for multi CPU gears
|
|
1. share buck aware
|
|
use max frequency for dynamic and static power in shared buck
|
|
2. select a CPU in each CPU gears for energy diff
|
|
|
|
config MTK_SCHED_BL_FIRST
|
|
bool "MTK enhancmenet for mutl CPU gears if hope put BL first"
|
|
depends on MTK_SCHED_MULTI_GEARS
|
|
default n
|
|
help
|
|
Default is sorting the CPU domain from little to Big.
|
|
This KCONFIG will support to prefer to
|
|
put BL in Big domain for performance/power/thermal
|
|
and so on consideration.
|
|
endmenu
|
|
|
|
menu "MTK Heterogenous MultiProcessor Scheduler"
|
|
|
|
config SCHED_HMP
|
|
bool "Heterogenous multiprocessor scheduling"
|
|
default n
|
|
depends on SCHED_MC && FAIR_GROUP_SCHED && !SCHED_AUTOGROUP
|
|
help
|
|
Scheduler optimizations for heterogeneous platforms.
|
|
Attempts to introspectively select task affinity to
|
|
optimize power and performance. Basic support for multiple (>2)
|
|
cpu types is in place, but it has only been tested with two
|
|
types of cpus.
|
|
There is currently no support for migration of task groups, hence
|
|
!SCHED_AUTOGROUP.
|
|
|
|
config SCHED_HMP_PRIO_FILTER
|
|
bool "(EXPERIMENTAL) Filter HMP migrations by task priority"
|
|
default y
|
|
depends on SCHED_HMP
|
|
help
|
|
Enables task priority based HMP migration filter. Any task with
|
|
a NICE value above the threshold will always be on low-power cpus
|
|
with less compute capacity.
|
|
If unsure say N here.
|
|
|
|
config SCHED_HMP_PRIO_FILTER_VAL
|
|
int "NICE priority threshold"
|
|
default 5
|
|
depends on SCHED_HMP_PRIO_FILTER
|
|
|
|
config HMP_FREQUENCY_INVARIANT_SCALE
|
|
bool "(EXPERIMENTAL) Frequency-Invariant Tracked Load for HMP"
|
|
depends on !ARCH_SCALE_INVARIANT_CPU_CAPACITY
|
|
help
|
|
Scales the current load contribution in line with the frequency
|
|
of the CPU that the task was executed on.
|
|
In this version, we use a simple linear scale derived from the
|
|
maximum frequency reported by CPUFreq.
|
|
Restricting tracked load to be scaled by the CPU's frequency
|
|
represents the consumption of possible compute capacity
|
|
(rather than consumption of actual instantaneous capacity as
|
|
normal) and allows the HMP migration's simple threshold
|
|
migration strategy to interact more predictably with CPUFreq's
|
|
asynchronous compute capacity changes.
|
|
|
|
config SCHED_HMP_PLUS
|
|
bool "(EXPERIMENTAL) Corepilot enhancement"
|
|
depends on SCHED_HMP
|
|
default y
|
|
help
|
|
Corepilot hmp enhancement.
|
|
1. Do hmp_idle_pull at idle_balance
|
|
2. At global balance, consider the tasks in rq,
|
|
move heaviest/lightest of first 5 tasks in rq.
|
|
3. Enhance down migration rule: Do not migrate task when big core
|
|
is idle
|
|
|
|
config MTK_SCHED_BOOST
|
|
bool "mtk scheduling boost enhancement"
|
|
depends on SCHED_DEBUG && CPUSETS && SCHED_HMP && \
|
|
DEFAULT_USE_ENERGY_AWARE
|
|
default n
|
|
help
|
|
Sched Boost type:
|
|
0: cancel sched boost
|
|
1: prefer boost ALL tasks to big cores
|
|
2: foreground task move to big cores
|
|
endmenu
|
|
|
|
menu "MTK runqueue statistic calculation"
|
|
|
|
config MTK_SCHED_RQAVG_KS
|
|
bool "Enable runqueue stat calculation used in kernel space operation"
|
|
depends on SMP && SCHED_HMP
|
|
help
|
|
MTK ruqueue statistic kernel space CPUfreq governors, e.g., hotplug
|
|
TLP estimation,
|
|
heavy task detection and
|
|
per CPU load for kernel space CPUfreq governors
|
|
|
|
config MTK_SCHED_RQAVG_US
|
|
bool "Enable runqueue stat calculation used in user space operation"
|
|
depends on SMP && SCHED_HMP && HIGH_RES_TIMERS
|
|
help
|
|
MTK runqueue staticsic calculation
|
|
used in user space operation.
|
|
TLP estimation for user space
|
|
CPUfreq governors.
|
|
|
|
config MTK_SCHED_CPULOAD
|
|
bool "Enable timing-base CPU loading tracking in scheduler"
|
|
depends on MTK_SCHED_RQAVG_US
|
|
help
|
|
Support timing-base CPU loading tracking
|
|
in scheduler tick.
|
|
Which helps load tracking in time-base view
|
|
and more quick response in loading change.
|
|
|
|
config MTK_SCHED_SYSHINT
|
|
bool "Enable asynchronus hint to get loading change in time"
|
|
help
|
|
Support asynchronus hint for external modules
|
|
to get loading change notification from scheduler
|
|
in time that helps resource control
|
|
in low latency.
|
|
|
|
config MTK_RT_THROTTLE_MON
|
|
bool "mtk rt throttle monitor"
|
|
default n
|
|
help
|
|
MTK_RT_THROTTLE_MON is used to monitor rt throttle.
|
|
When rt throttle activated print 5 longest execusion time rt tasks.
|
|
Say Y here to enable rt throttle monitor.
|
|
If you are not sure about whether to enable it or not, please set n.
|
|
endmenu
|