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