问题描述
热设计修改Cpu调速目标值,根据环境模式修改为OriginSmartCoolingTargetTemperature 属性中的60 70 80,但实际生效的目标值为修改前的85,75,85
为什么会修改不成功,还需要什么特殊配置吗
热设计修改Cpu调速目标值,根据环境模式修改为OriginSmartCoolingTargetTemperature 属性中的60 70 80,但实际生效的目标值为修改前的85,75,85
为什么会修改不成功,还需要什么特殊配置吗
答案内容由AI生成,仅供参考:
| 项目 | 说明 |
|---|---|
OriginSmartCoolingTargetTemperature 只是原始校验基准,不能自动更新运行时配置 |
|
必须通过配置导入、Redfish API 或 SR 文件修改等方式显式更新 SmartCoolingTargetTemperature |
|
| 是的,通常需要管理员权限或具备配置导入能力 | |
| 是,通过 SR 或配置导入的方式修改后具有持久性 |
建议流程:
- 更新
OriginSmartCoolingTargetTemperature作为安全基准;- 再执行配置导入,将
SmartCoolingTargetTemperature显式设置为新值;- 重启冷却服务或整机以确保加载新策略。
根据您提供的问题描述和系统配置信息,当前 CPU 目标调速值未按预期更新为 OriginSmartCoolingTargetTemperature 中的 [60, 70, 80],而仍然沿用旧值 [85, 75, 85]。以下是对该问题的全面分析和解决建议。
SmartCoolingTargetTemperature 未同步 OriginSmartCoolingTargetTemperatureSmartCoolingTargetTemperature = [85, 75, 85]
SmartCoolingTargetTemperatureCelsius = [85, 75, 85]
OriginSmartCoolingTargetTemperature = [60, 70, 80]
尽管您已将 原始智能冷却目标温度 更新为 [60, 70, 80],但 当前运行中的智能冷却策略仍使用旧值,说明配置未生效。
OriginSmartCoolingTargetTemperature 是校验基准值,不是自动生效值OriginSmartCoolingTargetTemperature 是 出厂预设或配置导入时的原始参考值,用于:
SmartCoolingTargetTemperature 的运行时配置。“OriginSmartCoolingTargetTemperature为原始默认的智能调速阈值,该阈值会在导入SmartCoolingTargetTemperatureCelsius进行校验,新设置的值不能超过该值”
SmartCoolingTargetTemperature 必须通过显式配置操作更新OriginSmartCoolingTargetTemperature 已更改,运行中的 SmartCoolingTargetTemperature 必须通过以下方式之一手动更新:
[85, 75, 85]
参考用户 “wwhh” 在对话中的说明:
“SmartCoolingTargetTemperatureCelsius 可通过配置导入进行修改;OriginSmartCoolingTargetTemperature 为原始默认的智能调速阈值,该阈值会在导入 SmartCoolingTargetTemperatureCelsius 时进行校验,新设置的值不能超过该值”
SmartCoolingTargetTemperatureCelsius 新值 ≤ OriginSmartCoolingTargetTemperature 对应值?
Origin 值变小了,而运行值更大 → 不违反校验规则,因此不会阻止旧值继续使用。要让新的 CPU 调速目标值 [60, 70, 80] 生效,必须显式更新 SmartCoolingTargetTemperature 配置。以下是几种可行方式:
{
"SmartCoolingTargetTemperature": [60, 70, 80],
"TargetTemperatureCelsius": 60
}
OriginSmartCoolingTargetTemperature(此处相等,合法),并通过。SmartCoolingTargetTemperature 将被更新并生效。
优点:支持校验、安全、可审计
注意:部分版本中需确保
CustomSupported=true
如果系统开放了 Redfish 接口,可通过 PATCH 请求更新:
PATCH /redfish/v1/Chassis/1/ThermalMetrics
{
"Oem": {
"openUBMC": {
"FanSpeedCustom": {
"CPUTargetTemperatureCelsius": 60
}
}
}
}
注意:若值不在允许范围内(如 <50 或 >80),会返回
PropertyValueOutOfRange错误。
.sr 配置文件(如 CoolingRequirement_1_20.sr)。SmartCoolingTargetTemperature = [60, 70, 80];
适用于固件级长期生效
需要权限和构建环境
%sprop CoolingRequirement_1_20_010101
确认输出中:
SmartCoolingTargetTemperature = [60, 70, 80]
SmartCoolingTargetTemperatureCelsius = [60, 70, 80]
cooling_control.log搜索关键词:
ReqId:20 ... TarT:60
表示目标温度已更新为 60°C(节能模式)。
| 项目 | 说明 |
|---|---|
OriginSmartCoolingTargetTemperature 只是原始校验基准,不能自动更新运行时配置 |
|
必须通过配置导入、Redfish API 或 SR 文件修改等方式显式更新 SmartCoolingTargetTemperature |
|
| 是的,通常需要管理员权限或具备配置导入能力 | |
| 是,通过 SR 或配置导入的方式修改后具有持久性 |
建议流程:
- 更新
OriginSmartCoolingTargetTemperature作为安全基准;- 再执行配置导入,将
SmartCoolingTargetTemperature显式设置为新值;- 重启冷却服务或整机以确保加载新策略。
如有更多上下文(如具体使用的 BMC 工具链或 Redfish 版本),可进一步提供精准操作命令。
85,75,85被持久化了
cd /data/trust/persistence
sqlite3 per_poweroff.db
select * from persist_table where table_name = ‘t_cooling_requirement’;
排查是否是做了配置导入导出或其他命令导致了持久化
还是代码有bug:
删除表后做下AC,bmc重启,升级等,再查询数据库看是否表t_cooling_requirement中有值
需要修改的数组不是OriginSmartCoolingTargetTemperature,而是SmartCoolingTargetTemperature
Origin在代码内部维护的,私有的咋个修改
哪个命令删的表
DELETE FROM persist_table WHERE table_name = ‘t_cooling_requirement’;
SmartCoolingTargetTemperatureCelsius为什么会为掉电持久化数据有什么历史背景吗,如果热设计变动了目标值客户的机器怎么修改
理论上出厂后数据值就应该保持不变,若需要,则通过配置导入进行对应的修改,并且通过配置导入修改的策略需支持自定义,否则无法修改。
你意思是执行了删除这个命令,再查询是空的,重启BMC,Smart这个又默认被持久化了,而且无法升级csr去改变?
是的
有什么历史背景吗,如果热设计想变动目标值没有办法修改是不是不太合理
无明确历史背景,设计之初考虑同一款机型不涉及后续变更,若需变更,则出厂时配套对应SR
你意思是执行了删除这个命令,再查询是空的,重启BMC,Smart这个又默认被持久化了,而且无法升级csr去改变?
@KunLun_lixiangyu 如果是这个现象,那是一个涉及数据库的很严重的问题,你确定没理解错吧。附下操作流程和截图呢
持久化类型数据是只有在数据变化才会写进数据库,SmartCoolingTargetTemperatureCelsius这个数据运行代码中只会读,不会设置,理应不被持久化,只在配置导入等调用了设置接口且存在属性变化才会写进数据库
csr普遍配置的是SmartCoolingTargetTemperature
初次代码都会走到图1的else,进行写操作赋值,就会写进数据库
升级csr改变的是SmartCoolingTargetTemperature
空白环境->SmartCoolingTargetTemperatureCelsius被写入,持久化–>更改SmartCoolingTargetTemperature后升级–>SmartCoolingTargetTemperature=数据库的SmartCoolingTargetTemperatureCelsius
影响:无法通过修改SmartCoolingTargetTemperature或SmartCoolingTargetTemperatureCelsius来配置Smart数组,只能通过配置导入导出来修改
已提issue