背景
能效组件需支持在线调试自定义命令,并区分debug版本命令和release版本命令,即release包中仅包含release相关命令,debug包中包含所有命令。
现状:能效组件无在线调试自定义命令及其对应的资源协作接口
决策点
新增path:/bmc/kepler/Debug/PowerStrategy,interface:bmc.kepler.Debug.EnergySavingMeasurement和方法SetPeriod
新增path:/bmc/kepler/Debug/PowerStrategy,interface:bmc.kepler.Debug.PowerCapping,方法:SimulatePowerCappingTask和SimulatePowerCappingConfig
在path:/bmc/kepler/Systems/:SystemId/PowerMgmt/:ID下,新增interface: bmc.kepler.Release.OnePower.Collector,方法: GetFanSpeed和GetRegisterValue
将接口bmc.kepler.Debug.BlackBox和其方法DumpPsuBlackbox放置新增路径/bmc/kepler/Debug/Chassis/:ChasisId/PowerMgmt/:ID下
新增path:/bmc/kepler/Debug/ThermalMgmt,interface: bmc.kepler.Debug.PidConfiguration,方法: GetVersion,SetPidPrintMode,SetPidConfigItem
在path:bmc/kepler/ThermalMgmt下,新增interface: bmc.kepler.Release.ThermalControlStrategy,方法:GetActivatedPolicy
描述
决策点1:
资源path:/bmc/kepler/Debug/PowerStrategy
资源interface:bmc.kepler.Debug.EnergySavingMeasurement
变化类型:新增方法
应用场景:节能专家推荐系统中,修改计算周期,进行策略重新推荐
持久化类型:不涉及
操作权限:BasicSetting
方法名称 | 变化类型 | 签名 | 读写&权限 | 持久化 | 变化通知 | 接口说明 | 接口约束 | 命令字 | 描述(displayDescription) |
---|---|---|---|---|---|---|---|---|---|
SetPeriod | 新增方法 | 请求: u 响应:– |
BasicSetting | 不涉及 | 不涉及 | 设置节能专家推荐系统计算周期 请求: Period:计算周期时间,单位为秒,最小时间为60s,最大时间为86400s(24小时) 响应: 无 |
为防止对能效组件性能影响,最小时间为60s,最大时间为86400s(24小时) | setpwrcalcperiod | 方法描述: Set the calculation period of the energy saving measurement. 请求参数描述: Period:Energy saving measurement calculation period, in seconds, which range is [60, 86400]. For example: setpwrcalcperiod 60. |
决策点2:
资源path:/bmc/kepler/Debug/PowerStrategy
资源interface:bmc.kepler.Debug.PowerCapping
变化类型:新增方法
应用场景:模拟功耗封顶;设置功耗封顶下限建议值,模拟上报功耗封顶失败事件
持久化类型:不持久化
操作权限:PowerMgmt
方法名称 | 变化类型 | 签名 | 读写&权限 | 持久化 | 变化通知 | 接口说明 | 接口约束 | 命令字 | 描述(displayDescription) |
---|---|---|---|---|---|---|---|---|---|
SimulatePowerCappingTask | 新增方法 | 请求: yd 响应:– |
PowerMgmt | 不涉及 | 不涉及 | 通过模拟整机功耗值进行功耗封顶 请求: Mode:是否开启整机功耗调试模式,取值0和1,0表示关闭,1表示开启 Ratio:功耗封顶值比例范围[0.1, 1.0],该参数为可选参数 |
Mode取值只能为0和1 Ratio取值范围为[0.1, 1.0]. |
pwrcapsyspwrmock | 方法描述: Simulate the system power for power capping. 请求参数描述: Mode:Indicate whether to enable the system power debug mode, 0: disable, 1: enable. Ratio:Modify ratio value,which range is [0.1, 1.0] to simulate the system power. For example: 1. pwrcapsyspwrmock 0; 2. pwrcapsyspwrmock 1 0.1. |
SimulatePowerCappingConfig | 新增方法 | 请求: yu 响应:– |
PowerMgmt | 不涉及 | 不涉及 | 设置功耗封顶下限值,以及模拟上报功耗封顶失败事件请求 请求: Type:调试类型,0表示模拟功耗封顶下限值,1表示模拟上报功耗封顶失败事件 Value:功耗封顶下限值,该参数为可选参数 |
Type当前只支持0和1,保留扩展性 Value值仅在Type取值为0时生效 |
pwrcapmock | 方法描述: Set lower limit of power capping or simulate the power capping failure event. 请求参数描述: Type:Indicate power capping debug type, 0: Simulate power capping lower limit value, 1: Simulate the power capping failure event. Value: Lower limit of the power capping value, which is used when type is set to 0. For example: 1. pwrcapmock 0 100; 2. pwrcapmock 1. |
决策点3:
资源path:/bmc/kepler/Systems/:SystemId/PowerMgmt/:ID
资源interface:bmc.kepler.Release.OnePower.Collector
变化类型:新增方法
应用场景:查询电源风扇转速,查询电源I2C信息
持久化类型: 不持久化
操作权限:ReadOnly
方法名称 | 变化类型 | 签名 | 读写&权限 | 持久化 | 变化通知 | 接口说明 | 接口约束 | 命令字 | 描述(displayDescription) |
---|---|---|---|---|---|---|---|---|---|
GetFanSpeed | 新增方法 | 请求: – 响应: q |
ReadOnly | 不涉及 | 不涉及 | 获取电源风扇转速 响应参数: FanSpeed:电源风扇转速 |
无 | getpsufanspeed | 方法描述: Get PSU fan speed. 响应参数描述: FanSpeed: PSU fan speed. For example: getpsufanspeed OnePower_0_010109. |
GetRegisterValue | 新增方法 | 请求:uu 响应:ay |
ReadOnly | 不涉及 | 不涉及 | 获取电源寄存器信息 请求参数: Cmd:电源寄存器地址 Length:读取长度 响应参数: OutData:寄存器读取结果 |
传入的寄存器地址需为当前已支持的电源寄存器地址,否则返回操作失败 | getpsureg | 方法描述: Get PSU register value. 请求参数描述: Cmd: PSU register address. Length: Read length. For example: getpsureg OnePower_0_010109 144 2. |
资源path:/bmc/kepler/Debug/Chassis/:ChasisId/PowerMgmt/:ID
资源interface:bmc.kepler.Debug.BlackBox
变化类型:DumpPsuBlackbox(该方法已存在)
应用场景:收集黑匣子日志
持久化类型: 不持久化
操作权限:ReadOnly
方法名称 | 变化类型 | 签名 | 读写&权限 | 持久化 | 变化通知 | 接口说明 | 接口约束 | 命令字 | 描述(displayDescription) |
---|---|---|---|---|---|---|---|---|---|
DumpPsuBlackbox | 该方法已存在 | 请求:– 响应:– |
ReadOnly | 不涉及 | 不涉及 | 收集电源黑匣子日志 | 无 | dumppsublackbox | 方法描述: Dump PSU blackbox data. (file path: /var/log/ps_black_box.log) For example: dumppsublackbox OnePowerDebug_0_010109. |
决策点4:
资源path:/bmc/kepler/Debug/ThermalMgmt/
资源interface:bmc.kepler.Debug.PidConfiguration
变化类型:新增方法
应用场景:PID相关查询和设置
持久化类型: 不持久化
操作权限:ReadOnly/BasicSetting
方法名称 | 变化类型 | 签名 | 读写&权限 | 持久化 | 变化通知 | 接口说明 | 接口约束 | 命令字 | 描述(displayDescription) |
---|---|---|---|---|---|---|---|---|---|
GetVersion | 新增方法 | 无 | ReadOnly | 不涉及 | 不涉及 | 打印PID版本信息 | 无约束 | getpidver | 方法描述: Print PID version. For example: getpidver. |
SetPidPrintMode | 新增方法 | 请求:yy 响应:– |
BasicSetting | 不涉及 | 不涉及 | 设置PID信息打印开关 请求参数: Type:PID信息类型,1表示配置信息,2表示控制信息 Enabled:PID信息打印开关,取值为0和1, 0表示关闭信息打印,1表示开启信息打印 |
当前Type仅支持配置信息和控制信息 | setpidprintmode | 方法描述: Set PID message output. 请求参数描述: Type: PID message type, 1: configuration message, 2: control message. Enabled: Indicate whether to enable to print PID message, 0: disable, 1: enable. For example: setpidprintmode 0 1. |
SetPidConfigItem | 新增方法 | 请求:yy 响应:– |
BasicSetting | 不涉及 | 不涉及 | 设置PID模块配置信息 请求参数: ItemIndex:PID场景识别配置项索引,当前仅支持0表示高温场景。 ItemValue:配置场景值 |
ItemIndex:当前仅支持0高温场景 ItemValue:配置场景值 |
setpidconf | 方法描述: Set PID module configuration items. 请求参数描述: ItemIndex: PID configuration item index, 0: high-temperature configuration item. ItemValue: Indicate configuration item value For example: setpidconf 0 1. |
决策点5:
资源path:/bmc/kepler/ThermalMgmt/
资源interface:bmc.kepler.Release.ThermalControlStrategy
变化类型:新增方法
应用场景:查询当前转速生效的策略
持久化类型: 不持久化
操作权限:ReadOnly
方法名称 | 变化类型 | 签名 | 读写&权限 | 持久化 | 变化通知 | 接口说明 | 接口约束 | 命令字 | 描述(displayDescription) |
---|---|---|---|---|---|---|---|---|---|
GetActivatedPolicy | 新增方法 | 请求:sy 响应:s |
ReadOnly | 不涉及 | 不涉及 | 获取指定散热器件和模式生效的调速因子 请求参数: Type:散热器件类型,取值为Fan Mode:查询模式,0表示生效因子,1表示生效算法 响应参数: ActivatedPolicy |
Type取值为Fan Mode取值为0调速因子,1表示调速算法 ActivatedPolicy取值为: 当Mode为0时: MPC – 自动调速模式下,MPC生效时显示 传感器名称 – 自动调速模式下,MPC未生效时显示 异常调速因子名称 – 自动调速模式下,MPC未生效时且存在异常调速时显示(比如:风扇不在位) N/A – 手动调速模式下显示 当Mode为1时: MPC – 自动调速模式下,MPC生效时显示 PID – 自动调速模式下,PID生效时显示 N/A – 手动调速模式下显示 |
getactivatedpolicy | 方法描述: Get activated policy for a specified cooling device type and mode. 请求参数描述: Type: Cooling device type, include Fan. Mode: Cooling effective mode, 0: effective factor, 1: algorithm |
评审结论
决策点1:
新增path:/bmc/kepler/Debug/PowerStrategy,interface:bmc.kepler.Debug.EnergySavingMeasurement和方法SetPeriod
结论:同意新增上述path,interface和method
方法名:SetPeriod
请求签名:u
响应签名:无
读写&权限:BasicSetting
决策点2. 新增path:/bmc/kepler/Debug/PowerStrategy,interface:bmc.kepler.Debug.PowerCapping,方法:SimulatePowerCappingTask和SimulatePowerCappingConfig
结论:同意新增上述path,interface和method
方法名:SimulatePowerCappingTask
请求签名:yd
响应签名:无
读写&权限:PowerMgmt
方法名:SimulatePowerCappingConfig
请求签名:yu
响应签名:无
读写&权限:PowerMgmt
决策点3.
①. 在path:/bmc/kepler/Systems/:SystemId/PowerMgmt/:ID下,新增interface: bmc.kepler.Release.OnePower.Collector,方法: GetActualFanSpeed和GetRegisterValue
②. 将接口bmc.kepler.Debug.BlackBox和其方法DumpPsuBlackbox放置新增路径/bmc/kepler/Debug/Chassis/:ChasisId/PowerMgmt/:ID下
结论:同意新增上述path,interface和method
方法名:GetFanSpeed
请求签名:无
响应签名:q
读写&权限:ReadOnly
方法名:GetRegisterValue
请求签名:uu
响应签名:ay
读写&权限:ReadOnly
决策点4. 新增path:/bmc/kepler/Debug/ThermalMgmt,interface: bmc.kepler.Debug.PidConfiguration,方法: GetVersion,SetPidPrintMode,SetPidConfigItem
结论:同意新增上述path,interface和method
方法名:GetVersion
请求签名:无
响应签名:无
读写&权限:ReadOnly
方法名:SetPidPrintMode
请求签名:yy
响应签名:无
读写&权限:BasicSetting
方法名:SetPidConfigItem
请求签名:yy
响应签名:无
读写&权限:BasicSetting
决策点5. 在path:bmc/kepler/ThermalMgmt下,新增interface: bmc.kepler.Release.ThermalControlStrategy,方法:GetActivatedPolicy
结论:同意新增上述interface和method
方法名:GetActivatedPolicy
请求签名:sy
响应签名:s
读写&权限:ReadOnly
遗留问题
问题1:确认方法是否可以合并为通过不同参数进行调用
结论1:已将可合并的方法合并,通过不同参数进行调用,具体为SetPidPrintModeEnabled;
问题2:确认命令字名称;
结论2:已将需要修改的命令字名称完成修改,并简化个别名称;