NPU卡Chip 1温度传感器显示异常问题分析
更新时间: 2026/05/28
在Gitcode上查看源码问题背景
- 单板类型:NA;
- 软件版本:NA;
- 涉及功能:传感器;
- 触发条件:更改在位状态和电源状态概率触发;注册阶段概率触发。
- 业务表现:预期传感器正常显示;实际部分传感器概率显示no reading。
问题复现步骤
设备持续做power cycle的操作,跑到105圈的时候,发现PCIe5 Chip 1的温度传感器无读值,PCIe5 设备为Atlas 300 IDUO的NPU卡。
关键日志信息
传感器异常截图:
定位过程
通过查看文件vpd\vendor\Huawei\Gpu\14140130_19e5d500_02000110.sr,NPU的CHIP温度传感器定义,温度从NPUCard_1.Core1TemperatureCelsius获取。
json"ThresholdSensor_GPUAICore1Temp": { "OwnerId": 32, "OwnerLun": 0, "EntityId": "<=/Entity_GPUCard.Id", "EntityInstance": "<=/Entity_GPUCard.Instance", "Initialization": 127, "Capabilities": 104, "SensorType": 1, "ReadingType": 1, "SensorName": "PCIe${Slot} Chip1 Temp", "AssertMask": 0, "DeassertMask": 0, "ReadingMask": 2056, "UpperNoncritical": 105, "PositiveHysteresis": 2, "NegativeHysteresis": 2, "Unit": 128, "BaseUnit": 1, "ModifierUnit": 0, "Linearization": 0, "M": 1, "RBExp": 0, "Analog": 1, "NominalReading": 25, "NormalMaximum": 0, "NormalMinimum": 0, "MaximumReading": 127, "MinimumReading": 128, "Reading": "<=/NPUCard_1.Core1TemperatureCelsius", "ReadingStatus": "<=/NPUCard_1.Core1TemperatureCelsius |> expr($1 >= 255 ? 1 : 0)" },查看NPUCard的信息,Core0TemperatureCelsius和Core1TemperatureCelsius的读值都是存在的。
查看传感器的读值,Reading值也是存在的,但是 ReadingDisplay值为-1.存在异常。
尝试修改PCIe5 Chip1 的ReadingDisplay的值为80,PCIe5 Chip1 Temp传感器的值在WEB上还是无显示。
尝试修改PCIe5 Chip0 的ReadingDisplay的值为80,PCIe5 Chip0 Temp传感器的值在WEB上可以更新。
问题原因
- Entity的下电和不在位都会导致传感器禁用,但在此基础上,进行上电会导致传感器又使能,因为没有检测是否在位,所以导致查询预期是禁用,结果变成了NoReading。
- 传感器与Entity的注册存在时序问题,也会导致传感器的匹配概率出现问题。
解决方案
- 修改成,Entity上电或者在位时,要检测另一个值,因为上电和在位同时满足才应该使能。
- 优化为Entity的一个Position注册完再注册对应的Sensor。