| { |
| "$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" |
| ] |
| } |
| ] |
| } |
| } |