* 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. */
| 1186 | * The calling thread must be pinned to a processor. |
| 1187 | */ |
| 1188 | static void |
| 1189 | pmap_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 |
no test coverage detected