[GH-ISSUE #3503] [TE][UB]: Auto-chunk registrations larger than max_seg_size and split cross-segment transfers #896

Open
opened 2026-10-29 21:20:39 +00:00 by bsakaguchi · 1 comment
Owner

Originally created by @staryxchen on GitHub (Aug 18, 2026).
Original GitHub issue: https://github.com/kvcache-ai/Mooncake/issues/3503

Parent: #3500

Problem

UB is behind both EFA/CXI and RDMA.

  1. Registration still shrinks. UrmaContext::registerMemoryRegion clamps length to max_seg_size instead of splitting into multiple segments. Metadata can advertise more bytes than were actually registered — the same class of bug #2644 fixed for RDMA.
  2. Submit path does not cap at BufferDesc seams. UbTransport::submitTransferTask slices by slice_size only. The initial selectDevice uses the full request.length, so a request that spans two registered segments fails even if individual slices would fit.

Until both are fixed, Store must keep splitting UB segments at max_seg_size.

Proposed work

  1. Auto-chunk registerLocalMemory into <= max_seg_size segments and publish one BufferDesc per chunk (do not shrink).
  2. Cap submit-time slices at source and target BufferDesc remainder, similar to RDMA SliceLengthCalculator.

Test plan

Needs Kunpeng / UB hardware. Suggested coverage:

  • Register a buffer larger than max_seg_size and confirm it is not truncated
  • WRITE whose source or destination straddles a chunk seam
Originally created by @staryxchen on GitHub (Aug 18, 2026). Original GitHub issue: https://github.com/kvcache-ai/Mooncake/issues/3503 Parent: #3500 ## Problem UB is behind both EFA/CXI and RDMA. 1. **Registration still shrinks.** `UrmaContext::registerMemoryRegion` clamps `length` to `max_seg_size` instead of splitting into multiple segments. Metadata can advertise more bytes than were actually registered — the same class of bug #2644 fixed for RDMA. 2. **Submit path does not cap at `BufferDesc` seams.** `UbTransport::submitTransferTask` slices by `slice_size` only. The initial `selectDevice` uses the full `request.length`, so a request that spans two registered segments fails even if individual slices would fit. Until both are fixed, Store must keep splitting UB segments at `max_seg_size`. ## Proposed work 1. Auto-chunk `registerLocalMemory` into `<= max_seg_size` segments and publish one `BufferDesc` per chunk (do not shrink). 2. Cap submit-time slices at source and target `BufferDesc` remainder, similar to RDMA `SliceLengthCalculator`. ## Test plan Needs Kunpeng / UB hardware. Suggested coverage: - Register a buffer larger than `max_seg_size` and confirm it is not truncated - WRITE whose source or destination straddles a chunk seam
Author
Owner

@github-actions[bot] commented on GitHub (Aug 18, 2026):

Thanks for opening this issue, @staryxchen!

Field Value
Issue #3503
GitHub user ID 151037142
Reporter @staryxchen

A maintainer will triage this when possible. To help us respond faster, please include:

  • Mooncake version or commit SHA
  • Environment (OS, CUDA/driver, RDMA stack if relevant)
  • Steps to reproduce and expected vs. actual behavior

Useful links: Documentation · Contributing guide

This message was posted automatically by the issue bot.

<!-- gh-comment-id:5325928221 --> @github-actions[bot] commented on GitHub (Aug 18, 2026): Thanks for opening this issue, @staryxchen! | Field | Value | |-------|-------| | **Issue** | #3503 | | **GitHub user ID** | `151037142` | | **Reporter** | @staryxchen | A maintainer will triage this when possible. To help us respond faster, please include: - Mooncake version or commit SHA - Environment (OS, CUDA/driver, RDMA stack if relevant) - Steps to reproduce and expected vs. actual behavior Useful links: [Documentation](https://kvcache-ai.github.io/Mooncake/) · [Contributing guide](https://github.com/kvcache-ai/Mooncake/blob/main/CONTRIBUTING.md) > This message was posted automatically by the issue bot.
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
kvcache-ai/Mooncake#896
No description provided.