| 1 | #include "internal.h" |
| 2 | |
| 3 | void slab_domain_bucket_print(const struct slab_domain_bucket *bucket) { |
| 4 | printf(format: "slab_domain_bucket {\n" ); |
| 5 | printf(format: " alloc_calls: %zu,\n" , bucket->alloc_calls); |
| 6 | printf(format: " alloc_magazine_hits: %zu,\n" , bucket->alloc_magazine_hits); |
| 7 | printf(format: " alloc_page_hits: %zu,\n" , bucket->alloc_page_hits); |
| 8 | printf(format: " alloc_local_hits: %zu,\n" , bucket->alloc_local_hits); |
| 9 | printf(format: " alloc_remote_hits: %zu,\n" , bucket->alloc_remote_hits); |
| 10 | printf(format: " alloc_gc_recycle_hits: %zu,\n" , bucket->alloc_gc_recycle_hits); |
| 11 | printf(format: " alloc_new_slab: %zu,\n" , bucket->alloc_new_slab); |
| 12 | printf(format: " alloc_new_remote_slab: %u\n" , bucket->alloc_new_remote_slab); |
| 13 | printf(format: " alloc_failures: %zu,\n" , bucket->alloc_failures); |
| 14 | printf(format: "\n" ); |
| 15 | printf(format: " free_calls: %zu,\n" , bucket->free_calls); |
| 16 | printf(format: " free_to_ring: %zu,\n" , bucket->free_to_ring); |
| 17 | printf(format: " free_to_local_slab: %zu,\n" , bucket->free_to_local_slab); |
| 18 | printf(format: " free_to_remote_domain: %zu,\n" , bucket->free_to_remote_domain); |
| 19 | printf(format: " free_to_percpu: %zu\n" , bucket->free_to_percpu); |
| 20 | printf(format: "\n" ); |
| 21 | printf(format: " freequeue_enqueues: %zu,\n" , bucket->freequeue_enqueues); |
| 22 | printf(format: " freequeue_dequeues: %zu,\n" , bucket->freequeue_dequeues); |
| 23 | printf(format: " gc_collections: %zu,\n" , bucket->gc_collections); |
| 24 | printf(format: " gc_objects_reclaimed: %zu\n" , bucket->gc_objects_reclaimed); |
| 25 | printf(format: "}\n" ); |
| 26 | } |
| 27 | |
| 28 | void slab_domains_print() { |
| 29 | for (size_t i = 0; i < global.domain_count; i++) |
| 30 | slab_domain_bucket_print(bucket: &global.domains[i]->slab_domain->aggregate); |
| 31 | } |
| 32 | |