#
# Hisi enhanced options for sched walt
#

if SCHED_WALT

config SCHED_HISI_WALT_WINDOW_SIZE_TUNABLE
	bool "Make WALT window size tunable"
	default n
	help
	  Make walt_ravg_window tunable in early param.

config SCHED_HISI_CALC_CUM_WINDOW_DEMAND
	bool "WALT calculate cum window demand"
	default n
	help
	  This option caculates WALT's cum_window_demand, which is not used
	  currently.

config SCHED_HISI_CHECK_IRQLOAD
	bool "Scheduler check irqload when select task's cpu"
	default n
	help
	  WALT caculates an irqload for each cpu and scheduler will avoid
	  placing task on a high irqload cpu (if WALT enabled).
	  Default disabled because we haven't tested to find out which
	  threshold is the best.

config SCHED_HISI_TOP_TASK
	bool "Maintain the top task load of each cpu"
	default n
	help
	  Hisi schedutil governor may use the top task load as a guide to
	  frequency evaluation.

config SCHED_HISI_MIGRATE_SPREAD_LOAD
	bool "Spread task's load when inter-cluster migration"
	default n
	help
	  In inter-cluster migration, this option will spread task's
	  prev_window/curr_window to all cpus that the task has been
	  running on before in a window. If disabled, task's whole load
	  will move to dest cpu and that will make dest cpu's cpu load
	  very high in same cases.

config SCHED_HISI_PRED_LOAD
	bool "Calculate predicted load for each task"
	default n
	depends on HISI_CPU_FREQ_GOV_SCHEDUTIL
	help
	  Another signal to improve schedutil. This will help to ramp up
	  cpufreq quickly.
	  To enable this signal, say yes here and set predl_enable to 1
	  in init rc.

config TASK_RAVG_SUM
	bool "Hisilicon task normalized running time sum"
	depends on HISI_EAS_SCHED
	default n
	help
	  Sum all normalized running time for each task.

endif # SCHED_WALT

config SCHED_HISI_DEBUG_TRACE
	bool "Detailed trace for EAS debug"
	default n
	help
	  This option enable detailed tracepoint for EAS debug, there
	  will be more tracepoint in find best target, load balance and
	  energy diff.

config HUAWEI_SCHED_VIP
	bool "Support a high prio sched policy in fair sched class"
	default n
	depends on HISI_EAS_SCHED

config SCHED_HISI_UTIL_CLAMP
	bool "Support boosting a task to a specified opp"
	default n
	depends on HISI_CPU_FREQ_GOV_SCHEDUTIL
	depends on HISI_EAS_SCHED

config SCHED_HISI_RUNNING_TASK_ROTATION
	bool "Rotate running tasks between clusters"
	default n
	depends on HISI_EAS_SCHED
	depends on HISI_CORE_CTRL
	depends on HISI_ED_TASK && !HISI_ED_TASK_RESET_AT_UPMIGRATION
	help
	  When there are 8 big tasks running parallelly, e.g. geekbench
	  multicore, tasks which were initially run on big cores will
	  finish its job very soon and then there will be 6 or less tasks
	  left.
	  Rotate the tasks, or in other words exchange them between
	  little cores and big cores randomly, will improve fairness and
	  parallelism.

