Repository navigation
[DSV4] Reserve the FULL logical page in the c4 indexer pool like its KV pool - #41163
Merged
hnyls2002 merged 1 commit intoOct 1, 2026
Merged
Conversation
pengwu22
requested review from
Ying1123,
alphabetc1,
hanming-lu,
hnyls2002,
huangtingwei9988,
hzh0425,
iforgetmyname,
ispobock,
merrymercy,
ping1jing2,
whybeyoung,
xiezhq-hermann and
yizhang2077
as code owners
September 24, 2026 20:35
Contributor
Author
|
/run-ci |
Contributor
Author
|
/run-extra-ci |
Contributor
|
⛔ See the command reference. |
Contributor
|
⏳ |
pengwu22
force-pushed
the
fix/dsv4-c4-indexer-pool-logical-page
branch
from
September 24, 2026 21:57
8b2c56e to
2c01bb0
Compare
Contributor
Author
|
/rerun-failed-ci |
…KV pool sgl-project#39921 sized the compressed KV sub-pools with _num_dsv4_physical_kv_pages, which reserves one FULL logical page (ratio physical pages) for the allocator's dummy page. The c4 lightning-indexer pool kept the old (size + page_size + 1) // page_size count, so the PD entries registered by get_contiguous_buf_infos no longer share one page count: on the flash layout (ratios 4/128, page 256) rows per entry went from 33 everywhere to 36 (c4 KV) / 33 (c4 indexer) / 160 (c128 KV). The NIXL connector prepares one destination descriptor list per registered entry from the slot count the decode advertises for entry 0 (the c4 KV page count). The indexer entries are three pages shorter than that, the descriptors walk past their registered region, and the prefill dies with NIXL_ERR_NOT_FOUND in _prep_equal_tp_dlist. Mooncake does not prebuild full-range lists and is unaffected. Give DeepSeekV4IndexerPool the same global_page_size as DeepSeekV4SingleKVPool and count its pages with the same helper, so the c4 KV and indexer entries are 36/36 again and every entry has at least the c4 KV page count. Without a global_page_size the helper reduces to the old count for page-aligned sizes, so the low-ratio index pools and the NPU packed buffer keep their geometry. The NPU factory accepts the keyword.
pengwu22
force-pushed
the
fix/dsv4-c4-indexer-pool-logical-page
branch
from
September 25, 2026 05:12
2c01bb0 to
1a3449f
Compare
Contributor
Author
|
/rerun-failed-ci |
hnyls2002
approved these changes
Oct 1, 2026
This was referenced Oct 1, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Motivation
Pages per registered entry, flash layout (compress ratios 4/128, page size 256):
Modifications
Accuracy Tests
Not applicable: only reserved pages are added, live page addressing is unchanged.
Speed Tests and Profiling
Not applicable: the indexer pool grows by three 64-token pages per layer at page size 256.
CI States
Latest PR Test (Base): ✅ Run #36097602378
Latest PR Test (Extra): ✅ Run #36097602213
Latest PR Test (AMD ROCm 10): ❌ Run #36097602349