Local TLB flush is sufficient in pmap_remove_pages().

(1) The pmap argument passed to the function must be current pmap only.
(2) The process must be single threaded as the function is called either
when a process is exiting or from exec_new_vmspace().

Remove pmap_tlb_flush_ng() which is not used anywhere now.

Approved by:	kib (mentor)
This commit is contained in:
skra 2015-12-15 16:04:45 +00:00
parent 864cf18128
commit 0851edecae
2 changed files with 1 additions and 10 deletions

View File

@ -1380,14 +1380,6 @@ pmap_tlb_flush_range(pmap_t pmap, vm_offset_t sva, vm_size_t size)
tlb_flush_range(sva, size);
}
PMAP_INLINE void
pmap_tlb_flush_ng(pmap_t pmap)
{
if (pmap == kernel_pmap || !CPU_EMPTY(&pmap->pm_active))
tlb_flush_all_ng();
}
/*
* Abuse the pte2 nodes for unmapped kva to thread a kva freelist through.
* Requirements:
@ -4233,8 +4225,8 @@ pmap_remove_pages(pmap_t pmap)
free_pv_chunk(pc);
}
}
tlb_flush_all_ng_local();
sched_unpin();
pmap_tlb_flush_ng(pmap);
rw_wunlock(&pvh_global_lock);
PMAP_UNLOCK(pmap);
pmap_free_zero_pages(&free);

View File

@ -196,7 +196,6 @@ void pmap_set_pcb_pagedir(pmap_t , struct pcb *);
void pmap_tlb_flush(pmap_t , vm_offset_t );
void pmap_tlb_flush_range(pmap_t , vm_offset_t , vm_size_t );
void pmap_tlb_flush_ng(pmap_t );
void pmap_dcache_wb_range(vm_paddr_t , vm_size_t , vm_memattr_t );