diff options
author | tegge <tegge@FreeBSD.org> | 1998-05-17 18:53:19 +0000 |
---|---|---|
committer | tegge <tegge@FreeBSD.org> | 1998-05-17 18:53:19 +0000 |
commit | 0b804fd802fa866bc646c551c2012840ac87da5a (patch) | |
tree | 46502ad4eb6a67693cfd2e01e8918284088b7b41 /sys/i386/include/cpufunc.h | |
parent | 28f799bedead6673aaebaef3fa804c0592a87548 (diff) | |
download | FreeBSD-src-0b804fd802fa866bc646c551c2012840ac87da5a.zip FreeBSD-src-0b804fd802fa866bc646c551c2012840ac87da5a.tar.gz |
For SMP, use prv_PPAGE1/prv_PMAP1 instead of PADDR1/PMAP1.
get_ptbase and pmap_pte_quick no longer generates IPIs.
This should reduce the number of IPIs during heavy paging.
Diffstat (limited to 'sys/i386/include/cpufunc.h')
-rw-r--r-- | sys/i386/include/cpufunc.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/sys/i386/include/cpufunc.h b/sys/i386/include/cpufunc.h index 1a3ed2b..f4cf0c5 100644 --- a/sys/i386/include/cpufunc.h +++ b/sys/i386/include/cpufunc.h @@ -30,7 +30,7 @@ * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF * SUCH DAMAGE. * - * $Id: cpufunc.h,v 1.77 1998/05/11 02:13:47 dyson Exp $ + * $Id: cpufunc.h,v 1.78 1998/05/12 18:28:05 dyson Exp $ */ /* @@ -225,6 +225,20 @@ cpu_invlpg(void *addr) __asm __volatile("invlpg %0"::"m"(*(char *)addr):"memory"); } +static __inline void +cpu_invltlb(void) +{ + u_long temp; + /* + * This should be implemented as load_cr3(rcr3()) when load_cr3() + * is inlined. + */ + __asm __volatile("movl %%cr3, %0; movl %0, %%cr3" : "=r" (temp) + : : "memory"); +#if defined(SWTCH_OPTIM_STATS) + ++tlb_flush_count; +#endif +} #else /* !SMP */ static __inline void |