From owner-p4-projects@FreeBSD.ORG Fri May 26 00:50:44 2006 Return-Path: X-Original-To: p4-projects@freebsd.org Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id 8FB1216A9C4; Fri, 26 May 2006 00:43:53 +0000 (UTC) X-Original-To: perforce@freebsd.org Delivered-To: perforce@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id E4F3D16CA7A for ; Fri, 26 May 2006 00:32:37 +0000 (UTC) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (repoman.freebsd.org [216.136.204.115]) by mx1.FreeBSD.org (Postfix) with ESMTP id F220343D5C for ; Fri, 26 May 2006 00:32:32 +0000 (GMT) (envelope-from kmacy@freebsd.org) Received: from repoman.freebsd.org (localhost [127.0.0.1]) by repoman.freebsd.org (8.13.6/8.13.6) with ESMTP id k4Q0VZQ7087170 for ; Fri, 26 May 2006 00:31:35 GMT (envelope-from kmacy@freebsd.org) Received: (from perforce@localhost) by repoman.freebsd.org (8.13.6/8.13.4/Submit) id k4Q0VZD5087167 for perforce@freebsd.org; Fri, 26 May 2006 00:31:35 GMT (envelope-from kmacy@freebsd.org) Date: Fri, 26 May 2006 00:31:35 GMT Message-Id: <200605260031.k4Q0VZD5087167@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 97842 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: Fri, 26 May 2006 00:50:45 -0000 http://perforce.freebsd.org/chv.cgi?CH=97842 Change 97842 by kmacy@kmacy_storage:sun4v_work on 2006/05/26 00:31:25 temporarily pull in optimized bzero/bcopy and use in pmap and uma_small_alloc Affected files ... .. //depot/projects/kmacy_sun4v/src/sys/sun4v/include/asi.h#12 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/include/sun4v_cpufunc.h#6 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#59 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/support.S#13 edit .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/t1_copy.S#1 add .. //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/vm_machdep.c#10 edit Differences ... ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/include/asi.h#12 (text+ko) ==== @@ -54,6 +54,7 @@ #define ASI_MMU_CONTEXTID 0x21 #define ASI_LDTD_AIUP 0x22 /* ASI_LOAD_TWIN_DW_AS_IF_USER_PRIMARY */ #define ASI_LDTD_AIUS 0x23 /* ASI_LOAD_TWIN_DW_AS_IF_USER_SECONDARY */ +#define ASI_LDSTBI_AIUS 0x23 #define ASI_QUEUE 0x25 #define ASI_LDTD_REAL 0x26 /* ASI_LOAD_TWIN_DW_REAL */ #define ASI_STBI_REAL 0x26 @@ -104,6 +105,8 @@ #define ASI_FL16_SL 0xdb #define ASI_LDTD_P 0xe2 /* ASI_LOAD_TWIN_DW_PRIMARY */ +#define ASI_LDSTBI_P 0xe2 + #define ASI_LDTD_S 0xe3 /* ASI_LOAD_TWIN_DW_SECONDARY */ #define ASI_LDTD_PL 0xea /* ASI_LOAD_TWIN_DW_PRIMARY_LITTLE */ ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/include/sun4v_cpufunc.h#6 (text+ko) ==== @@ -86,8 +86,8 @@ void load_real_dw(vm_paddr_t ra, uint64_t *lo, uint64_t *hi); void bzerophyspage(vm_paddr_t ra, uint64_t size); - - +int hwblkclr(void *p, uint64_t size); +int novbcopy(void *src, void *dst, uint64_t size); #endif /* !_MACHINE_CPUFUNC_H_ */ ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/pmap.c#59 (text+ko) ==== @@ -854,9 +854,8 @@ vm_paddr_t srcpa, dstpa; srcpa = VM_PAGE_TO_PHYS(src); dstpa = VM_PAGE_TO_PHYS(dst); - DPRINTF("pmap_copy_page(srcpa=0x%lx, dstpa=0x%lx)\n", srcpa, dstpa); - bcopy((char *)TLB_PHYS_TO_DIRECT(srcpa), (char *)TLB_PHYS_TO_DIRECT(dstpa), PAGE_SIZE); + novbcopy((char *)TLB_PHYS_TO_DIRECT(srcpa), (char *)TLB_PHYS_TO_DIRECT(dstpa), PAGE_SIZE); } @@ -1857,7 +1856,7 @@ void pmap_zero_page(vm_page_t m) { - pmap_scrub_pages(VM_PAGE_TO_PHYS(m), PAGE_SIZE); + hwblkclr((void *)TLB_PHYS_TO_DIRECT(VM_PAGE_TO_PHYS(m)), PAGE_SIZE); } void @@ -1876,6 +1875,6 @@ void pmap_zero_page_idle(vm_page_t m) { - pmap_scrub_pages(VM_PAGE_TO_PHYS(m), PAGE_SIZE); + hwblkclr((void *)TLB_PHYS_TO_DIRECT(VM_PAGE_TO_PHYS(m)), PAGE_SIZE); } ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/support.S#13 (text+ko) ==== @@ -270,7 +270,7 @@ 2: retl mov %o2, %o0 END(bcmp) - +#if 0 /* * void bcopy(const void *src, void *dst, size_t len) */ @@ -315,7 +315,7 @@ retl nop END(bzero) - +#endif /* * int copystr(const void *src, void *dst, size_t len, size_t *done) */ @@ -348,7 +348,7 @@ .globl copy_nofault_begin copy_nofault_begin: nop - +#if 1 /* * int copyin(const void *uaddr, void *kaddr, size_t len) */ @@ -358,7 +358,7 @@ retl clr %o0 END(copyin) - +#endif /* * int copyinstr(const void *uaddr, void *kaddr, size_t len, size_t *done) */ ==== //depot/projects/kmacy_sun4v/src/sys/sun4v/sun4v/vm_machdep.c#10 (text+ko) ==== @@ -417,7 +417,7 @@ pa = VM_PAGE_TO_PHYS(m); va = (void *)TLB_PHYS_TO_DIRECT(pa); if ((wait & M_ZERO) && ((m->flags & PG_ZERO) == 0)) - pmap_scrub_pages(pa, PAGE_SIZE); + hwblkclr((void *)TLB_PHYS_TO_DIRECT(pa), PAGE_SIZE); return (va); }