MCPcopy
hub / github.com/tinygrad/tinygrad / unmap_range

Method unmap_range

tinygrad/runtime/support/memory.py:218–225  ·  view source on GitHub ↗
(self, vaddr:int, size:int)

Source from the content-addressed store, hash-verified

216 return VirtMapping(vaddr, size, paddrs, aspace=aspace, uncached=uncached, snooped=snooped)
217
218 def unmap_range(self, vaddr:int, size:int):
219 if getenv("MM_DEBUG", 0): print(f"mm {self.dev.devfmt}: unmapping {vaddr=:#x} ({size=:#x})")
220
221 ctx = PageTableTraverseContext(self.dev, self.root_page_table, vaddr, free_pts=True)
222 for _, pt, pte_idx, pte_cnt, _ in ctx.next(size):
223 for pte_id in range(pte_idx, pte_idx + pte_cnt):
224 assert pt.valid(pte_id), f"PTE not mapped: {pt.entry(pte_id):#x}"
225 pt.set_entry(pte_id, paddr=0x0, valid=False)
226
227 def on_range_mapped(self): pass
228

Callers 2

vfreeMethod · 0.95
freeMethod · 0.45

Calls 6

nextMethod · 0.95
getenvFunction · 0.90
validMethod · 0.45
entryMethod · 0.45
set_entryMethod · 0.45

Tested by

no test coverage detected