主机关机后NPU传感器读值仍显示下电前的读值

问题描述

主机下电后,NPU 300I A2传感器读值仍显示下电前的读值。

NPU8 AICORE Temp (℃) 48 OK

环境信息

  • 软件版本:25.12

  • 硬件配置:NPU正常接入riser卡。

期望结果

下电后读值不显示

实际结果

实际仍有读值

% lsprop NPU_1_0101011402
bmc.kepler.Inventory.Hardware
AssetName=“NPU8-1”
AssetTag=“N/A”
AssetType=“NPU”
FirmwareVersion=“7.8.0.5.216”
ManufactureDate=“N/A”
Manufacturer=“Huawei”
Model=“Atlas_300I_A2”
PCBVersion=“N/A”
PartNumber=“N/A”
SerialNumber=“”
Slot=“8”
UUID=“”
bmc.kepler.Object.Properties
ClassName=“NPU”
ObjectIdentifier=[1,“1”,“1”,“0101011402”]
ObjectName=“NPU_1_0101011402”
TraceSamplingRate=0
bmc.kepler.Systems.Processor
Architecture=“”
Family=“N/A”
FirmwareVersion=“7.8.0.5.216”
Health=0
Id=15
InstructionSet=“”
Manufacturer=“Huawei”
Model=“Atlas_300I_A2”
Name=“NPU8-1”
PartNumber=“Unknown”
Position=“PCIe Card 8 (NPU)”
Presence=1
ProcessorType=“”
Replaceable=false
SN=“”
SocketDesignation=“”
SystemId=1
ThermalTrip=0
bmc.kepler.Systems.Processor.NPU
AiCPUUsagePercent=0
AiCoreCurrentSpeedMHz=0
AiCoreMaxSpeedMHz=0
AiCoreTemp=48
AiCoreUsagePercent=0
BDF=“”
CapabilitySupportMask=0
ComputeCapability=“”
CtrlCPUUsagePercent=0
DiagnosticFault=0
DriverVersion=“”
ECCAlarmStatus=0
FaultCode=“”
FlashIds=
HBMBWUsagePercent=0
HBMMultiBitIsolatedPages=0
HBMSingleBitIsolatedPages=0
HBMTemp=49
HBMUsagePercent=0
IErrFlag=0
Ierr=0
Location=“”
MemBWUsagePercent=0
MemUsagePercent=0
MemoryBandWidth=0
MemoryCapacityKiB=0
MemoryFreeKiB=0
MemoryUsageKiB=0
MultiBitEcc=“{“Count”:0,“AggregateTotalCount”:0,“Info”:null}”
NimBusTemp=50
Power=792
PowerCapWatts=0
PowerCapacityWatts=0
PowerConsumedWatts=792
PowerOn=1
PowerState=“On”
PredictiveFault=0
ReadingCelsius=41
RootBDF=“”
SingleBitEcc=“{“Count”:0,“AggregateTotalCount”:0,“Info”:null}”
Slot=8
TotalCores=0
TotalMemoryKiB=0
VRDChipTemp=53
VendorID=0
Version=“”
Volt=0

尝试过的解决方案

尝试通过扩展板的powergoog进行判断,但是读值是有问题的。

1、有什么方法可以在NPU的sr文件做整机上下电状态检查吗?

答案内容由AI生成,仅供参考:
4. 结论与建议

  • 该问题是已知问题,OpenUBMC 社区(topic 4184)已承认并同意修改方案。
  • 推荐方案:在传感器显示逻辑(可能涉及 SR 文件或相关组件)中,对仅在上电时可获取的传感器增加电源状态判断。当系统处于下电状态时,这些传感器的读值应统一显示为 --(或其他无效标识),而不是保留下电前的旧值。
  • 社区表示支持,您可以直接参考 topic 4184 中的讨论进行修改,或向社区提交补丁。

注意:上下文中未包含在 SR 文件中实现上下电状态检查的具体代码或配置方法。如需详细技术实现,建议查阅 OpenUBMC 的 SR 文件指南或社区相关代码示例(如上文提到的 ReadingStatus 计算逻辑可作参考)。

点击此处查看详细分析解答

根据提供的上下文信息,您所描述的问题——主机关机后 NPU 300I A2 传感器读值仍显示下电前的值(例如 NPU8 AICORE Temp 显示 48)——在 OpenUBMC 社区中已有相关讨论。以下是基于上下文的综合分析及建议。


1. 社区已知问题与讨论

在文档块 [2](topic 4184)中,用户 liujie_11 提出了相同现象:

OS下电后,同一款NPU的传感器读值表现不同:… 理想情况下,下电时这些传感器的读值和状态应该都是“–”吧。
我们希望将这种显示做到统一规范,否则在产测和客户那边都会造成影响,我们想在传感器状态处增加上电状态的判断

  • 回复者 aliens_to_mars(最佳答案)明确建议:

    对于只能上电获取的值,下电应该设置为 --,这种方式应该比较合理。

  • 另一位回复者 Longbow 也表示支持:

    评估无其他影响后,进行相应修改,我觉得是可以的。

因此,社区对该问题的共识是:通过增加上电状态判断,在下电后将非持续性传感器(仅在上电时可获取的值)显示为 --(无效状态)


2. 关于在 NPU 的 SR 文件中实现整机上下电状态检查

您询问是否有方法在 NPU 的 SR 文件中进行整机上下电状态检查。从上下文来看:

  • 关系数据中描述了 NPU 具备 PowerState 属性,该属性指示 NPU 的当前开关状态,用于电源控制。
    例如:PowerState="On" 出现在您提供的属性列表中。
  • 实体 Power-Off State 指出:下电影响传感器值保留,且 NPU4、NPU5、NPU6 均出现下电后值不一致的问题,表明这是多款 NPU 卡共有的行为。
  • SR 文件(如 Atlas 300I A2 的 SR 文件)定义了设备属性与系统配置结构。虽然上下文中未直接给出在 SR 文件中编写上下电检查逻辑的具体语法或示例,但社区讨论已明确思路:在传感器状态逻辑中引入 PowerState(或系统电源状态)作为条件判断

具体实现方向可参考:

  • 利用已存在的 PowerStatePowerOn 属性(下电后 PowerState 应为 “Off” 或 PowerOn 变为 0)。
  • 参考 [4] 中关于 ReadingStatus 的描述:该属性是一个计算状态,可基于电源状态、温度等输入条件动态变化。可类比此类机制,为 NPU 传感器扩展一个类似的状态字段,当下电时强制返回“无效”或“–”。

3. 针对您尝试过的 powergood 方法

您提到尝试通过扩展板的 powergood 进行判断但读值存在问题。结合上下文:

  • 搜索结果 [4] 中提及:下电后 PCIe 卡可能先下电,导致温度获取异常,而 powergood 信号可能时机不准确。
  • 社区提倡的“增加上电状态判断”方法更为直接可靠,因为 BMC 可准确感知系统的电源状态(通过 power_mgmt 组件与 PowerState 属性),不需要依赖板级 powergood 信号。

4. 结论与建议

  • 该问题是已知问题,OpenUBMC 社区(topic 4184)已承认并同意修改方案。
  • 推荐方案:在传感器显示逻辑(可能涉及 SR 文件或相关组件)中,对仅在上电时可获取的传感器增加电源状态判断。当系统处于下电状态时,这些传感器的读值应统一显示为 --(或其他无效标识),而不是保留下电前的旧值。
  • 社区表示支持,您可以直接参考 topic 4184 中的讨论进行修改,或向社区提交补丁。

注意:上下文中未包含在 SR 文件中实现上下电状态检查的具体代码或配置方法。如需详细技术实现,建议查阅 OpenUBMC 的 SR 文件指南或社区相关代码示例(如上文提到的 ReadingStatus 计算逻辑可作参考)。

使用最新sdk已解决

请问一下这个SDK具体的版本是多少?对应的是openUBMC发布的哪个版本?

现在问题解决了吗