Date: Thu, 6 Dec 2007 05:06:44 GMT From: Kip Macy <kmacy@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 130313 for review Message-ID: <200712060506.lB656icB046144@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=130313 Change 130313 by kmacy@entropy_kmacy_xen31 on 2007/12/06 05:06:21 remaining fixes to make pmap.c and locore.s compile Affected files ... .. //depot/projects/xen31/sys/i386/include/pmap.h#5 edit .. //depot/projects/xen31/sys/i386/xen/locore.s#2 edit .. //depot/projects/xen31/sys/i386/xen/pmap.c#3 edit Differences ... ==== //depot/projects/xen31/sys/i386/include/pmap.h#5 (text+ko) ==== @@ -249,6 +249,7 @@ } #define pte_store(ptep, pte) pte_load_store((ptep), (pt_entry_t)pte) +#define pte_clear(ptep) pte_load_store((ptep), (pt_entry_t)0ULL) #else /* ==== //depot/projects/xen31/sys/i386/xen/locore.s#2 (text+ko) ==== @@ -83,16 +83,6 @@ .set PTD,PTmap + (PTDPTDI * PAGE_SIZE) .set PTDpde,PTD + (PTDPTDI * PDESIZE) -#ifdef SMP -/* - * Define layout of per-cpu address space. - * This is "constructed" in locore.s on the BSP and in mp_machdep.c - * for each AP. DO NOT REORDER THESE WITHOUT UPDATING THE REST! - */ - .globl SMP_prvspace - .set SMP_prvspace,(MPPTDI << PDRSHIFT) -#endif /* SMP */ - /* * Compiled KERNBASE location and the kernel load address */ ==== //depot/projects/xen31/sys/i386/xen/pmap.c#3 (text+ko) ==== @@ -1394,13 +1394,16 @@ /* * allocate the page directory page(s) */ - for (i = 0; i < NPGPTD;) { + for (i = 0; i < npgptd;) { m = vm_page_alloc(NULL, color++, VM_ALLOC_NORMAL | VM_ALLOC_NOOBJ | VM_ALLOC_WIRED | VM_ALLOC_ZERO); if (m == NULL) VM_WAIT; else { +#ifdef XEN + pmap_zero_page(m); /* is this really needed? */ +#endif ptdpg[i++] = m; } } @@ -1416,7 +1419,7 @@ LIST_INSERT_HEAD(&allpmaps, pmap, pm_list); mtx_unlock_spin(&allpmaps_lock); /* Wire in kernel global address entries. */ - /* XXX copies current process, does not fill in MPPTDI */ + /* XXX copies current process */ bcopy(kernel_pmap->pm_pdir + KPTDI, pmap->pm_pdir + KPTDI, nkpt * sizeof(pd_entry_t)); /* XXX need to copy global address entries to page directory's L1 shadow */ @@ -1429,10 +1432,6 @@ xen_pt_pin(ma); } -#ifdef SMP - pmap->pm_pdir[MPPTDI] = kernel_pmap->pm_pdir[MPPTDI]; -#endif - /* pin and install L1 shadow */ for (i = 0; i < NPGPTD; i++) { ma = xpmap_ptom(VM_PAGE_TO_PHYS(ptdpg[i])); @@ -1692,9 +1691,6 @@ bzero(pmap->pm_pdir + PTDPTDI, (nkpt + NPGPTD) * sizeof(*pmap->pm_pdir)); -#ifdef SMP - PD_CLEAR_VA(pmap, &pmap->pm_pdir[MPPTDI], FALSE); -#endif pmap_qremove((vm_offset_t)pmap->pm_pdir, NPGPTD); @@ -3778,7 +3774,7 @@ opte = PT_GET(pte); npte = opte & ~(PG_PTE_PAT | PG_NC_PCD | PG_NC_PWT); npte |= pmap_cache_bits(mode, 0); - PD_SET(tmpva, npte, FALSE); + PT_SET_VA(tmpva, npte, FALSE); #endif tmpva += PAGE_SIZE; size -= PAGE_SIZE;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200712060506.lB656icB046144>