背景
针对现有数据中心节能方案中忽略Uncore高能耗,导致空闲态节能效果不足的痛点,客户诉求新建BMC侧IPMI接口以实现CPU Uncore频率的精准控制。该功能旨在让运维人员直接通过IPMI查询/设置频率,自动在空闲态触发降频,从而降低系统功耗10%+,显著节省电费并加速PUE合规达标。
关联ISSUE
暂无
评审点
1.支持IPMI查询CPU的Uncore频率
2.支持IPMI设置CPU的Uncore频率
评审点1:IPMI新增查询CPU的Uncore频率
命令名称: GetCoreUncoreFreq
命令说明: BMC运行正常,BIOS版本支持情景下,支持查询CPU的Uncore频率
命令权限: ReadOnly
是否锁定之后可以访问: 是
是否有敏感数据: 否
命令样式:
- 请求:ipmitool raw 0x30 0x92 0xdb 0x07 0x00 0x72 <cpu_id> <core_type>
- 响应:
命令请求参数:
| 字节顺序 | 域取值说明 |
|---|---|
| NetFn | 30h |
| Cmd | 92h |
| 1:3 | Manufacturer ID,LB Byte first。长度固定 3 个字节,例如,某厂家ID时 2011,对应十六进制为0x0007DB,则字节序为第1个字节为 DBh,第二个字节为 07h,第三个字节为 00h。 |
| 4 | SubCmd,子命令 = 72h |
| 5 | Cpu Id |
| 6 | Core Type,0为Core,1为Uncore |
| 7:8 | 核Id偏移量,从第几个核id开始查。LSB,0x01 0x00 表示1,uncore固定为0x00 0x00 |
| 9 | Required Data Length,需要查找的id个数,Uncore固定为1 |
命令响应参数:
| 字节顺序 | 域取值说明 |
|---|---|
| 1 | Completion Code,所有的完成码则需要单独和详细说明,比如: |
| 00h = Command Completed Normally | |
| D5h = Invalid Status | |
| 2:4 | Manufacturer ID,LB Byte first。长度固定 3 个字节,例如,某厂家ID时 2011,对应十六进制为0x0007DB,则字节序为第1个字节为 DBh,第二个字节为 07h,第三个字节为 00h。 |
| 5 | 调频粒度的整数部分,如50M,则此处为50 |
| 6 | 调频粒度的小数部分,如50M,则此处为0 |
| 7 | Flag,结束符,表示当前是否会返回最后一个核Id的数据。 [7:1]: reserved. [0]: End of list. 0= last data. 1 = middle data. Uncore查询固定返回0 |
| 8:N | Freq[],频率数组 |
命令示例: 使用 ipmitool 说明命令的示例,示例需要明确命令的参数和使用方法(注意敏感数据进行脱敏处理)。举例如下(正式评审中按需替换示例):
样例1: 对cpu1的uncore频率查询
- 请求:
ipmitool raw 0x30 0x92 0xdb 0x07 0x00 0x72 0x01 0x01 0x00 0x00 0x01 - 响应:
db 07 00 32 00 00 14
评审点2:IPMI新增设置CPU的Uncore频率
命令名称: SetCoreUncoreFreq
命令说明: BMC运行正常,BIOS版本支持情景下,支持设置CPU的Uncore频率
命令权限: PowerMgmt
是否锁定之后可以访问: 是
是否有敏感数据: 否
命令样式:
- 请求:ipmitool raw 0x30 0x92 0xdb 0x07 0x00 0x73 <cpu_id> <core_type>
- 响应:
命令请求参数:
| 字节顺序 | 域取值说明 |
|---|---|
| NetFn | 30h |
| Cmd | 92h |
| 1:3 | Manufacturer ID,LB Byte first。长度固定 3 个字节,例如,某厂家ID时 2011,对应十六进制为0x0007DB,则字节序为第1个字节为 DBh,第二个字节为 07h,第三个字节为 00h。 |
| 4 | SubCmd,子命令 = 73h |
| 5 | Cpu Id |
| 6 | Core Type,0为Core,1为Uncore |
| 7:8 | Id, 核Id,0xffff表示全部设置,指定值表示设置指定的单个核频率 |
| 9 | Freq,频率值,Uncore步长默认为50MHz |
命令响应参数:
| 字节顺序 | 域取值说明 |
|---|---|
| 1 | Completion Code,所有的完成码则需要单独和详细说明,比如: |
| 00h = Command Completed Normally | |
| D5h = Invalid Status | |
| 2:4 | Manufacturer ID,LB Byte first。长度固定 3 个字节,例如,某厂家ID时 2011,对应十六进制为0x0007DB,则字节序为第1个字节为 DBh,第二个字节为 07h,第三个字节为 00h。 |
命令示例: 使用 ipmitool 说明命令的示例,示例需要明确命令的参数和使用方法(注意敏感数据进行脱敏处理)。举例如下(正式评审中按需替换示例):
样例1: 对cpu1的uncore频率设置
- 请求:
ipmitool raw 0x30 0x92 0xdb 0x07 0x00 0x73 0x01 0x01 0xff 0xff 0x14 - 响应:
db 07 00 00
是否准备好AI预审
否