背景
功率封顶调控通过降低CPU主频来限制节点功耗,但主频过度下调可能影响业务正常运行。为此,需支持通过BMC配置CPU允许下调的最低主频阈值并下发给BIOS,使功率封顶调控在CPU主频降至该阈值或达到功率封顶值时任一条件满足时停止降频,避免对业务造成影响。同时,前端需呈现CPU最低主频的可设置范围(上限值与下限值),便于用户确认合理的配置区间
评审点
1、新增CPU最低主频、CPU最低主频下限值、CPU最低主频上限值、CPU主频最小步进值的资源协作接口属性
2、Web的/UI/Rest/System/Power资源新增CPU最低主频、CPU最低主频下限值、CPU最低主频上限值、CPU主频最小步进值属性
3、Redfish的Power资源新增CPU最低主频属性
详细描述
评审点1:新增CPU最低主频、CPU最低主频下限值、CPU最低主频上限值、CPU主频最小步进值的资源协作接口属性
资源path(新增): /bmc/kepler/Systems/:SystemId/CPUFrequency
资源interface(新增): bmc.kepler.Systems.CPUFrequency.LimitPolicy
变化类型:新增对象及属性
应用场景:通过BMC配置CPU允许下调的最低主频阈值并下发给BIOS
详细描述:
不支持设置CPU最低主频的条件为MinFrequencyLowerBoundMHz或MinFrequencyUpperBoundMHz未配置或配置为65535
| 属性名称 | 变化类型 | 签名 | 读写&权限 | 持久化 | 变化通知 | 属性来源 | 默认值 | 接口说明 | 接口约束 |
|---|---|---|---|---|---|---|---|---|---|
| MinFrequencyMHz | 新增属性 | d | 读:ReadOnly 写:PowerMgmt |
掉电持久化 | true | 用户设置 | 65535 | CPU最低主频 | 不支持设置CPU最低主频时,该属性应为65535 |
| MinFrequencyLowerBoundMHz | 新增属性 | d | 读:ReadOnly | 不持久化 | false | CSR | 65535 | CPU最低主频下限值 | 不支持设置CPU最低主频时,该属性应为65535 |
| MinFrequencyUpperBoundMHz | 新增属性 | d | 读:ReadOnly | 不持久化 | false | CSR | 65535 | CPU最低主频上限值 | 不支持设置CPU最低主频时,该属性应为65535 |
| FrequencyStepMHz | 新增属性 | d | 读:ReadOnly | 不持久化 | true | BIOS获取 | 65535 | CPU主频最小步进值 | 不支持设置CPU最低主频时,该属性应为65535;支持CPU最低主频时,从BIOS获取实际值并更新 |
评审点2:Web的/UI/Rest/System/Power资源新增CPU最低主频、CPU最低主频下限值、CPU最低主频上限值、CPU主频最小步进值属性
uri(已有):https://device_ip/UI/Rest/System/Power
变化类型:新增属性
操作类型:GET/PATCH
应用场景:设置CPU最低主频
详细描述:
不支持设置CPU最低主频的条件为MinFrequencyLowerBoundMHz或MinFrequencyUpperBoundMHz未配置或配置为65535
以下属性均位于PowerLimit下,与LimitInWatts等处于同一层级
| 属性名称 | 取值类型 | 说明 | 取值范围 | 属性来源 | 操作权限 | 约束 |
|---|---|---|---|---|---|---|
| CPUMinFrequencyMHz | [number,null] | CPU最低主频 | [number,null] | CPUFrequency对象下的MinFrequencyMHz属性 | GET: ReadOnly PATCH: PowerMgmt |
不支持设置CPU最低主频时,该属性应为null |
| CPUMinFrequencyLowerBoundMHz | [number,null] | CPU最低主频下限值 | [number,null] | CPUFrequency对象下的MinFrequencyLowerBoundMHz属性 | ReadOnly | 不支持设置CPU最低主频时,该属性应为null |
| CPUMinFrequencyUpperBoundMHz | [number,null] | CPU最低主频上限值 | [number,null] | CPUFrequency对象下的MinFrequencyUpperBoundMHz属性 | ReadOnly | 不支持设置CPU最低主频时,该属性应为null |
| CPUFrequencyStepMHz | [number,null] | CPU主频最小步进值 | [number,null] | CPUFrequency对象下的FrequencyStepMHz属性 | ReadOnly | 不支持设置CPU最低主频时,该属性应为null |
示例
后端
{
"PowerLimit": {
"LimitInWatts": 9999,
"MaxLimitInWatts": 300,
"MinLimitInWatts": 78,
"LimitState": "Off",
"PowerLimitExceptionSupported": true,
"LimitExceptionAllowableValues": [
"LogEventOnly",
"NoAction"
],
"LimitException": "LogEventOnly",
"PowerCappingSupported": true,
"PowerLimitMode": null,
"CPUMinFrequencyMHz": 1500,
"CPUMinFrequencyLowerBoundMHz": 1200,
"CPUMinFrequencyUpperBoundMHz": 2000,
"CPUFrequencyStepMHz": 50
},
...
}
WEB显示
前端校验
设置的CPU最低主频超出上下限
设置的CPU最低主频不为最小步进值的倍数
其余场景均由后端校验,前端返回操作失败
评审点3:Redfish的Power资源新增CPU最低主频属性
资源uri(已有): https://device_ip/redfish/v1/Chassis/:chassisid/Power
资源版本:Power.v1_2_1
变化类型:新增属性
操作类型:GET/PATCH
应用场景:设置CPU最低主频
详细描述:
不支持设置CPU最低主频的条件为MinFrequencyLowerBoundMHz或MinFrequencyUpperBoundMHz未配置或配置为65535
| 属性名 | 类型 | 示例/取值约束 | readonly | 易变属性 | 实现PATCH | 操作权限 | 描述 |
|---|---|---|---|---|---|---|---|
| CPUMinFrequencyMHz | [number,null] | 1500,不支持设置CPU最低主频时,该属性应为null | false | 否 | 是 | GET: ReadOnly PATCH: PowerMgmt |
CPU最低主频 |
示例:
{
"PowerControl":[
{
"PowerLimit":{
"LimitInWatts":limit_value,
"LimitException":limit_exception
},
"Oem": {
"Huawei": {
"PresetLimitInWatts": 9999,
"PowerLimitExceptionSupported": true,
"CPUMinFrequencyMHz":1500,
...
}
}
}
]
}
Schema定义 :
"CPUMinFrequencyMHz": {
"type": [
"number",
"null"
],
"units": "MHz",
"readonly": false,
"description": "The minimum CPU frequency allowed during power capping. A null value indicates that the platform does not support CPU minimum frequency limiting.",
"longDescription": "The value of this property shall represent the minimum CPU frequency threshold in MHz during power capping. When the CPU frequency is reduced to this threshold or the power capping value is reached, whichever condition is met first, the frequency reduction shall stop to prevent impact on services. A null value shall indicate that the platform does not support CPU minimum frequency limiting."
}
不支持设置CPU最低主频、设置的CPU最低主频超出上下限沿用已实现的错误消息PropertyModificationNotSupported、PropertyValueOutOfRange,设置的CPU最低主频不为最小步进值的倍数已新增错误消息
【已评审】支持设置CPU最低主频的错误消息 - Interface SIG / Interface评审 - openUBMC 论坛
是否准备好AI预审
是
评审结论
已线下审视:
决策点1:同意新增CPU最低主频、CPU最低主频下限值、CPU最低主频上限值、CPU主频最小步进值的资源协作接口属性,具体如下:
path:/bmc/kepler/Systems/:SystemId/CPUFrequency
interface:bmc.kepler.Systems.CPUFrequency.LimitPolicy
变化类型:新增对象及属性
| 属性名称 | 签名 | 读写&权限 | 持久化 | 变化通知 | 属性来源 |
|---|---|---|---|---|---|
| MinFrequencyMHz | d | 读写 写:PowerMgmt 读:ReadOnly | 掉电持久化 | true | 用户设置 |
| MinFrequencyLowerBoundMHz | d | 只读 读:ReadOnly | 不持久化 | false | CSR |
| MinFrequencyUpperBoundMHz | d | 只读 读:ReadOnly | 不持久化 | false | CSR |
| FrequencyStepMHz | d | 只读 读:ReadOnly | 不持久化 | true | BIOS获取 |
决策点2:同意Web的/UI/Rest/System/Power资源新增CPU最低主频、CPU最低主频下限值、CPU最低主频上限值、CPU主频最小步进值属性,具体如下:
uri:/UI/Rest/System/Power
操作类型:GET、PATCH(仅CPUMinFrequencyMHz)
变化类型:新增属性
| 属性名称 | 取值类型 | 操作权限 | 约束 |
|---|---|---|---|
| CPUMinFrequencyMHz | [number,null] | GET:ReadOnly PATCH:PowerMgmt | 不支持设置CPU最低主频时,该属性应为null |
| CPUMinFrequencyLowerBoundMHz | [number,null] | ReadOnly | 不支持设置CPU最低主频时,该属性应为null |
| CPUMinFrequencyUpperBoundMHz | [number,null] | ReadOnly | 不支持设置CPU最低主频时,该属性应为null |
| CPUFrequencyStepMHz | [number,null] | ReadOnly | 不支持设置CPU最低主频时,该属性应为null |
决策点3:同意Redfish的Power资源新增CPU最低主频属性,具体如下:
uri:/redfish/v1/Chassis/:chassisid/Power
操作类型:GET、PATCH(仅CPUMinFrequencyMHz)
变化类型:新增属性
| 属性名称 | 取值类型 | readonly | 操作权限 | 约束 |
|---|---|---|---|---|
| CPUMinFrequencyMHz | [number,null] | false | GET:ReadOnly PATCH:PowerMgmt | 不支持设置CPU最低主频时,该属性应为null |


