Author: andrew
Date: Fri Jul 31 14:17:26 2015
New Revision: 286130
URL: https://svnweb.freebsd.org/changeset/base/286130

Log:
  Add support for uma_small_alloc and uma_small_free, and make use of these.
  This is copied from the amd64 version with minor changes. These should be
  merged into a single file as from a quick look there are other copies of
  the same file in other parts of the tree.
  
  Obtained from:        ABT Systems Ltd
  Sponsored by: The FreeBSD Foundation

Added:
  head/sys/arm64/arm64/uma_machdep.c
     - copied, changed from r286078, head/sys/amd64/amd64/uma_machdep.c
Modified:
  head/sys/arm64/arm64/vm_machdep.c
  head/sys/arm64/include/vmparam.h
  head/sys/conf/files.arm64

Copied and modified: head/sys/arm64/arm64/uma_machdep.c (from r286078, 
head/sys/amd64/amd64/uma_machdep.c)
==============================================================================
--- head/sys/amd64/amd64/uma_machdep.c  Thu Jul 30 15:47:53 2015        
(r286078, copy source)
+++ head/sys/arm64/arm64/uma_machdep.c  Fri Jul 31 14:17:26 2015        
(r286130)
@@ -61,11 +61,9 @@ uma_small_alloc(uma_zone_t zone, vm_size
                        break;
        }
        pa = m->phys_addr;
-       if ((wait & M_NODUMP) == 0)
-               dump_add_page(pa);
        va = (void *)PHYS_TO_DMAP(pa);
        if ((wait & M_ZERO) && (m->flags & PG_ZERO) == 0)
-               pagezero(va);
+               bzero(va, PAGE_SIZE);
        return (va);
 }
 
@@ -76,7 +74,6 @@ uma_small_free(void *mem, vm_size_t size
        vm_paddr_t pa;
 
        pa = DMAP_TO_PHYS((vm_offset_t)mem);
-       dump_drop_page(pa);
        m = PHYS_TO_VM_PAGE(pa);
        m->wire_count--;
        vm_page_free(m);

Modified: head/sys/arm64/arm64/vm_machdep.c
==============================================================================
--- head/sys/arm64/arm64/vm_machdep.c   Fri Jul 31 13:39:51 2015        
(r286129)
+++ head/sys/arm64/arm64/vm_machdep.c   Fri Jul 31 14:17:26 2015        
(r286130)
@@ -258,18 +258,3 @@ swi_vm(void *v)
 
        /* Nothing to do here - busdma bounce buffers are not implemented. */
 }
-
-void *
-uma_small_alloc(uma_zone_t zone, vm_size_t bytes, u_int8_t *flags, int wait)
-{
-
-       panic("ARM64TODO: uma_small_alloc");
-}
-
-void
-uma_small_free(void *mem, vm_size_t size, u_int8_t flags)
-{
-
-       panic("ARM64TODO: uma_small_free");
-}
-

Modified: head/sys/arm64/include/vmparam.h
==============================================================================
--- head/sys/arm64/include/vmparam.h    Fri Jul 31 13:39:51 2015        
(r286129)
+++ head/sys/arm64/include/vmparam.h    Fri Jul 31 14:17:26 2015        
(r286130)
@@ -224,6 +224,8 @@
 #define        VM_INITIAL_PAGEIN       16
 #endif
 
+#define        UMA_MD_SMALL_ALLOC
+
 extern u_int tsb_kernel_ldd_phys;
 extern vm_offset_t vm_max_kernel_address;
 extern vm_offset_t init_pt_va;

Modified: head/sys/conf/files.arm64
==============================================================================
--- head/sys/conf/files.arm64   Fri Jul 31 13:39:51 2015        (r286129)
+++ head/sys/conf/files.arm64   Fri Jul 31 14:17:26 2015        (r286130)
@@ -46,6 +46,7 @@ arm64/arm64/swtch.S           standard
 arm64/arm64/sys_machdep.c      standard
 arm64/arm64/trap.c             standard
 arm64/arm64/uio_machdep.c      standard
+arm64/arm64/uma_machdep.c      standard
 arm64/arm64/unwind.c           optional        ddb | kdtrace_hooks
 arm64/arm64/vfp.c              standard
 arm64/arm64/vm_machdep.c       standard
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to