int main(void) { if (CUE_SUCCESS != CU_initialize_registry()) return CU_get_error(); slab_init(0, 1.125); check_indexlog(); /* {{{ CU run & cleanup */ CU_basic_set_mode(CU_BRM_VERBOSE); CU_basic_run_tests(); CU_cleanup_registry(); /* }}} */ slab_stats(); return 0; }
static void report(struct slabinfo *s) { if (strcmp(s->name, "*") == 0) return; printf("\nSlabcache: %-20s Aliases: %2d Order : %2d Objects: %lu\n", s->name, s->aliases, s->order, s->objects); if (s->hwcache_align) printf("** Hardware cacheline aligned\n"); if (s->cache_dma) printf("** Memory is allocated in a special DMA zone\n"); if (s->destroy_by_rcu) printf("** Slabs are destroyed via RCU\n"); if (s->reclaim_account) printf("** Reclaim accounting active\n"); printf("\nSizes (bytes) Slabs Debug Memory\n"); printf("------------------------------------------------------------------------\n"); printf("Object : %7d Total : %7ld Sanity Checks : %s Total: %7ld\n", s->object_size, s->slabs, onoff(s->sanity_checks), s->slabs * (page_size << s->order)); printf("SlabObj: %7d Full : %7ld Redzoning : %s Used : %7ld\n", s->slab_size, s->slabs - s->partial - s->cpu_slabs, onoff(s->red_zone), s->objects * s->object_size); printf("SlabSiz: %7d Partial: %7ld Poisoning : %s Loss : %7ld\n", page_size << s->order, s->partial, onoff(s->poison), s->slabs * (page_size << s->order) - s->objects * s->object_size); printf("Loss : %7d CpuSlab: %7d Tracking : %s Lalig: %7ld\n", s->slab_size - s->object_size, s->cpu_slabs, onoff(s->store_user), (s->slab_size - s->object_size) * s->objects); printf("Align : %7d Objects: %7d Tracing : %s Lpadd: %7ld\n", s->align, s->objs_per_slab, onoff(s->trace), ((page_size << s->order) - s->objs_per_slab * s->slab_size) * s->slabs); ops(s); show_tracking(s); slab_numa(s, 1); slab_stats(s); }