PERFORCE change 97842 for review

Kip Macy kmacy at FreeBSD.org
Thu May 25 17:50:45 PDT 2006


http://perforce.freebsd.org/chv.cgi?CH=97842

Change 97842 by kmacy at 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);
 }
 


More information about the p4-projects mailing list