• Stefy Lanza (nextime / spora )'s avatar
    thermal: engine-level CPU wait also gated on per-engine CPU relevance · c44376a9
    Stefy Lanza (nextime / spora ) authored
    Companion to the front-side fix (0.1.75): the ENGINE-level guard (wait_until_safe in
    codai/models/thermal.py) still applied the global CPU term to every engine, so a
    GPU-bound engine (radeon embeddings, ~0 CPU) kept "Cooling … CPU>78 — waiting" while
    colibri (596% CPU, dense-on-CPU) held the shared CPU above resume. It never cooled
    because the engine that was cooking it wasn't the one being made to wait.
    
    wait_until_safe now honours the CPU term (pause / join-cooldown / stay-in-cooldown /
    soft-throttle) only when THIS engine's own process tree is a real CPU-heat source
    (_self_cpu_relevant: rolling-max of read_process_tree_cpu ≥ 1.5 cores). The radeon
    engine no longer waits on colibri's CPU heat; the nvidia engine (colibri in its tree)
    still throttles itself.
    Co-Authored-By: 's avatarClaude Opus 4.8 <noreply@anthropic.com>
    Claude-Session: https://claude.ai/code/session_01LoSpEthysqmseCc6Geizty
    c44376a9
thermal.py 33.7 KB