From b755d32276a4934690e9e6f6f5824888245d582f Mon Sep 17 00:00:00 2001 From: Daniel Koepping Date: Fri, 7 Aug 2026 19:38:13 -0700 Subject: [PATCH] fix telemetry hanging big model (#38565) * modeld: fail fast when the gpu hangs mid run * modeld: harden chestnut telemetry * selfdrived: rm the big model lagging trigger --- openpilot/selfdrive/modeld/modeld.py | 49 ++++++++++++-------- openpilot/selfdrive/selfdrived/selfdrived.py | 3 -- 2 files changed, 29 insertions(+), 23 deletions(-) diff --git a/openpilot/selfdrive/modeld/modeld.py b/openpilot/selfdrive/modeld/modeld.py index 92cb9e086..be08c9c4c 100755 --- a/openpilot/selfdrive/modeld/modeld.py +++ b/openpilot/selfdrive/modeld/modeld.py @@ -77,31 +77,38 @@ class ChestnutState: @cached_property def power_limit(self) -> int: smu = Device["AMD"].iface.dev_impl.smu - return smu._send_msg(smu.smu_mod.PPSMC_MSG_GetPptLimit, 0, read_back_arg=True) + return smu._send_msg(smu.smu_mod.PPSMC_MSG_GetPptLimit, 0, read_back_arg=True, timeout=100) def send(self) -> None: msg = messaging.new_message('chestnutState') state = msg.chestnutState - try: - smu = Device["AMD"].iface.dev_impl.smu - metrics = smu.read_table(smu.smu_mod.SmuMetricsExternal_t, smu.smu_mod.TABLE_SMU_METRICS).SmuMetrics - state.tempC = metrics.AvgTemperature[smu.smu_mod.TEMP_HOTSPOT] - state.memoryTempC = metrics.AvgTemperature[smu.smu_mod.TEMP_MEM] - state.powerDrawW = metrics.AverageSocketPower - state.powerLimitW = self.power_limit - state.gpuUsagePercent = metrics.AverageGfxActivity - state.gpuClockMhz = metrics.AverageGfxclkFrequencyPostDs - state.fanSpeedRpm = metrics.AvgFanRpm - asm = Device["AMD"].iface.pci_dev.usb - state.pcieLtssm = asm.read(0xB450, 1)[0] - state.supplyVoltage, state.supplyCurrent = struct.unpack('