PERFORCE change 28122 for review
Peter Wemm
peter at FreeBSD.org
Fri Apr 4 18:05:26 PST 2003
http://perforce.freebsd.org/chv.cgi?CH=28122
Change 28122 by peter at peter_daintree on 2003/04/04 18:04:27
implement pte_load_clear() using native instructions
Affected files ...
.. //depot/projects/hammer/sys/x86_64/include/pmap.h#7 edit
Differences ...
==== //depot/projects/hammer/sys/x86_64/include/pmap.h#7 (text+ko) ====
@@ -189,29 +189,8 @@
#define vtophys(va) pmap_kextract(((vm_offset_t) (va)))
-#ifdef PAE
-
-static __inline pt_entry_t
-pte_load_clear(pt_entry_t *pte)
-{
- pt_entry_t r;
+#define pte_load_clear(pte) atomic_readandclear_long(pte)
- r = *pte;
- __asm __volatile(
- "1:\n"
- "\tcmpxchg8b %1\n"
- "\tjnz 1b"
- : "+A" (r)
- : "m" (*pte), "b" (0), "c" (0));
- return (r);
-}
-
-#else
-
-#define pte_load_clear(pte) atomic_readandclear_int(pte)
-
-#endif
-
#endif
/*
@@ -228,7 +207,7 @@
pd_entry_t *pm_pdir; /* KVA of page directory */
vm_object_t pm_pteobj; /* Container for pte's */
TAILQ_HEAD(,pv_entry) pm_pvlist; /* list of mappings in pmap */
- u_int pm_active; /* active on cpus */
+ u_long pm_active; /* active on cpus */
struct pmap_statistics pm_stats; /* pmap statistics */
LIST_ENTRY(pmap) pm_list; /* List of all pmaps */
#ifdef PAE
More information about the p4-projects
mailing list