Share CP HiCache host budget across target and draft KV
CP HiCache previously let the target host pool and the draft/MTP host pool each consume the full --hicache-size budget. With EAGLE/MTP enabled this doubled per-rank host allocation and could kill scheduler ranks during startup before Python emitted a traceback. The cache now treats target KV and draft KV as one logical host-cache object: target and draft capacities are computed from one per-rank byte budget, draft may receive more token capacity when its per-token footprint is smaller, and draft attachment remains tied to target residency. Constraint: --hicache-size is a per-rank host budget and must not be multiplied by attaching draft KV. Rejected: Give draft another independent --hicache-size allocation | repeats the observed host OOM failure mode. Rejected: Disable draft HiCache attachment under CP | avoids OOM but breaks target/draft cache-hit consistency for MTP. Confidence: medium Scope-risk: moderate Directive: Keep target and draft KV as one logical HiCache object; do not let draft host allocation consume an independent full hicache-size budget. Tested: python -m py_compile on modified scheduler/cache/test files Tested: remote g0034 container PYTHONPATH=python python -m pytest test/registered/unit/mem_cache/test_cp_hicache_metadata.py -q (45 passed) Not-tested: full multi-rank GLM5 server restart after clearing existing remote router/defunct process state Co-authored-by: OmX <omx@oh-my-codex.dev>
This commit is contained in: