From owner-p4-projects@FreeBSD.ORG Wed Jan 23 01:00:29 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id A8FDB16A46C; Wed, 23 Jan 2008 01:00:29 +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 6E34416A421 for ; Wed, 23 Jan 2008 01:00:29 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [IPv6:2001:4f8:fff6::29]) by mx1.freebsd.org (Postfix) with ESMTP id 5FBD813C478 for ; Wed, 23 Jan 2008 01:00:29 +0000 (UTC) (envelope-from kmacy@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 m0N10T5R087323 for ; Wed, 23 Jan 2008 01:00:29 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m0N10TLL087320 for perforce@freebsd.org; Wed, 23 Jan 2008 01:00:29 GMT (envelope-from kmacy@freebsd.org) Date: Wed, 23 Jan 2008 01:00:29 GMT Message-Id: <200801230100.m0N10TLL087320@repoman.freebsd.org> X-Authentication-Warning: repoman.freebsd.org: perforce set sender to kmacy@freebsd.org using -f From: Kip Macy To: Perforce Change Reviews Cc: Subject: PERFORCE change 133900 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: Wed, 23 Jan 2008 01:00:30 -0000 http://perforce.freebsd.org/chv.cgi?CH=133900 Change 133900 by kmacy@pandemonium:kmacy:xen31 on 2008/01/23 00:59:30 cleanup multicall code slightly set dirty and referenced bit in pmap_qenter Affected files ... .. //depot/projects/xen31/sys/i386/xen/pmap.c#29 edit Differences ... ==== //depot/projects/xen31/sys/i386/xen/pmap.c#29 (text+ko) ==== @@ -1219,22 +1219,23 @@ { pt_entry_t *endpte, *pte; vm_paddr_t pa; + vm_offset_t va = sva; int mclcount = 0; multicall_entry_t mcl[16]; multicall_entry_t *mclp = mcl; - + pte = vtopte(sva); endpte = pte + count; while (pte < endpte) { - pa = xpmap_ptom(VM_PAGE_TO_PHYS(*ma)) | pgeflag | PG_RW | PG_V; + pa = xpmap_ptom(VM_PAGE_TO_PHYS(*ma)) | pgeflag | PG_RW | PG_V | PG_M | PG_A; mclp->op = __HYPERVISOR_update_va_mapping; - mclp->args[0] = sva; + mclp->args[0] = va; mclp->args[1] = (uint32_t)(pa & 0xffffffff); mclp->args[2] = (uint32_t)(pa >> 32); mclp->args[3] = (*pte & PG_V) ? UVMF_INVLPG|UVMF_ALL : 0; - sva += PAGE_SIZE; + va += PAGE_SIZE; pte++; ma++; mclp++; @@ -1247,8 +1248,8 @@ } if (mclcount) HYPERVISOR_multicall(mcl, mclcount); +} -} /* * This routine tears out page mappings from the @@ -2732,9 +2733,8 @@ vm_page_t m, mpte; vm_pindex_t diff, psize; multicall_entry_t mcl[16]; - multicall_entry_t *mclpstart, *mclp; + multicall_entry_t *mclp = mcl; int count = 0; - mclpstart = mclp = mcl; VM_OBJECT_LOCK_ASSERT(m_start->object, MA_OWNED); psize = atop(end - start); @@ -2749,13 +2749,13 @@ mclp++; count++; if (count == 16) { - HYPERVISOR_multicall(mclpstart, count); - mclp = mclpstart; + HYPERVISOR_multicall(mcl, count); + mclp = mcl; count = 0; } } if (count) - HYPERVISOR_multicall(mclpstart, count); + HYPERVISOR_multicall(mcl, count); PMAP_UNLOCK(pmap); }