[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