Date: Fri, 26 May 2006 00:31:35 GMT From: Kip Macy <kmacy@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 97842 for review Message-ID: <200605260031.k4Q0VZD5087167@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
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); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200605260031.k4Q0VZD5087167>