【待评审】新增IPMI查询、设置CPU的Uncore频率

背景

针对现有数据中心节能方案中忽略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预审

评审结论

遗留问题