oxidecomputer / oxidecomputer/hubris

Thermal control loop should treat powered removable devices differently from unpowered

Open
#900 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

product thermal 🚫🔥🚫
Dominant language
Rust
Stars
3.6k
Forks
239
Avg merge
1d 12h
Merged PRs (30d)
23

Description

Currently, once the thermal control loop has observed a temperature sensor once, if it later fails to get a new reading from that sensor, it will model its thermal excursion using a linear model.

This does not kick in for devices marked removable, where -- if the temperature sensor fails to read because the device failed to ACK at the I2C level, resulting in a DeviceNotFound -- the device is assumed to be unpowered/removed.

This is probably not right, since it's entirely plausible for a U.2 device (say) to be simultaneously on fire and not ACKing. We probably want to use the status of the hotplug controller to determine which things are potentially on fire, and treat them as essentially "nonremovable" while power is on. This is very similar to how we handle M.2 devices.

cc @rmustacc @mkeeter

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Trace the thermal control loop's handling of failed temperature reads and DeviceNotFound, then compare its removable-device logic with the existing M.2 handling and hotplug-controller status. Done means powered removable devices continue to receive thermal-excursion modeling when sensors stop ACKing, while genuinely unpowered or removed devices retain their current behavior.

Written by the indexing model from the issue text.

Assessment

Tech stack
rust
Domain
embedded-iot, operating-systems
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.