MCPcopy Create free account
hub / github.com/F-Stack/f-stack / pmap_large_map_wb

Function pmap_large_map_wb

freebsd/amd64/amd64/pmap.c:10560–10577  ·  view source on GitHub ↗

* Write-back cache lines for the given address range. * * Must be called only on the range or sub-range returned from * pmap_large_map(). Must not be called on the coalesced ranges. * * Does nothing on CPUs without CLWB, CLFLUSHOPT, or CLFLUSH * instructions support. */

Source from the content-addressed store, hash-verified

10558 * instructions support.
10559 */
10560void
10561pmap_large_map_wb(void *svap, vm_size_t len)
10562{
10563 vm_offset_t eva, sva;
10564
10565 sva = (vm_offset_t)svap;
10566 eva = sva + len;
10567 pmap_large_map_wb_fence();
10568 if (sva >= DMAP_MIN_ADDRESS && eva <= DMAP_MIN_ADDRESS + dmaplimit) {
10569 pmap_large_map_flush_range(sva, len);
10570 } else {
10571 KASSERT(sva >= LARGEMAP_MIN_ADDRESS &&
10572 eva <= LARGEMAP_MIN_ADDRESS + lm_ents * NBPML4,
10573 ("pmap_large_map_wb: not largemap %#lx %#lx", sva, len));
10574 pmap_large_map_wb_large(sva, eva);
10575 }
10576 pmap_large_map_wb_fence();
10577}
10578
10579static vm_page_t
10580pmap_pti_alloc_page(void)

Callers

nothing calls this directly

Calls 1

pmap_large_map_wb_largeFunction · 0.85

Tested by

no test coverage detected