oxidecomputer / oxidecomputer/hubris
Thermal control loop should treat powered removable devices differently from unpowered
Nobody has claimed this yet.
- 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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