Context
PR #1741 auto-injects the saturation detector as a scheduling filter into all profiles when the detector implements fwksched.Filter. This fixes the single-profile case where explicit profiles omitted the filter, causing hotspotting.
However, injectFilterIntoProfiles injects into every profile with no opt-out. For disaggregated inference setups using disagg-profile-handler or pd-profile-handler, there are separate decode, prefill, and encode profiles that may need different saturation filtering behavior (e.g., filter on decode but not prefill, or different thresholds per profile).
Proposed solution
Add a per-profile opt-out mechanism, similar to ensureDataLayer's InjectDefaults escape hatch. A profile that explicitly excludes the saturation filter should not have it re-injected.
References
Context
PR #1741 auto-injects the saturation detector as a scheduling filter into all profiles when the detector implements
fwksched.Filter. This fixes the single-profile case where explicit profiles omitted the filter, causing hotspotting.However,
injectFilterIntoProfilesinjects into every profile with no opt-out. For disaggregated inference setups usingdisagg-profile-handlerorpd-profile-handler, there are separate decode, prefill, and encode profiles that may need different saturation filtering behavior (e.g., filter on decode but not prefill, or different thresholds per profile).Proposed solution
Add a per-profile opt-out mechanism, similar to
ensureDataLayer'sInjectDefaultsescape hatch. A profile that explicitly excludes the saturation filter should not have it re-injected.References
injectFilterIntoProfilesinpkg/epp/config/loader/defaults.godisagg-profile-handlerinpkg/epp/framework/plugins/scheduling/profilehandler/disagg/