+ for (i = 0; i < vec_len (h->freelists); i++)
+ {
+ u32 nfree = 0;
+ BVT (clib_bihash_value) * free_elt;
+
+ free_elt = h->freelists[i];
+ while (free_elt)
+ {
+ nfree++;
+ free_elt = free_elt->next_free;
+ }
+
+ s = format (s, " [len %d] %u free elts\n", 1 << i, nfree);
+ }
+
+ s = format (s, " %lld linear search buckets\n", linear_buckets);
+ s = format (s, " %lld cache hits, %lld cache misses\n",
+ h->cache_hits, h->cache_misses);
+ used_bytes = h->alloc_arena_next - h->alloc_arena;
+ s = format (s,
+ " arena: base %llx, next %llx\n"
+ " used %lld b (%lld Mbytes) of %lld b (%lld Mbytes)\n",
+ h->alloc_arena, h->alloc_arena_next,
+ used_bytes, used_bytes >> 20,
+ h->alloc_arena_size, h->alloc_arena_size >> 20);