summaryrefslogtreecommitdiffstats
path: root/sys/i386/include/cpufunc.h
diff options
context:
space:
mode:
authortegge <tegge@FreeBSD.org>1998-05-17 18:53:19 +0000
committertegge <tegge@FreeBSD.org>1998-05-17 18:53:19 +0000
commit0b804fd802fa866bc646c551c2012840ac87da5a (patch)
tree46502ad4eb6a67693cfd2e01e8918284088b7b41 /sys/i386/include/cpufunc.h
parent28f799bedead6673aaebaef3fa804c0592a87548 (diff)
downloadFreeBSD-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.h16
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
OpenPOWER on IntegriCloud