diff --git a/vllm/core/scheduler.py b/vllm/core/scheduler.py index 3cdad496e843..3f412b0a8f73 100644 --- a/vllm/core/scheduler.py +++ b/vllm/core/scheduler.py @@ -1345,18 +1345,21 @@ def _schedule_chunked_prefill(self) -> SchedulerOutputs: partial_prefill_metadata=partial_prefill_metadata, ) - # Schedule swapped out requests. - # If preemption happens, it means we don't have space for swap-in. + # If preemption happens, it means we don't have space for other + # requests. if len(running_scheduled.preempted) + len( running_scheduled.swapped_out) == 0: + # Schedule swapped out requests. swapped_in = self._schedule_swapped(budget, curr_loras) - prefills = self._schedule_prefills( - budget, - curr_loras, - enable_chunking=True, - partial_prefill_metadata=partial_prefill_metadata, - ) + # Schedule new prefills. + if len(self.swapped) == 0: + prefills = self._schedule_prefills( + budget, + curr_loras, + enable_chunking=True, + partial_prefill_metadata=partial_prefill_metadata, + ) assert (budget.num_batched_tokens <= self.scheduler_config.max_num_batched_tokens)