diff --git a/python/sglang/srt/mem_cache/unified_cache/unified_tree_core_interface.py b/python/sglang/srt/mem_cache/unified_cache/unified_tree_core_interface.py index 681567984..8111d0871 100644 --- a/python/sglang/srt/mem_cache/unified_cache/unified_tree_core_interface.py +++ b/python/sglang/srt/mem_cache/unified_cache/unified_tree_core_interface.py @@ -510,6 +510,9 @@ class UnifiedTreeCoreInterface(ABC): node_id: NodeId, phase: CacheTransferPhase, *, + # TODO(Jialin): Remove the legacy `host_indices` argument from the + # interface and bindings. Prefetch uses `staging_tokens`; + # `PoolTransfer.host_indices` is populated after the storage hit. host_indices: Optional[torch.Tensor] = None, token_ids: Optional[Sequence[int]] = None, prefetch_tokens: int = 0, diff --git a/rust/sglang-radix-tree/src/tests/components/mamba.rs b/rust/sglang-radix-tree/src/tests/components/mamba.rs index f223e7784..666f11d3b 100644 --- a/rust/sglang-radix-tree/src/tests/components/mamba.rs +++ b/rust/sglang-radix-tree/src/tests/components/mamba.rs @@ -1068,11 +1068,11 @@ fn backup_host_build_carries_the_device_slot() { MAMBA, tc.arena.node(a).id, CacheTransferPhase::BackupHost, - None, - None, - 0, - 0, - None, + /* host_indices = */ None, + /* token_ids = */ None, + /* prefetch_tokens = */ 0, + /* staging_tokens = */ 0, + /* last_hash = */ None, ) .expect("live test node") .unwrap(); @@ -1100,11 +1100,11 @@ fn backup_host_build_carries_the_device_slot() { MAMBA, tc.arena.node(b).id, CacheTransferPhase::BackupHost, - None, - None, - 0, - 0, - None, + /* host_indices = */ None, + /* token_ids = */ None, + /* prefetch_tokens = */ 0, + /* staging_tokens = */ 0, + /* last_hash = */ None, ) .expect("live test node") .is_none() @@ -1121,11 +1121,11 @@ fn load_back_build_restores_the_host_only_node() { MAMBA, tc.arena.node(a).id, CacheTransferPhase::LoadBack, - None, - None, - 0, - 0, - None, + /* host_indices = */ None, + /* token_ids = */ None, + /* prefetch_tokens = */ 0, + /* staging_tokens = */ 0, + /* last_hash = */ None, ) .expect("live test node") .unwrap(); @@ -1151,11 +1151,11 @@ fn load_back_build_skips_device_backed_and_bare_nodes() { MAMBA, tc.arena.node(node).id, CacheTransferPhase::LoadBack, - None, - None, - 0, - 0, - None, + /* host_indices = */ None, + /* token_ids = */ None, + /* prefetch_tokens = */ 0, + /* staging_tokens = */ 0, + /* last_hash = */ None, ) .expect("live test node") .is_none() @@ -1174,11 +1174,11 @@ fn load_back_build_adds_the_per_request_cow_transfer() { a, CacheTransferPhase::LoadBack, /* mamba_pool_idx = */ Some(Tensor::from_slice(&[3i64]).squeeze()), - None, - None, - 0, - 0, - None, + /* host_indices = */ None, + /* token_ids = */ None, + /* prefetch_tokens = */ 0, + /* staging_tokens = */ 0, + /* last_hash = */ None, ) .unwrap() .unwrap(); @@ -1390,11 +1390,11 @@ fn backup_storage_build_keys_the_trailing_hash() { MAMBA, tc.arena.node(a).id, CacheTransferPhase::BackupStorage, - None, - None, - 0, - 0, - None, + /* host_indices = */ None, + /* token_ids = */ None, + /* prefetch_tokens = */ 0, + /* staging_tokens = */ 0, + /* last_hash = */ None, ) .expect("live test node") .is_none() @@ -1406,11 +1406,11 @@ fn backup_storage_build_keys_the_trailing_hash() { MAMBA, tc.arena.node(a).id, CacheTransferPhase::BackupStorage, - None, - None, - 0, - 0, - None, + /* host_indices = */ None, + /* token_ids = */ None, + /* prefetch_tokens = */ 0, + /* staging_tokens = */ 0, + /* last_hash = */ None, ) .expect("live test node") .is_none() @@ -1421,11 +1421,11 @@ fn backup_storage_build_keys_the_trailing_hash() { MAMBA, tc.arena.node(a).id, CacheTransferPhase::BackupStorage, - None, - None, - 0, - 0, - None, + /* host_indices = */ None, + /* token_ids = */ None, + /* prefetch_tokens = */ 0, + /* staging_tokens = */ 0, + /* last_hash = */ None, ) .expect("live test node") .unwrap(); @@ -1450,11 +1450,11 @@ fn prefetch_build_carries_a_placeholder_key_for_the_planned_slot() { MAMBA, root_id, CacheTransferPhase::Prefetch, - None, - None, - 0, - staging_tokens, - None, + /* host_indices = */ None, + /* token_ids = */ None, + /* prefetch_tokens = */ 0, + /* staging_tokens = */ staging_tokens, + /* last_hash = */ None, ) .expect("live test node") };