blob: 8bc0422e54dae8cfa5edc9cb959ac9545c8999cf [file] [log] [blame]
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "Power Manager Node Config Schema",
"type": "array",
"items": {
"oneOf": [
{
"properties": {
"type": {
"pattern": "ThermalWatcher"
},
"name": {
"type": "string"
},
"dependencies": {
"type": "object",
"properties": {
"thermal_handler_node": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"thermal_handler_node"
]
}
},
"additionalProperties": false,
"required": [
"type",
"name",
"dependencies"
]
},
{
"properties": {
"type": {
"pattern": "CpuControlHandler"
},
"name": {
"type": "string"
},
"config": {
"type": "object",
"properties": {
"total_domain_count": {
"type": "number",
"minimum": 0
},
"perf_rank": {
"type": "number",
"minimum": 0
},
"sustainable_power": {
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
},
"power_gain": {
"type": "number",
"minimum": 0
},
"capacitance": {
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
},
"min_cpu_clock_speed": {
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
},
"logical_cpu_numbers": {
"type": "array",
"minItems": 1,
"items": {
"type": "number",
"minimum": 0
}
}
},
"additionalProperties": false,
"required": [
"total_domain_count",
"perf_rank",
"capacitance",
"logical_cpu_numbers"
]
},
"dependencies": {
"type": "object",
"properties": {
"cpu_stats_handler_node": {
"type": "string"
},
"cpu_dev_handler_node": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"cpu_stats_handler_node",
"cpu_dev_handler_node"
]
}
},
"additionalProperties": false,
"required": [
"type",
"name",
"config",
"dependencies"
]
},
{
"properties": {
"type": {
"pattern": "CpuDeviceHandler"
},
"config": {
"type": "object",
"properties": {
"total_domain_count": {
"type": "number",
"minimum": 0
},
"perf_rank": {
"type": "number",
"minimum": 0
}
},
"additionalProperties": false,
"required": [
"total_domain_count",
"perf_rank"
]
},
"name": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"type",
"name",
"config"
]
},
{
"properties": {
"type": {
"pattern": "CpuManagerMain"
},
"name": {
"type": "string"
},
"config": {
"type": "object",
"properties": {
"sustainable_power": {
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
},
"power_gain": {
"type": "number",
"minimum": 0
},
"clusters": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"cluster_index": {
"type": "integer",
"minimum": 0
},
"handler": {
"type": "string"
},
"logical_cpu_numbers": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer",
"minimum": 0
}
},
"normperfs_per_ghz": {
"type": "number",
"minimum": 0
}
}
},
"additionalProperties": false,
"required": [
"name",
"cluster_index",
"handler",
"logical_cpu_numbers",
"normperfs_per_ghz"
]
},
"thermal_states": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"properties": {
"cluster_opps": {
"type": "array",
"minItems": 1,
"items": {
"type": "integer",
"minimum": 0
}
},
"min_performance_normperfs": {
"type": "number",
"minimum": 0
},
"static_power_w": {
"type": "number",
"minimum": 0
},
"dynamic_power_per_normperf_w": {
"type": "number",
"minimum": 0
}
}
},
"additionalProperties": false,
"required": [
"cluster_opps",
"min_performance_normperfs",
"static_power_w",
"dynamic_power_per_normperf_w"
]
}
},
"additionalProperties": false,
"required": [
"clusters",
"thermal_states"
]
},
"dependencies": {
"type": "object",
"properties": {
"cpu_stats_handler": {
"type": "string"
},
"cpu_device_handlers": {
"type": "array",
"minItems": 1
},
"syscall_handler": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"cpu_stats_handler",
"cpu_device_handlers",
"syscall_handler"
]
}
},
"additionalProperties": false,
"required": [
"type",
"name",
"config",
"dependencies"
]
},
{
"properties": {
"type": {
"pattern": "CpuStatsHandler"
},
"name": {
"type": "string"
},
"config": {
"type": "object",
"properties": {
"cpu_load_cache_duration_ms": {
"type": "number",
"minimum": 0,
"exclusiveMinimum": true
}
}
}
},
"additionalProperties": false,
"required": [
"type",
"name"
]
},
{
"properties": {
"type": {
"pattern": "DeviceControlHandler"
},
"config": {
"type": "object",
"properties": {
"total_domain_count": {
"type": "number",
"minimum": 0
},
"perf_rank": {
"type": "number",
"minimum": 0
}
}
},
"name": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"type",
"name"
]
},
{
"properties": {
"type": {
"pattern": "SyscallHandler"
},
"name": {
"type": "string"
}
},
"additionalProperties": false,
"required": [
"type",
"name"
]
}
]
}
}