[TRTLLM-12721][fix] Add gated C++ NIXL in-flight cancellation#15238
[TRTLLM-12721][fix] Add gated C++ NIXL in-flight cancellation#15238chienchunhung wants to merge 2 commits into
Conversation
|
/bot run --disable-fail-fast |
|
PR_Github #53406 [ run ] triggered by Bot. Commit: |
|
PR_Github #53406 [ run ] completed with state
|
d16f28c to
631cd67
Compare
|
/bot run --disable-fail-fast |
|
PR_Github #53628 [ run ] triggered by Bot. Commit: |
|
PR_Github #53628 [ run ] completed with state
|
|
/bot run --disable-fail-fast |
|
PR_Github #53788 [ run ] triggered by Bot. Commit: |
|
PR_Github #53788 [ run ] completed with state
|
631cd67 to
36f9ee5
Compare
|
/bot run --disable-fail-fast |
|
PR_Github #53928 [ run ] triggered by Bot. Commit: |
|
PR_Github #53928 [ run ] completed with state
|
36f9ee5 to
ff622ff
Compare
|
/bot run --disable-fail-fast |
|
PR_Github #54148 [ run ] triggered by Bot. Commit: |
ff622ff to
6954acf
Compare
|
/bot run --disable-fail-fast |
|
PR_Github #54155 [ run ] triggered by Bot. Commit: |
|
PR_Github #54148 [ run ] completed with state |
|
PR_Github #54155 [ run ] completed with state
|
6954acf to
24eb554
Compare
|
/bot run --disable-fail-fast |
|
PR_Github #54336 [ run ] triggered by Bot. Commit: |
|
/bot run |
|
PR_Github #54356 [ run ] triggered by Bot. Commit: |
|
PR_Github #54336 [ run ] completed with state |
|
PR_Github #57814 [ run ] completed with state
|
44595e4 to
86a83e9
Compare
|
/bot run --disable-fail-fast |
|
PR_Github #58035 [ run ] triggered by Bot. Commit: |
|
PR_Github #58035 [ run ] completed with state
|
|
/bot run --disable-fail-fast |
|
PR_Github #58102 [ run ] triggered by Bot. Commit: |
|
PR_Github #58102 [ run ] completed with state
|
|
/bot run --disable-fail-fast |
|
PR_Github #58165 [ run ] triggered by Bot. Commit: |
|
PR_Github #58165 [ run ] completed with state
|
|
/bot run --disable-fail-fast --stage-list "DGX_B200-8_GPUs-PyTorch-4,DGX_H100-2_GPUs-PyTorch-Others-2,DGX_H100-4_GPUs-PyTorch-DeepSeek-1,DGX_H100-4_GPUs-PyTorch-Others-2" |
|
PR_Github #58258 [ run ] triggered by Bot. Commit: |
|
PR_Github #58258 [ run ] completed with state
|
|
/bot run --disable-fail-fast --stage-list "DGX_B200-8_GPUs-PyTorch-4,DGX_H100-2_GPUs-PyTorch-Others-2,DGX_H100-4_GPUs-PyTorch-DeepSeek-1,DGX_H100-4_GPUs-PyTorch-Others-2" |
|
PR_Github #58282 [ run ] triggered by Bot. Commit: |
|
PR_Github #58282 [ run ] completed with state
|
|
/bot run --disable-fail-fast --stage-list "DGX_B200-8_GPUs-PyTorch-4,DGX_H100-2_GPUs-PyTorch-Others-2,DGX_H100-4_GPUs-PyTorch-DeepSeek-1,DGX_H100-4_GPUs-PyTorch-Others-2" |
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
Signed-off-by: Chien-Chun Hung <2679986+chienchunhung@users.noreply.github.com>
86a83e9 to
cb13601
Compare
|
/bot run --disable-fail-fast --stage-list "DGX_B200-8_GPUs-PyTorch-4,DGX_H100-2_GPUs-PyTorch-Others-2,DGX_H100-4_GPUs-PyTorch-DeepSeek-1,DGX_H100-4_GPUs-PyTorch-Others-2" |
|
PR_Github #58517 [ run ] triggered by Bot. Commit: |
|
PR_Github #58517 [ run ] completed with state |
|
/bot run --disable-fail-fast |
|
PR_Github #58587 [ run ] triggered by Bot. Commit: |
Summary
This PR adds gated deadline enforcement and in-flight KV-transfer cancellation for the C++ NIXL-backed disaggregated cache transceiver.
Set
TRTLLM_DISAGG_ENABLE_INFLIGHT_CANCEL=1to opt into the experimental behavior. The flag defaults to off, and focused regression tests protect the existing timeout and backend-selection paths when it is unset. Opt-in is currently accepted only for the C++ NIXL transceiver using the UCX plugin, which is also the default whenTRTLLM_NIXL_KVCACHE_BACKENDis unset; Python/V2, direct UCX, MPI, Mooncake, explicitly selected NIXL Libfabric, and ambiguous legacy backend selection fail before a transceiver is constructed.On the qualified path, timed-out context and generation transfers request cancellation, while cleanup is deferred until transfer status, including cross-rank consensus where required, reaches a terminal outcome. Transfer handles are then released, and buffers that may still be touched by an unquiesced transfer are poisoned fail-closed.
Cancellation flow
releaseXferReq.Scope and limitations
blockAll/nulloptwait-all pathsAll ranks and both disaggregated services must use the same feature setting and qualified transport configuration. #15238 itself does not add cross-service capability negotiation; that default-on hardening is tracked by #15798, with peer cancellation and bounded terminal retirement designed in #15799. Neither follow-up blocks merging #15238 with the feature disabled by default.
Dependency graph
Arrows point from prerequisite to dependent. #15238 and #15737 are parallel, independently mergeable inputs to #15794. All PRs target
NVIDIA/main; stacked child diffs are cumulative until their parents merge.#15798 and #15799 are production/default-on hardening follow-ups. They do not block the default-off merges of #15238, #15794, or #15795. #15798 is required for #15738. #15799 may be replaced only by an explicitly approved bounded fail/restart policy that satisfies the same memory-safety requirements.
flowchart LR PR15238["#15238<br/>gated cancellation<br/>(default off)"] PR15737["#15737<br/>CacheSender lost-wakeup fix"] PR15794["#15794<br/>C++ protocol and buffer safety<br/>(default off)"] PR15795["#15795<br/>PyExecutor lifecycle safety<br/>(default off)"] PR15798["#15798<br/>CTX↔GEN protocol/mode negotiation"] PR15799["#15799<br/>peer cancel/terminal protocol<br/>(design scaffold)"] PR15738["#15738<br/>qualified default-on policy"] PR15238 --> PR15794 PR15737 --> PR15794 PR15794 --> PR15795 PR15794 --> PR15798 PR15798 --> PR15799 PR15795 --> PR15738 PR15798 --> PR15738 PR15799 -.->|or bounded fail/restart policy| PR15738Validation
mainat8e7b98c09b; merged prerequisites, including [TRTLLM-12721][fix] Bound disagg transfer polling and admission #15356, are inherited frommain.git diff --checkpassed.Summary by CodeRabbit
New Features
Bug Fixes