alpha pmap pool tweak

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

alpha pmap pool tweak

David Gwynne-5
can someone with an alpha test this diff for me?

if your computer still boots after you're running a kernel with it,
i will consider it tested.

Index: arch/alpha/alpha/pmap.c
===================================================================
RCS file: /cvs/src/sys/arch/alpha/alpha/pmap.c,v
retrieving revision 1.63
diff -u -p -r1.63 pmap.c
--- arch/alpha/alpha/pmap.c 10 Apr 2012 15:50:52 -0000 1.63
+++ arch/alpha/alpha/pmap.c 19 Sep 2013 07:45:12 -0000
@@ -459,7 +459,7 @@ struct pool_allocator pmap_l1pt_allocato
  pmap_l1pt_alloc, pmap_l1pt_free, 0,
 };
 
-int pmap_l1pt_ctor(void *, void *, int);
+void pmap_l1pt_ctor(pt_entry_t *);
 
 /*
  * PV table management functions.
@@ -894,7 +894,6 @@ pmap_bootstrap(paddr_t ptaddr, u_int max
     &pool_allocator_nointr);
  pool_init(&pmap_l1pt_pool, PAGE_SIZE, 0, 0, 0, "l1ptpl",
     &pmap_l1pt_allocator);
- pool_set_ctordtor(&pmap_l1pt_pool, pmap_l1pt_ctor, NULL, NULL);
  pool_init(&pmap_asn_pool, pmap_ncpuids * sizeof(u_int), 0, 0, 0,
     "pmasnpl", &pool_allocator_nointr);
  pool_init(&pmap_asngen_pool, pmap_ncpuids * sizeof(u_long), 0, 0, 0,
@@ -3438,6 +3437,7 @@ pmap_lev1map_create(pmap_t pmap, cpuid_t
  return (ENOMEM);
  }
 
+ pmap_l1pt_ctor(l1pt);
  pmap->pm_lev1map = l1pt;
 
  simple_unlock(&pmap_growkernel_slock);
@@ -3506,12 +3506,12 @@ pmap_lev1map_destroy(pmap_t pmap, cpuid_
 /*
  * pmap_l1pt_ctor:
  *
- * Pool cache constructor for L1 PT pages.
+ * Constructor for L1 PT pages.
  */
 int
-pmap_l1pt_ctor(void *arg, void *object, int flags)
+pmap_l1pt_ctor(pt_entry_t *l1pt)
 {
- pt_entry_t *l1pt = object, pte;
+ pt_entry_t pte;
  int i;
 
  /*