From owner-p4-projects@FreeBSD.ORG Thu Jan 3 07:05:08 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id EABF616A418; Thu, 3 Jan 2008 07:05:07 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id B076B16A41B for ; Thu, 3 Jan 2008 07:05:07 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 9FC8613C442 for ; Thu, 3 Jan 2008 07:05:07 +0000 (UTC) (envelope-from imp@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.14.1/8.14.1) with ESMTP id m03757YO030802 for ; Thu, 3 Jan 2008 07:05:07 GMT (envelope-from imp@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m03757Ve030797 for perforce@freebsd.org; Thu, 3 Jan 2008 07:05:07 GMT (envelope-from imp@freebsd.org) Date: Thu, 3 Jan 2008 07:05:07 GMT Message-Id: <200801030705.m03757Ve030797@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to imp@freebsd.org using -f From: Warner Losh To: Perforce Change Reviews Cc: Subject: PERFORCE change 132377 for review X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Thu, 03 Jan 2008 07:05:08 -0000 http://perforce.freebsd.org/chv.cgi?CH=132377 Change 132377 by imp@imp_paco-paco on 2008/01/03 07:04:33 Remove sva, eva parameters from pmap_remove_pages. Remove unused rouine. Make decl for pmap_init_fpage() dependent on VM_ALLOC_WIRED_TLB_PG_POOL. Affected files ... .. //depot/projects/mips2-jnpr/src/sys/mips/mips/pmap.c#11 edit Differences ... ==== //depot/projects/mips2-jnpr/src/sys/mips/mips/pmap.c#11 (text+ko) ==== @@ -181,7 +181,9 @@ static int init_pte_prot(vm_offset_t va, vm_page_t m, vm_prot_t prot); static void pmap_TLB_invalidate_kernel(vm_offset_t); static void pmap_TLB_update_kernel(vm_offset_t, pt_entry_t); +#ifdef VM_ALLOC_WIRED_TLB_PG_POOL static void pmap_init_fpage(void); +#endif #ifdef SMP static void pmap_invalidate_page_action(void *arg); static void pmap_invalidate_all_action(void *arg); @@ -2121,31 +2123,6 @@ } } -/* - * this routine returns true if a physical page resides - * in the given pmap. - */ -static boolean_t -pmap_page_exists(pmap_t pmap, vm_page_t m) -{ - register pv_entry_t pv; - - if (m->flags & PG_FICTITIOUS) - return FALSE; - - mtx_assert(&vm_page_queue_mtx, MA_OWNED); - /* - * Not found, check current mappings returning immediately if found. - */ - TAILQ_FOREACH(pv, &m->md.pv_list, pv_list) { - if (pv->pv_pmap == pmap) { - return TRUE; - } - } - return (FALSE); -} -/* N/C */ - #define PMAP_REMOVE_PAGES_CURPROC_ONLY /* * Remove all pages from specified address space @@ -2156,7 +2133,7 @@ * in the case of running down an entire address space. */ void -pmap_remove_pages(pmap_t pmap, vm_offset_t sva, vm_offset_t eva) +pmap_remove_pages(pmap_t pmap) { pt_entry_t *pte, tpte; pv_entry_t pv, npv; @@ -2171,16 +2148,12 @@ vm_page_lock_queues(); PMAP_LOCK(pmap); - + sched_pin(); + //XXX need to be TAILQ_FOREACH_SAFE? for(pv = TAILQ_FIRST(&pmap->pm_pvlist); pv; pv = npv) { - if (pv->pv_va >= eva || pv->pv_va < sva) { - npv = TAILQ_NEXT(pv, pv_plist); - continue; - } - pte = pmap_pte(pv->pv_pmap, pv->pv_va); if (!pmap_pte_v(pte)) panic("pmap_remove_pages: page on pm_pvlist has no pte\n"); @@ -2221,6 +2194,7 @@ pmap_unuse_pt(pv->pv_pmap, pv->pv_va, pv->pv_ptem); free_pv_entry(pv); } + sched_unpin(); pmap_invalidate_all(pmap); PMAP_UNLOCK(pmap); vm_page_unlock_queues();