NPU卡Chip 1温度传感器显示异常问题分析
更新时间: 2026/05/28
在Gitcode上查看源码

问题背景

  • 单板类型:NA;
  • 软件版本:NA;
  • 涉及功能:传感器;
  • 触发条件:更改在位状态和电源状态概率触发;注册阶段概率触发。
  • 业务表现:预期传感器正常显示;实际部分传感器概率显示no reading。

问题复现步骤

设备持续做power cycle的操作,跑到105圈的时候,发现PCIe5 Chip 1的温度传感器无读值,PCIe5 设备为Atlas 300 IDUO的NPU卡。

关键日志信息

传感器异常截图:

定位过程

  1. 通过查看文件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)"
    },
  2. 查看NPUCard的信息,Core0TemperatureCelsius和Core1TemperatureCelsius的读值都是存在的。

  3. 查看传感器的读值,Reading值也是存在的,但是 ReadingDisplay值为-1.存在异常。

  4. 尝试修改PCIe5 Chip1 的ReadingDisplay的值为80,PCIe5 Chip1 Temp传感器的值在WEB上还是无显示。

  5. 尝试修改PCIe5 Chip0 的ReadingDisplay的值为80,PCIe5 Chip0 Temp传感器的值在WEB上可以更新。

问题原因

  1. Entity的下电和不在位都会导致传感器禁用,但在此基础上,进行上电会导致传感器又使能,因为没有检测是否在位,所以导致查询预期是禁用,结果变成了NoReading。
  2. 传感器与Entity的注册存在时序问题,也会导致传感器的匹配概率出现问题。

解决方案

  1. 修改成,Entity上电或者在位时,要检测另一个值,因为上电和在位同时满足才应该使能。
  2. 优化为Entity的一个Position注册完再注册对应的Sensor。