[Misc] Remove old now unsupported `max_num_partial_prefills` and `max_long_partial_prefills` (#49244)

Signed-off-by: NickLucche <nicolo.lucchesi@mistral.ai>

Nicolò Lucchesi committed Jul 21, 2026 at 10:52 UTC 7a98c7a392222d0073e8e15bbfa05cf03d7d8fb6
3 files changed +4 -60
tests/lora/test_worker.py
-1
@@ -66,7 +66,6 @@ def test_worker_apply_lora(qwen3_lora_files):
66 runner_type="generate",
67 max_num_batched_tokens=32,
68 max_num_seqs=32,
69 - max_num_partial_prefills=32,
69 ),
70 device_config=DeviceConfig(DEVICE_TYPE),
71 cache_config=CacheConfig(
vllm/config/scheduler.py
+4 -40
@@ -67,16 +67,6 @@ class SchedulerConfig:
67 In real usage, this should be set in `EngineArgs.create_engine_config`.
68 """
69
70 - max_num_partial_prefills: int = Field(default=1, ge=1)
71 - """For chunked prefill, the maximum number of sequences that can be
72 - partially prefilled concurrently."""
73 -
74 - max_long_partial_prefills: int = Field(default=1, ge=1)
75 - """For chunked prefill, the maximum number of prompts longer than
76 - long_prefill_token_threshold that will be prefilled concurrently. Setting
77 - this less than max_num_partial_prefills will allow shorter prompts to jump
78 - the queue in front of longer prompts in some cases, improving latency."""
79 -
70 long_prefill_token_threshold: int = Field(default=0, ge=0)
71 """For chunked prefill, a request is considered long if the prompt is
72 longer than this number of tokens. 0 disables the cap (default)."""
@@ -254,19 +244,6 @@ class SchedulerConfig:
244 self.max_num_batched_tokens,
245 )
246
257 - if self.max_num_partial_prefills > 1:
258 - if self.long_prefill_token_threshold == 0:
259 - self.long_prefill_token_threshold = int(max_model_len * 0.04)
260 -
261 - logger.info(
262 - "Concurrent partial prefills enabled with "
263 - "max_num_partial_prefills=%d, max_long_partial_prefills=%d, "
264 - "long_prefill_token_threshold=%d",
265 - self.max_num_partial_prefills,
266 - self.max_long_partial_prefills,
267 - self.long_prefill_token_threshold,
268 - )
269 -
247 self.verify_max_model_len(max_model_len)
248
249 def verify_max_model_len(self, max_model_len: int) -> Self:
@@ -298,24 +275,11 @@ class SchedulerConfig:
275 self.max_num_seqs * max_model_len,
276 )
277
301 - if self.max_num_partial_prefills > 1:
302 - if not self.enable_chunked_prefill:
303 - raise ValueError(
304 - "Chunked prefill must be enabled to set "
305 - "max_num_partial_prefills > 1."
306 - )
307 -
308 - if self.long_prefill_token_threshold > max_model_len:
309 - raise ValueError(
310 - "long_prefill_token_threshold "
311 - f"({self.long_prefill_token_threshold}) cannot be greater "
312 - f"than the max_model_len ({max_model_len})."
313 - )
314 -
315 - if self.max_long_partial_prefills > self.max_num_partial_prefills:
278 + if self.long_prefill_token_threshold > max_model_len:
279 raise ValueError(
317 - f"{self.max_long_partial_prefills=} must be less than or equal to "
318 - f"{self.max_num_partial_prefills=}."
280 + "long_prefill_token_threshold "
281 + f"({self.long_prefill_token_threshold}) cannot be greater "
282 + f"than the max_model_len ({max_model_len})."
283 )
284
285 return self
vllm/engine/arg_utils.py
-19
@@ -527,8 +527,6 @@ class EngineArgs:
527 kv_cache_memory_bytes: int | None = CacheConfig.kv_cache_memory_bytes
528 max_num_batched_tokens: int | None = None
529 max_num_scheduled_tokens: int | None = None
530 - max_num_partial_prefills: int = SchedulerConfig.max_num_partial_prefills
531 - max_long_partial_prefills: int = SchedulerConfig.max_long_partial_prefills
530 long_prefill_token_threshold: int = SchedulerConfig.long_prefill_token_threshold
531 max_num_seqs: int | None = None
532 max_logprobs: int = ModelConfig.max_logprobs
@@ -1440,13 +1438,6 @@ class EngineArgs:
1438 "default": None,
1439 },
1440 )
1443 - scheduler_group.add_argument(
1444 - "--max-num-partial-prefills", **scheduler_kwargs["max_num_partial_prefills"]
1445 - )
1446 - scheduler_group.add_argument(
1447 - "--max-long-partial-prefills",
1448 - **scheduler_kwargs["max_long_partial_prefills"],
1449 - )
1441 scheduler_group.add_argument(
1442 "--long-prefill-token-threshold",
1443 **scheduler_kwargs["long_prefill_token_threshold"],
@@ -2190,8 +2181,6 @@ class EngineArgs:
2181 is_encoder_decoder=model_config.is_encoder_decoder,
2182 policy=self.scheduling_policy,
2183 scheduler_cls=self.scheduler_cls,
2193 - max_num_partial_prefills=self.max_num_partial_prefills,
2194 - max_long_partial_prefills=self.max_long_partial_prefills,
2184 long_prefill_token_threshold=self.long_prefill_token_threshold,
2185 scheduler_reserve_full_isl=self.scheduler_reserve_full_isl,
2186 watermark=self.watermark,
@@ -2402,14 +2391,6 @@ class EngineArgs:
2391
2392 def _check_feature_supported(self):
2393 """Raise an error if the feature is not supported."""
2405 - # No Concurrent Partial Prefills so far.
2406 - if (
2407 - self.max_num_partial_prefills != SchedulerConfig.max_num_partial_prefills
2408 - or self.max_long_partial_prefills
2409 - != SchedulerConfig.max_long_partial_prefills
2410 - ):
2411 - _raise_unsupported_error(feature_name="Concurrent Partial Prefill")
2412 -
2394 if self.pipeline_parallel_size > 1:
2395 supports_pp = getattr(
2396 self.distributed_executor_backend, "supports_pp", False