Lines Matching defs:skm
491 spl_cache_flush(spl_kmem_cache_t *skc, spl_kmem_magazine_t *skm, int flush)
496 ASSERT(skm->skm_magic == SKM_MAGIC);
498 int count = MIN(flush, skm->skm_avail);
500 spl_cache_shrink(skc, skm->skm_objs[i]);
502 skm->skm_avail -= count;
503 memmove(skm->skm_objs, &(skm->skm_objs[count]),
504 sizeof (void *) * skm->skm_avail);
576 spl_kmem_magazine_t *skm;
580 skm = kmalloc_node(size, GFP_KERNEL, cpu_to_node(cpu));
581 if (skm) {
582 skm->skm_magic = SKM_MAGIC;
583 skm->skm_avail = 0;
584 skm->skm_size = skc->skc_mag_size;
585 skm->skm_refill = skc->skc_mag_refill;
586 skm->skm_cache = skc;
587 skm->skm_cpu = cpu;
590 return (skm);
597 spl_magazine_free(spl_kmem_magazine_t *skm)
599 ASSERT(skm->skm_magic == SKM_MAGIC);
600 ASSERT(skm->skm_avail == 0);
601 kfree(skm);
639 spl_kmem_magazine_t *skm;
645 skm = skc->skc_mag[i];
646 spl_cache_flush(skc, skm, skm->skm_avail);
647 spl_magazine_free(skm);
1083 spl_cache_refill(spl_kmem_cache_t *skc, spl_kmem_magazine_t *skm, int flags)
1090 ASSERT(skm->skm_magic == SKM_MAGIC);
1092 refill = MIN(skm->skm_refill, skm->skm_size - skm->skm_avail);
1111 /* Rescheduled to different CPU skm is not local */
1112 if (skm != skc->skc_mag[smp_processor_id()])
1120 refill = MIN(refill, skm->skm_size - skm->skm_avail);
1139 ASSERT(skm->skm_avail < skm->skm_size);
1140 ASSERT(count < skm->skm_size);
1141 skm->skm_objs[skm->skm_avail++] =
1207 spl_kmem_magazine_t *skm;
1246 skm = skc->skc_mag[smp_processor_id()];
1247 ASSERT(skm->skm_magic == SKM_MAGIC);
1249 if (likely(skm->skm_avail)) {
1251 obj = skm->skm_objs[--skm->skm_avail];
1253 obj = spl_cache_refill(skc, skm, flags);
1287 spl_kmem_magazine_t *skm;
1333 skm = skc->skc_mag[smp_processor_id()];
1334 ASSERT(skm->skm_magic == SKM_MAGIC);
1341 if (unlikely(skm->skm_avail >= skm->skm_size)) {
1342 spl_cache_flush(skc, skm, skm->skm_refill);
1347 skm->skm_objs[skm->skm_avail++] = obj;
1383 spl_kmem_magazine_t *skm = skc->skc_mag[smp_processor_id()];
1384 spl_cache_flush(skc, skm, skm->skm_avail);