Prhub

#25718 Stop returning the unused prefix-computed flag from priority calc

原始 PR 作者 fzyzcjy 合并时间 2026-05-19 09:20 文件变更 1 提交数 1 评论 1 代码增减 +2 / -5

执行摘要

移除 calc_priority 无用的 bool 返回值

所有生产调用方(scheduler、dllm mixin、disagg decode)和唯一测试调用方都丢弃了 calc_priority 的布尔返回值,因此 prefix_computed 局部变量及相关 bookkeeping 是死代码。删除它们以减少维护负担和代码复杂度。

建议合入。该 PR 是简单的死代码清理,没有风险。对于关注代码整洁度和模块精简的工程师,可以借此回顾调度优先级计算模块的整体设计。

讨论亮点

无 review 讨论。该 PR 只包含一个 commit,无 review 评论,变更简单直接,属于机械性死代码删除。

实现拆解

  1. 修改方法签名:将 calc_priority 的返回类型注解从 -> bool 改为 -> None
  2. 移除局部变量:删除 prefix_computed = False 声明及其赋值(在 CacheAwarePolicy 分支中设为 True)。
  3. 移除 return 语句:删除最后的 return prefix_computed,并在 FCFS 分支中将 return False 改为不带值的 return
  4. 调整分支结构:由于不再需要维护 prefix_computedisinstance 分支中的 prefix_computed = True 被删除,分支结构保持原样。
文件 模块 状态 重要度
python/sglang/srt/managers/schedule_policy.py 调度器 modified 4.43

关键符号

calc_priority

关键源码片段

python/sglang/srt/managers/schedule_policy.py core-logic

唯一变更文件,核心调度策略类 `SchedulePolicy` 的方法 `calc_priority` 移除了无用返回值。

def calc_priority(
    self, waiting_queue: List[Req], running_batch: Optional[ScheduleBatch] = None
) -> None:
    # 原先返回 bool 但所有调用方均未使用,故改为 None
    if self.policy == CacheAgnosticPolicy.FCFS:
        if self.enable_priority_scheduling:
            SchedulePolicy._sort_by_priority_and_fcfs(
                waiting_queue, self.priority_sign
            )
        return # 原为 return False,现改为无值 return
​
    policy = self._determine_active_policy(waiting_queue)
​
    # 移除了 prefix_computed 局部变量及其赋值
    if isinstance(policy, CacheAwarePolicy):
        # prefix_computed = True 已删除
        temporary_deprioritized = self._compute_prefix_matches(
            waiting_queue, policy
        )
        if policy == CacheAwarePolicy.LPM:
            SchedulePolicy._sort_by_longest_prefix(
                waiting_queue, temporary_deprioritized
            )
        elif policy == CacheAwarePolicy.DFS_WEIGHT:
            SchedulePolicy._sort_by_dfs_weight(waiting_queue, self.tree_cache)
        else:
            raise ValueError(f"Unknown CacheAware Policy: {policy=}")
    else:
        # ... CacheAgnosticPolicy 各分支省略,无变动
        pass
    # 原 return prefix_computed 已删除

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

风险极低。该变更仅删除未使用的返回值和相关局部变量,不改变任何逻辑行为。所有调用方(scheduler、dllm mixin、disagg decode 及测试)均忽略原返回值,因此去除后不影响运行时行为。无回归或兼容性风险。

影响范围极小,仅涉及 python/sglang/srt/managers/schedule_policy.py 这一文件,变更量为 +2/-5。对用户无感知,对系统功能无影响,对团队维护有利(减少死代码)。

低风险变更

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论