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

Function pmap_update_pde_invalidate

freebsd/i386/i386/pmap.c:1188–1201  ·  view source on GitHub ↗

* After changing the page size for the specified virtual address in the page * table, flush the corresponding entries from the processor's TLB. Only the * calling processor's TLB is affected. * * The calling thread must be pinned to a processor. */

Source from the content-addressed store, hash-verified

1186 * The calling thread must be pinned to a processor.
1187 */
1188static void
1189pmap_update_pde_invalidate(vm_offset_t va, pd_entry_t newpde)
1190{
1191
1192 if ((newpde & PG_PS) == 0)
1193 /* Demotion: flush a specific 2MB page mapping. */
1194 invlpg(va);
1195 else /* if ((newpde & PG_G) == 0) */
1196 /*
1197 * Promotion: flush every 4KB page mapping from the TLB
1198 * because there are too many to flush individually.
1199 */
1200 invltlb();
1201}
1202
1203#ifdef SMP
1204

Callers 2

pmap_update_pde_teardownFunction · 0.70
pmap_update_pdeFunction · 0.70

Calls 2

invlpgFunction · 0.50
invltlbFunction · 0.50

Tested by

no test coverage detected