mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 13:55:32 +00:00
regmap: rbtree Expose total memory consumption in the rbtree debugfs entry
Provide a feel of how much overhead the rbtree cache adds to the game. [Slightly reworded output in debugfs -- broonie] Signed-off-by: Dimitris Papastamos <dp@opensource.wolfsonmicro.com> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
eb4cb76ff0
commit
a42277c739
1 changed files with 7 additions and 2 deletions
|
@ -138,15 +138,20 @@ static int rbtree_show(struct seq_file *s, void *ignored)
|
|||
struct regcache_rbtree_node *n;
|
||||
struct rb_node *node;
|
||||
unsigned int base, top;
|
||||
size_t mem_size;
|
||||
int nodes = 0;
|
||||
int registers = 0;
|
||||
int this_registers, average;
|
||||
|
||||
map->lock(map);
|
||||
|
||||
mem_size = sizeof(*rbtree_ctx);
|
||||
|
||||
for (node = rb_first(&rbtree_ctx->root); node != NULL;
|
||||
node = rb_next(node)) {
|
||||
n = container_of(node, struct regcache_rbtree_node, node);
|
||||
mem_size += sizeof(*n);
|
||||
mem_size += (n->blklen * map->cache_word_size);
|
||||
|
||||
regcache_rbtree_get_base_top_reg(map, n, &base, &top);
|
||||
this_registers = ((top - base) / map->reg_stride) + 1;
|
||||
|
@ -161,8 +166,8 @@ static int rbtree_show(struct seq_file *s, void *ignored)
|
|||
else
|
||||
average = 0;
|
||||
|
||||
seq_printf(s, "%d nodes, %d registers, average %d registers\n",
|
||||
nodes, registers, average);
|
||||
seq_printf(s, "%d nodes, %d registers, average %d registers, used %zu bytes\n",
|
||||
nodes, registers, average, mem_size);
|
||||
|
||||
map->unlock(map);
|
||||
|
||||
|
|
Loading…
Reference in a new issue