@@ -144,7 +144,7 @@ def _try_free_pt(self) -> bool:
144
144
return False
145
145
146
146
def level_up (self ):
147
- while self .pt_stack [- 1 ][1 ] == 512 or self . _try_free_pt () :
147
+ while self ._try_free_pt () or self . pt_stack [- 1 ][1 ] == 512 :
148
148
_ , pt_cnt , _ = self .pt_stack .pop ()
149
149
if pt_cnt == 512 : self .pt_stack [- 1 ] = (self .pt_stack [- 1 ][0 ], self .pt_stack [- 1 ][1 ] + 1 , self .pt_stack [- 1 ][2 ])
150
150
@@ -174,6 +174,8 @@ def __init__(self, adev:AMDev, vram_size:int):
174
174
self .root_page_table = AMPageTableEntry (self .adev , self .palloc (0x1000 , zero = not self .adev .smi_dev , boot = True ), lv = am .AMDGPU_VM_PDB1 )
175
175
176
176
def map_range (self , vaddr :int , size :int , paddrs :list [tuple [int , int ]], uncached = False , system = False , snooped = False ) -> AMMapping :
177
+ if AM_DEBUG >= 2 : print (f"am { self .adev .devfmt } : mapping { vaddr = :#x} ({ size = :#x} )" )
178
+
177
179
assert size == sum (p [1 ] for p in paddrs ), f"Size mismatch { size = } { sum (p [1 ] for p in paddrs )= } "
178
180
179
181
ctx = AMPageTableTraverseContext (self .adev , self .root_page_table , vaddr , create_pts = True )
@@ -190,7 +192,7 @@ def map_range(self, vaddr:int, size:int, paddrs:list[tuple[int, int]], uncached=
190
192
return AMMapping (vaddr , size , paddrs , uncached = uncached , system = system , snooped = snooped )
191
193
192
194
def unmap_range (self , vaddr :int , size :int ):
193
- if AM_DEBUG >= 2 : print (f"Unmapping { vaddr = :#x} ({ size = :#x} )" )
195
+ if AM_DEBUG >= 2 : print (f"am { self . adev . devfmt } : unmapping { vaddr = :#x} ({ size = :#x} )" )
194
196
195
197
ctx = AMPageTableTraverseContext (self .adev , self .root_page_table , vaddr , free_pts = True )
196
198
for off , pt , pte_idx , pte_cnt , pte_covers in ctx .next (size ):
0 commit comments