Skip to content

feat(backends): handle conditional disagg bypass annotation#11719

Open
karen-sy wants to merge 1 commit into
karenc/condp-policy-kernelfrom
karenc/condp-backend-consumers
Open

feat(backends): handle conditional disagg bypass annotation#11719
karen-sy wants to merge 1 commit into
karenc/condp-policy-kernelfrom
karenc/condp-backend-consumers

Conversation

@karen-sy

@karen-sy karen-sy commented Jul 15, 2026

Copy link
Copy Markdown
Contributor

Important

This PR is [2/5] in the conditional-disaggregation stack.
Merge order is bottom-up: #11718 merges to main first, and #11723 merges last.
Do not merge this PR until every earlier PR in the checklist has merged and this branch has been rebased/retargeted as needed.

Link to the DEP: #11514

Stack merge order:

Reference to original (closed) combined PR, with addressed review comments: ai-dynamo/dynamo#11357

Overview:

Details:

Where should the reviewer start?

Related Issues

⚠️ This section is required. Choose one path below and delete the other.

🔗 This PR is linked to an issue:

  • Closes #XXXX

🚫 This PR is NOT linked to an issue:

  • Confirmed — no related issue

Signed-off-by: Karen Chung <karenc@nvidia.com>

@devin-ai-integration devin-ai-integration Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Devin Review found 1 potential issue.

Open in Devin Review

Comment on lines +404 to 412
if (
dynamo_config.disaggregation_mode == DisaggregationMode.DECODE
and not dynamo_config.enable_conditional_disagg
):
logger.info(
"Decode worker detected (disaggregation_mode=decode): "
"kv_events_config disabled (decode workers don't publish KV events)"
"kv_events_config disabled (pass --enable-conditional-disagg to opt in)"
)
return None

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Conditional disagg KV event publishing requires user-provided kv_events_config

When enable_conditional_disagg=True on a decode worker, create_kv_events_config (args.py:404-407) no longer returns None early. However, it still returns None at line 429 if the user hasn't provided their own --kv-events-config. This means setup_kv_event_publisher (main.py:382-383) will see kv_events_config is None and skip publisher setup. The flag's help text says "Decode workers publish KV events so the Dynamo router can see decode-side cache" but this only works if the user also provides a kv_events_config (same requirement as prefill workers). This is consistent with how prefill workers work, but the flag's documentation might lead users to expect it's self-sufficient.

Open in Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

backend::sglang Relates to the sglang backend backend::trtllm Relates to the trtllm backend backend::vllm Relates to the vllm backend feat size/L

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant