Lines Matching refs:ccp
385 mcache_cpu_t *ccp = &cp->mc_cpu[c]; in mcache_create_common() local
387 VERIFY(IS_P2ALIGNED(ccp, CPU_CACHE_LINE_SIZE)); in mcache_create_common()
388 lck_mtx_init(&ccp->cc_lock, cp->mc_cpu_lock_grp, LCK_ATTR_NULL); in mcache_create_common()
389 ccp->cc_objs = -1; in mcache_create_common()
390 ccp->cc_pobjs = -1; in mcache_create_common()
425 mcache_cpu_t *ccp; in mcache_alloc_ext() local
443 ccp = MCACHE_CPU(cp); in mcache_alloc_ext()
445 MCACHE_LOCK(&ccp->cc_lock); in mcache_alloc_ext()
452 if (ccp->cc_objs > 0) { in mcache_alloc_ext()
461 objs = MIN((unsigned int)ccp->cc_objs, need); in mcache_alloc_ext()
462 *list = ccp->cc_filled->bkt_obj[ccp->cc_objs - 1]; in mcache_alloc_ext()
463 ccp->cc_objs -= objs; in mcache_alloc_ext()
464 ccp->cc_alloc += objs; in mcache_alloc_ext()
466 tail = ccp->cc_filled->bkt_obj[ccp->cc_objs]; in mcache_alloc_ext()
472 MCACHE_UNLOCK(&ccp->cc_lock); in mcache_alloc_ext()
491 if (ccp->cc_pobjs > 0) { in mcache_alloc_ext()
492 mcache_cpu_refill(ccp, ccp->cc_pfilled, ccp->cc_pobjs); in mcache_alloc_ext()
501 if (ccp->cc_bktsize == 0) { in mcache_alloc_ext()
514 &bkt, (need <= ccp->cc_bktsize) ? 1 : 2); in mcache_alloc_ext()
518 if (ccp->cc_pfilled != NULL) { in mcache_alloc_ext()
519 ccp->cc_pfilled->bkt_next = bkt_list; in mcache_alloc_ext()
520 bkt_list = ccp->cc_pfilled; in mcache_alloc_ext()
527 mcache_cpu_refill(ccp, bkt, ccp->cc_bktsize); in mcache_alloc_ext()
534 if (ccp->cc_filled != NULL) { in mcache_alloc_ext()
535 ccp->cc_filled->bkt_next = bkt_list; in mcache_alloc_ext()
536 bkt_list = ccp->cc_filled; in mcache_alloc_ext()
538 mcache_cpu_batch_refill(ccp, bkt, in mcache_alloc_ext()
539 ccp->cc_bktsize); in mcache_alloc_ext()
551 MCACHE_UNLOCK(&ccp->cc_lock); in mcache_alloc_ext()
727 mcache_cpu_t *ccp = MCACHE_CPU(cp); in mcache_free_ext() local
741 MCACHE_LOCK(&ccp->cc_lock); in mcache_free_ext()
749 if ((unsigned int)ccp->cc_objs < in mcache_free_ext()
750 (unsigned int)ccp->cc_bktsize) { in mcache_free_ext()
757 list->obj_next = (ccp->cc_objs == 0) ? NULL : in mcache_free_ext()
758 ccp->cc_filled->bkt_obj[ccp->cc_objs - 1]; in mcache_free_ext()
759 ccp->cc_filled->bkt_obj[ccp->cc_objs++] = list; in mcache_free_ext()
760 ccp->cc_free++; in mcache_free_ext()
767 MCACHE_UNLOCK(&ccp->cc_lock); in mcache_free_ext()
780 if (ccp->cc_pobjs == 0) { in mcache_free_ext()
781 mcache_cpu_refill(ccp, ccp->cc_pfilled, ccp->cc_pobjs); in mcache_free_ext()
790 if (ccp->cc_bktsize == 0) { in mcache_free_ext()
810 if (ccp->cc_pfilled != NULL) { in mcache_free_ext()
811 ccp->cc_pfilled->bkt_next = bkt_list; in mcache_free_ext()
812 bkt_list = ccp->cc_pfilled; in mcache_free_ext()
819 mcache_cpu_refill(ccp, bkt, 0); in mcache_free_ext()
826 if (ccp->cc_filled != NULL) { in mcache_free_ext()
827 ccp->cc_filled->bkt_next = bkt_list; in mcache_free_ext()
828 bkt_list = ccp->cc_filled; in mcache_free_ext()
830 mcache_cpu_batch_refill(ccp, bkt, 0); in mcache_free_ext()
844 MCACHE_UNLOCK(&ccp->cc_lock); in mcache_free_ext()
846 MCACHE_LOCK(&ccp->cc_lock); in mcache_free_ext()
854 if (ccp->cc_bktsize != btp->bt_bktsize) { in mcache_free_ext()
855 MCACHE_UNLOCK(&ccp->cc_lock); in mcache_free_ext()
857 MCACHE_LOCK(&ccp->cc_lock); in mcache_free_ext()
884 MCACHE_UNLOCK(&ccp->cc_lock); in mcache_free_ext()
1081 mcache_cpu_batch_refill(mcache_cpu_t *ccp, mcache_bkt_t *bkt, int objs) in mcache_cpu_batch_refill() argument
1083 ASSERT((ccp->cc_filled == NULL && ccp->cc_objs == -1) || in mcache_cpu_batch_refill()
1084 (ccp->cc_filled && ccp->cc_objs + objs == ccp->cc_bktsize)); in mcache_cpu_batch_refill()
1085 ASSERT(ccp->cc_bktsize > 0); in mcache_cpu_batch_refill()
1087 ccp->cc_filled = bkt; in mcache_cpu_batch_refill()
1088 ccp->cc_objs = objs; in mcache_cpu_batch_refill()
1090 ccp->cc_pfilled = bkt->bkt_next; in mcache_cpu_batch_refill()
1091 ccp->cc_pobjs = objs; in mcache_cpu_batch_refill()
1095 ccp->cc_pfilled = NULL; in mcache_cpu_batch_refill()
1096 ccp->cc_pobjs = -1; in mcache_cpu_batch_refill()
1104 mcache_cpu_refill(mcache_cpu_t *ccp, mcache_bkt_t *bkt, int objs) in mcache_cpu_refill() argument
1106 ASSERT((ccp->cc_filled == NULL && ccp->cc_objs == -1) || in mcache_cpu_refill()
1107 (ccp->cc_filled && ccp->cc_objs + objs == ccp->cc_bktsize)); in mcache_cpu_refill()
1108 ASSERT(ccp->cc_bktsize > 0); in mcache_cpu_refill()
1110 ccp->cc_pfilled = ccp->cc_filled; in mcache_cpu_refill()
1111 ccp->cc_pobjs = ccp->cc_objs; in mcache_cpu_refill()
1112 ccp->cc_filled = bkt; in mcache_cpu_refill()
1113 ccp->cc_objs = objs; in mcache_cpu_refill()
1184 mcache_cpu_t *ccp; in mcache_cache_bkt_enable() local
1192 ccp = &cp->mc_cpu[cpu]; in mcache_cache_bkt_enable()
1193 MCACHE_LOCK(&ccp->cc_lock); in mcache_cache_bkt_enable()
1194 ccp->cc_bktsize = cp->cache_bkttype->bt_bktsize; in mcache_cache_bkt_enable()
1195 MCACHE_UNLOCK(&ccp->cc_lock); in mcache_cache_bkt_enable()
1205 mcache_cpu_t *ccp; in mcache_bkt_purge() local
1211 ccp = &cp->mc_cpu[cpu]; in mcache_bkt_purge()
1213 MCACHE_LOCK(&ccp->cc_lock); in mcache_bkt_purge()
1215 bp = ccp->cc_filled; in mcache_bkt_purge()
1216 pbp = ccp->cc_pfilled; in mcache_bkt_purge()
1217 objs = ccp->cc_objs; in mcache_bkt_purge()
1218 pobjs = ccp->cc_pobjs; in mcache_bkt_purge()
1219 ccp->cc_filled = NULL; in mcache_bkt_purge()
1220 ccp->cc_pfilled = NULL; in mcache_bkt_purge()
1221 ccp->cc_objs = -1; in mcache_bkt_purge()
1222 ccp->cc_pobjs = -1; in mcache_bkt_purge()
1223 ccp->cc_bktsize = 0; in mcache_bkt_purge()
1225 MCACHE_UNLOCK(&ccp->cc_lock); in mcache_bkt_purge()