From owner-p4-projects@FreeBSD.ORG Thu Jan 17 04:59:58 2008 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id D494516A418; Thu, 17 Jan 2008 04:59:57 +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 9A6A016A41B for ; Thu, 17 Jan 2008 04:59:57 +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 8E1E013C442 for ; Thu, 17 Jan 2008 04:59:57 +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 m0H4xvIa038455 for ; Thu, 17 Jan 2008 04:59:57 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.14.1/8.14.1/Submit) id m0H4xvqG038452 for perforce@freebsd.org; Thu, 17 Jan 2008 04:59:57 GMT (envelope-from kmacy@freebsd.org) Date: Thu, 17 Jan 2008 04:59:57 GMT Message-Id: <200801170459.m0H4xvqG038452@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 133452 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, 17 Jan 2008 04:59:58 -0000 http://perforce.freebsd.org/chv.cgi?CH=133452 Change 133452 by kmacy@pandemonium:kmacy:xen31 on 2008/01/17 04:59:46 bzero the the entire page allocated to the pv_chunk as opposed to just PG_ZERO bytes Affected files ... .. //depot/projects/xen31/sys/i386/xen/pmap.c#18 edit Differences ... ==== //depot/projects/xen31/sys/i386/xen/pmap.c#18 (text+ko) ==== @@ -300,6 +300,22 @@ CTASSERT(1 << PDESHIFT == sizeof(pd_entry_t)); CTASSERT(1 << PTESHIFT == sizeof(pt_entry_t)); +static __inline void +pagezero(void *page) +{ +#if defined(I686_CPU) + if (cpu_class == CPUCLASS_686) { +#if defined(CPU_ENABLE_SSE) + if (cpu_feature & CPUID_SSE2) + sse2_pagezero(page); + else +#endif + i686_pagezero(page); + } else +#endif + bzero(page, PAGE_SIZE); +} + void pd_set(struct pmap *pmap, int ptepindex, vm_paddr_t val, int type) { @@ -2051,7 +2067,7 @@ pc = (struct pv_chunk *)pmap_ptelist_alloc(&pv_vafree); pmap_qenter((vm_offset_t)pc, &m, 1); if ((m->flags & PG_ZERO) == 0) - bzero(pc, PG_ZERO); + pagezero(pc); pc->pc_pmap = pmap; pc->pc_map[0] = pc_freemask[0] & ~1ul; /* preallocated bit 0 */ for (field = 1; field < _NPCM; field++) @@ -3054,22 +3070,6 @@ PMAP_UNLOCK(dst_pmap); } -static __inline void -pagezero(void *page) -{ -#if defined(I686_CPU) - if (cpu_class == CPUCLASS_686) { -#if defined(CPU_ENABLE_SSE) - if (cpu_feature & CPUID_SSE2) - sse2_pagezero(page); - else -#endif - i686_pagezero(page); - } else -#endif - bzero(page, PAGE_SIZE); -} - /* * pmap_zero_page zeros the specified hardware page by mapping * the page into KVM and using bzero to clear its contents.