mudler / mudler/vllm.cpp

sync(UPSTREAM-SYNC-HEADPIN): six deferred PORT-NOW entries from tranche 81-120, each with the gate that makes it real

Open
#2,655 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
C++
Stars
423
Forks
53
Avg merge
20h 26m
Merged PRs (30d)
310

Description

Row: UPSTREAM-SYNC-HEADPIN

Found by #2647 (PORT-NOW wave
PORTQ-3, tranche 81-120). Nothing was executed.

What this issue is for

Six of that tranche's forty entries are NOT_APPLICABLE — inert: the surface the
upstream commit edits is in this tree, and the new arm is gated on something
unreachable in every configuration this tree builds. They are deferred work, not
discarded work, and each becomes real the day its gate lands.

.agents/sync/2026-09-03-portq1.md §9 recorded the same category for its own
tranche and observed that two of its three had been left recorded nowhere but the
report. This issue exists so these six are recorded somewhere a person can find
them, since no issue owns any of the six gates. A search of open issues for
EPLB, DBO, ubatch, tokwise, pooling runner and OffloadingConnector worker returned nothing.

None of these is a defect today, and none should be ported before its gate.
Porting one early adds a branch nothing can reach and nothing can test.

The six

upstream vllm# what it adds the gate that makes it real
9464529612 50931 decoder models may select token-wise pooling tasks the W5 tokwise poolers. DispatchPooler::ForEmbedding / ForSeqCls register only kEmbed / kClassify (src/vllm/model_executor/layers/pooler/dispatch_pooler.cpp:24-41), recorded at include/vllm/model_executor/layers/pooler/dispatch_pooler.h:18-21. Our PoolingRunner already has no encoder-only filter (src/vllm/v1/worker/gpu/pool/pooling_runner.cpp:11-13), so the restriction the commit deletes is already absent — only the arm it unlocks is unreachable
dd856e48bb 51222 an encoder-only instance runs execute_mm_encoder instead of gather_mm_embeddings an encode-only (EPD) instance mode. execute_mm_encoder and gather_mm_embeddings are already separate members called at independent sites (src/vllm/v1/worker/gpu/runner.cpp:1930, :1983, called :2208 and :2569), so the refactor half is satisfied; is_encoder_only has no representation, and ec_connector is deferred (include/vllm/v1/engine/types.h:28, include/vllm/v1/core/sched/output.h:33). No row owns EPD disaggregation
ae934ba8a5 48355 all-reduces the FP8 MoE activation scale maximum across the EP group PAR-EP-EPLB (.agents/engine-matrix.md:131, INVENTORIED). The non-EPLB half is already this tree's behaviour: it collapses per-shard input_scale with .max() (src/vt/cpu/cpu_ops.cpp:827-830). There is no EP group to reduce over
ebb2972562 51402 _allow_microbatching(), a veto refusing ubatching when a reader would attend over blocks its in-batch writer has not filled ENG-DBO-UBATCH (.agents/engine-matrix.md:74, INVENTORIED). Upstream's own veto early-returns true when not use_ubatching, and this tree has no ubatching in any configuration
75231eff2f 51391 tool-exit terminals and a skipped-tool-span state, stopping Inkling block-end leakage into content an Inkling or MiniMax reasoning adapter. skip_tool_parsing has one setter (src/vllm/entrypoints/openai/reasoning_parsers/parser_engine_adapter.cpp:29) and the one registered adapter is Qwen3ParserReasoningAdapter (reasoning_parsers/abstract.cpp:64-66). Traced against qwen3_config, the new logic is a behavioural no-op. Ordering: port this BEFORE the streaming half of the issue that covers 1c1077c6cc / 0820125ae9, which touches the same block
1b0ce31f32 49328 delete the block file only on a provable short read; mark_miss on a failed promotion the OffloadingConnector worker half. src/vllm/v1/kv_offload/kv_connector.cpp:406-412 registers it such that EnsureWorkerTransferSupported (src/vllm/entrypoints/model_loader.cpp:1176) refuses it on every device. Half of the commit is genuinely pre-fix here — src/vllm/v1/kv_offload/fs_io.cpp:512-518 deletes on any failure including a transient one, a ~15-line fix under KV-OFFLOAD once reachable. The livelock half is structurally impossible: TieringOffloadingManager::lookup re-probes every call (tiering_manager.cpp:197-215) and caches no verdict

A seventh, which has a natural home this issue cannot reach

ba1cdcfcf0 vllm#51265 adds a suffix match mode to is_layer_skipped. Both
implementations here are exact-match and match upstream's unchanged default
(src/vllm/model_executor/layers/quantization/modelopt_mixed_precision.h:600-601,
include/vllm/model_executor/layers/quantization/fp8_block_quant.h:67-73), and
upstream's only consumer of the new mode is bailing_moe_v3.py. It becomes real
when MODEL-TEXT-bailing-moe-v3-bailing-moe-v3-for-causal-lm
(.agents/model-matrix.md:213, INVENTORIED, BEYOND-PIN) lands.

That row cites #609 as its tracker and #609 does not resolve
(gh api repos/mudler/vllm.cpp/issues/609 → HTTP 404; it is not a PR either).
.agents/model-matrix.md:33 cites the same number. The reference should be
repaired or replaced by whoever owns that row; until then this note is the only
place the ba1cdcfcf0 deferral is written down.

Falsifiable by construction

Every gate above is named so a later reader can disprove the claim by porting it.
None was proven unreachable by construction; each is a reachability judgement
about the tree at e24ec8bfd, and each dies the moment its gate lands.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start by reading the six-row table, the referenced engine-matrix entries, and the named files such as src/vllm/v1/kv_offload/fs_io.cpp and src/vllm/v1/worker/gpu/runner.cpp. Verify that the relevant gate has landed before porting its upstream change; the work is done when the gated behavior is reachable and covered by the applicable tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
backend
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.