PERFORCE change 94783 for review
Alan Cox
alc at FreeBSD.org
Fri Apr 7 23:25:36 UTC 2006
http://perforce.freebsd.org/chv.cgi?CH=94783
Change 94783 by alc at alc_home on 2006/04/07 23:24:52
Promotion of kernel pmap pages requires that the corresponding pde
in every pmap is updated.
Affected files ...
.. //depot/projects/superpages/src/sys/i386/i386/pmap.c#10 integrate
Differences ...
==== //depot/projects/superpages/src/sys/i386/i386/pmap.c#10 (text+ko) ====
@@ -3302,6 +3302,7 @@
mach_promote(pmap_t pmap, vm_offset_t va, reservation_t reserv)
{
vm_paddr_t pa;
+ pmap_t allpmaps_entry;
pd_entry_t *pde = pmap_pde(pmap, va);
pt_entry_t *pte, *first_pte, flags;
vm_page_t page_pa;
@@ -3331,7 +3332,15 @@
}
/* Create a superpage: add PG_PS bit to the pde */
- *pde = PG_PS | flags;
+ if (pmap == kernel_pmap) {
+ mtx_lock_spin(&allpmaps_lock);
+ LIST_FOREACH(allpmaps_entry, &allpmaps, pm_list) {
+ pde = pmap_pde(allpmaps_entry, va);
+ pde_store(pde, PG_PS | flags);
+ }
+ mtx_unlock_spin(&allpmaps_lock);
+ } else
+ *pde = PG_PS | flags;
if (pmap != kernel_pmap)
pmap->pm_stats.resident_count--;
More information about the p4-projects
mailing list