Skip to content

Commit 047ab9a

Browse files
committed
bugfix
1 parent 716a8be commit 047ab9a

File tree

1 file changed

+9
-4
lines changed

1 file changed

+9
-4
lines changed

python/sglang/srt/mem_cache/mamba_radix_cache.py

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -541,7 +541,9 @@ def pretty_print(self) -> None:
541541
def total_size(self) -> Tuple[int, int]:
542542
return self._total_size_helper()
543543

544-
def _evict_leaf_node(self, x: TreeNode) -> Tuple[int, int, TreeNode, TreeNode]:
544+
def _evict_leaf_node(
545+
self, x: TreeNode, is_evict_mamba: bool
546+
) -> Tuple[int, int, TreeNode, TreeNode]:
545547
assert (
546548
x.full_lock_ref == 0
547549
), f"leaf node with full lock must also have mamba lock, {x.id=} {x.full_lock_ref=}"
@@ -552,7 +554,10 @@ def _evict_leaf_node(self, x: TreeNode) -> Tuple[int, int, TreeNode, TreeNode]:
552554
mamba_num_evicted = len(x.mamba_value)
553555

554556
# 2. get the next node, update the lru lists
555-
x_next = self.mamba_lru_list.get_prev_no_lock(x)
557+
if is_evict_mamba:
558+
x_next = self.mamba_lru_list.get_prev_no_lock(x)
559+
else:
560+
x_next = self.full_lru_list.get_prev_leaf_no_lock(x)
556561
self.full_lru_list.remove_node(x)
557562
self.mamba_lru_list.remove_node(x)
558563

@@ -588,7 +593,7 @@ def evict_mamba(self, mamba_num: int) -> None:
588593
# 3. tombstone the node
589594
self._tombstone_internal_node(x)
590595
else:
591-
_, mamba_evicted_delta, _, x_next = self._evict_leaf_node(x)
596+
_, mamba_evicted_delta, _, x_next = self._evict_leaf_node(x, True)
592597
mamba_num_evicted += mamba_evicted_delta
593598

594599
x = x_next
@@ -605,7 +610,7 @@ def evict(self, full_num_tokens: int) -> None:
605610
assert (
606611
x != self.root_node
607612
), f"root node should not exist in full lru list, {x.id=}"
608-
full_num_evicted_delta, _, x, x_next = self._evict_leaf_node(x)
613+
full_num_evicted_delta, _, x, x_next = self._evict_leaf_node(x, False)
609614
full_num_evicted += full_num_evicted_delta
610615

611616
# if parent has no more children, it is a leaf. It is possible that this node is lru, so

0 commit comments

Comments
 (0)