blob: 7754cb068db60035ddbc3a2aa7b52d4637fc6e94 [file] [log] [blame]
[
{
type: "DriverManagerHandler",
name: "driver_manager_handler",
config: {}
},
{
type: "ShutdownWatcher",
name: "shutdown_watcher"
},
{
type: "SystemShutdownHandler",
name: "sys_shutdown",
config: {
shutdown_timeout_s: 3600
},
dependencies: {
driver_manager_handler_node: "driver_manager_handler",
shutdown_watcher_node: "shutdown_watcher"
}
},
{
type: "SyscallHandler",
name: "syscall_handler"
},
{
type: "CrashReportHandler",
name: "crash_handler"
},
{
type: "CpuStatsHandler",
name: "cpu_stats",
config: {
cpu_load_cache_duration_ms: 100
}
},
{
type: "CpuDeviceHandler",
name: "big_cluster_handler",
config: {
driver_path: "/dev/class/cpu-ctrl/000"
}
},
{
type: "CpuDeviceHandler",
name: "little_cluster_handler",
config: {
driver_path: "/dev/class/cpu-ctrl/001"
}
},
{
type: "CpuManager",
name: "cpu_manager",
config: {
clusters: [
{
name: "big_cluster",
cluster_index: 0,
handler: "big_cluster_handler",
logical_cpu_numbers: [
2,
3,
4,
5
],
normperfs_per_ghz: 0.5241090146750524
},
{
name: "little_cluster",
cluster_index: 1,
handler: "little_cluster_handler",
logical_cpu_numbers: [
0,
1
],
normperfs_per_ghz: 0.23551734203752356
}
],
thermal_states: [
{
cluster_pstates: [
0,
0
],
min_performance_normperfs: 0.0,
static_power_w: 0.15,
dynamic_power_per_normperf_w: 1.24
},
{
cluster_pstates: [
0,
1
],
min_performance_normperfs: 1.76,
static_power_w: 0.13,
dynamic_power_per_normperf_w: 1.221
},
{
cluster_pstates: [
1,
0
],
min_performance_normperfs: 0.0,
static_power_w: 0.07,
dynamic_power_per_normperf_w: 0.844
},
{
cluster_pstates: [
1,
1
],
min_performance_normperfs: 1.68,
static_power_w: 0.05,
dynamic_power_per_normperf_w: 0.815
},
{
cluster_pstates: [
1,
3
],
min_performance_normperfs: 4.32,
static_power_w: 0.05,
dynamic_power_per_normperf_w: 0.81
},
{
cluster_pstates: [
2,
0
],
min_performance_normperfs: 0.73,
static_power_w: 0.07,
dynamic_power_per_normperf_w: 0.772
},
{
cluster_pstates: [
2,
1
],
min_performance_normperfs: 1.6,
static_power_w: 0.05,
dynamic_power_per_normperf_w: 0.74
},
{
cluster_pstates: [
2,
3
],
min_performance_normperfs: 4.12,
static_power_w: 0.05,
dynamic_power_per_normperf_w: 0.733
},
{
cluster_pstates: [
3,
0
],
min_performance_normperfs: 0.36,
static_power_w: 0.07,
dynamic_power_per_normperf_w: 0.695
},
{
cluster_pstates: [
3,
2
],
min_performance_normperfs: 0.85,
static_power_w: 0.05,
dynamic_power_per_normperf_w: 0.655
},
{
cluster_pstates: [
4,
0
],
min_performance_normperfs: 3.87,
static_power_w: 0.07,
dynamic_power_per_normperf_w: 0.643
},
{
cluster_pstates: [
4,
1
],
min_performance_normperfs: 3.61,
static_power_w: 0.05,
dynamic_power_per_normperf_w: 0.604
},
{
cluster_pstates: [
4,
4
],
min_performance_normperfs: 0.13,
static_power_w: 0.05,
dynamic_power_per_normperf_w: 0.593
},
{
cluster_pstates: [
5,
1
],
min_performance_normperfs: 0.0,
static_power_w: 0.0,
dynamic_power_per_normperf_w: 0.571
},
{
cluster_pstates: [
5,
4
],
min_performance_normperfs: 3.19,
static_power_w: 0.0,
dynamic_power_per_normperf_w: 0.556
},
{
cluster_pstates: [
6,
2
],
min_performance_normperfs: 2.87,
static_power_w: 0.0,
dynamic_power_per_normperf_w: 0.554
},
{
cluster_pstates: [
6,
4
],
min_performance_normperfs: 1.97,
static_power_w: 0.0,
dynamic_power_per_normperf_w: 0.544
}
]
},
dependencies: {
cpu_device_handlers: [
"big_cluster_handler",
"little_cluster_handler"
],
cpu_stats_handler: "cpu_stats",
syscall_handler: "syscall_handler"
}
},
{
type: "TemperatureHandler",
name: "temperature_soc_pll",
config: {
driver_path: "/dev/aml-thermal-pll/thermal",
cache_duration_ms: 50
}
},
{
type: "PlatformMetrics",
name: "platform_metrics",
config: {
cpu_temperature_poll_interval_s: 1,
throttle_debounce_timeout_s: 60
},
dependencies: {
cpu_temperature_handler_node: "temperature_soc_pll",
crash_report_handler_node: "crash_handler"
}
},
{
type: "ThermalStateHandler",
name: "thermal_state_handler",
dependencies: {
platform_metrics_node: "platform_metrics"
}
},
{
// Calculates thermal load used to trigger audio limiting trip points. The reboot threshold
// is much less than that of thermal_policy and is not expected to be reached.
type: "ThermalLoadDriver",
name: "thermal_load_driver",
config: {
temperature_input_configs: [
{
temperature_handler_node_name: "temperature_soc_pll",
onset_temperature_c: 70.0,
reboot_temperature_c: 120.0,
poll_interval_s: 1,
filter_time_constant_s: 5
}
]
},
dependencies: {
system_shutdown_node: "sys_shutdown",
thermal_load_notify_nodes: [
"thermal_state_handler"
],
temperature_handler_node_names: [
"temperature_soc_pll"
],
platform_metrics_node: "platform_metrics"
}
},
{
type: "ThermalPolicy",
name: "thermal_policy",
dependencies: {
temperature_handler_node: "temperature_soc_pll",
cpu_control_nodes: [
"cpu_manager"
],
system_power_handler_node: "sys_shutdown",
thermal_load_notify_nodes: [],
platform_metrics_node: "platform_metrics"
},
config: {
controller_params: {
sample_interval: 1.0,
filter_time_constant: 5.0,
target_temperature: 94.0,
e_integral_min: -39.37,
e_integral_max: 0.0,
sustainable_power: 6.22,
proportional_gain: 0.0,
integral_gain: 0.158
},
thermal_shutdown_temperature: 100.0
}
}
]