library: summary name now more descriptive, <slabinfo>

The <slabinfo> header provides 3 groups of enumerators
with prefixes of SLABINFO, SLABS & SLABNODE. The first
is strictly user oriented & isn't supported internally
by any structure. The other two, however, have structs
associated with 'em but, unfortunately, 1 is misnamed.

The 'struct slabs_node' is associated with 'nodes' and
supports the enumerators with the SLABNODE prefix. But
the 'struct slabs_hist' was associated with 'hist' yet
supports those enumerators with just the SLABS prefix.

We do not care very much what some structure is called
but we do care about an identifier used manipulate it.

This patch will trade the 'hist' identifier associated
with 'struct slabs_hist' for a more congruous 'slabs'.

[ it's awful when the author can't remember what the ]
[ true meaning of an identifier is after creating it ]

Signed-off-by: Jim Warner <james.warner@comcast.net>
This commit is contained in:
Jim Warner 2016-09-17 03:33:33 -05:00 committed by Craig Small
parent eeeba3e66c
commit 5197fa0a71

View File

@ -125,7 +125,7 @@ struct slabinfo_info {
int nodes_alloc; /* nodes alloc()ed */
int nodes_used; /* nodes using alloced memory */
struct slabs_node *nodes; /* first slabnode of this list */
struct slabs_hist hist; /* new/old slabs_summ data */
struct slabs_hist slabs; /* new/old slabs_summ data */
struct ext_support select_ext; /* supports concurrent select/reap */
struct ext_support fetch_ext; /* supports concurrent select/reap */
struct fetch_support fetch; /* support for procps_slabinfo_reap */
@ -359,7 +359,7 @@ static int get_slabnode (
/* parse_slabinfo20:
*
* sactual parse routine for slabinfo 2.x (2.6 kernels)
* Actual parse routine for slabinfo 2.x (2.6 kernels)
* Note: difference between 2.0 and 2.1 is in the ": globalstat" part where version 2.1
* has extra column <nodeallocs>. We don't use ": globalstat" part in both versions.
*
@ -396,10 +396,10 @@ static int parse_slabinfo20 (
char buffer[SLABINFO_LINE_LEN];
int retval;
int page_size = getpagesize();
struct slabs_summ *hist = &(info->hist.new);
struct slabs_summ *slabs = &(info->slabs.new);
hist->min_obj_size = INT_MAX;
hist->max_obj_size = 0;
slabs->min_obj_size = INT_MAX;
slabs->max_obj_size = 0;
while (fgets(buffer, SLABINFO_LINE_LEN, info->slabinfo_fp )) {
if (buffer[0] == '#')
@ -424,32 +424,32 @@ static int parse_slabinfo20 (
if (!node->name[0])
snprintf(node->name, sizeof(node->name), "%s", "unknown");
if (node->obj_size < hist->min_obj_size)
hist->min_obj_size = node->obj_size;
if (node->obj_size > hist->max_obj_size)
hist->max_obj_size = node->obj_size;
if (node->obj_size < slabs->min_obj_size)
slabs->min_obj_size = node->obj_size;
if (node->obj_size > slabs->max_obj_size)
slabs->max_obj_size = node->obj_size;
node->cache_size = (unsigned long)node->nr_slabs * node->pages_per_slab
* page_size;
if (node->nr_objs) {
node->use = (unsigned int)100 * (node->nr_active_objs / node->nr_objs);
hist->nr_active_caches++;
slabs->nr_active_caches++;
} else
node->use = 0;
hist->nr_objs += node->nr_objs;
hist->nr_active_objs += node->nr_active_objs;
hist->total_size += (unsigned long)node->nr_objs * node->obj_size;
hist->active_size += (unsigned long)node->nr_active_objs * node->obj_size;
hist->nr_pages += node->nr_slabs * node->pages_per_slab;
hist->nr_slabs += node->nr_slabs;
hist->nr_active_slabs += node->nr_active_slabs;
hist->nr_caches++;
slabs->nr_objs += node->nr_objs;
slabs->nr_active_objs += node->nr_active_objs;
slabs->total_size += (unsigned long)node->nr_objs * node->obj_size;
slabs->active_size += (unsigned long)node->nr_active_objs * node->obj_size;
slabs->nr_pages += node->nr_slabs * node->pages_per_slab;
slabs->nr_slabs += node->nr_slabs;
slabs->nr_active_slabs += node->nr_active_slabs;
slabs->nr_caches++;
}
if (hist->nr_objs)
hist->avg_obj_size = hist->total_size / hist->nr_objs;
if (slabs->nr_objs)
slabs->avg_obj_size = slabs->total_size / slabs->nr_objs;
return 0;
} // end: parse_slabinfo20
@ -468,8 +468,8 @@ static int read_slabinfo_failed (
char line[SLABINFO_LINE_LEN];
int retval, major, minor;
memcpy(&info->hist.old, &info->hist.new, sizeof(struct slabs_summ));
memset(&(info->hist.new), 0, sizeof(struct slabs_summ));
memcpy(&info->slabs.old, &info->slabs.new, sizeof(struct slabs_summ));
memset(&(info->slabs.new), 0, sizeof(struct slabs_summ));
if ((retval = alloc_slabnodes(info)) < 0)
return retval;
@ -496,7 +496,7 @@ static int read_slabinfo_failed (
return -ERANGE;
if (!info->slabinfo_was_read) {
memcpy(&info->hist.old, &info->hist.new, sizeof(struct slabs_summ));
memcpy(&info->slabs.old, &info->slabs.new, sizeof(struct slabs_summ));
info->slabinfo_was_read = 1;
}
return retval;
@ -729,7 +729,7 @@ static int slabinfo_stacks_fetch (
return -1;
memcpy(info->fetch.anchor + n_inuse, ext->stacks, sizeof(void *) * STACKS_INCR);
}
slabinfo_assign_results(info->fetch.anchor[n_inuse], &info->hist, &info->nodes[n_inuse]);
slabinfo_assign_results(info->fetch.anchor[n_inuse], &info->slabs, &info->nodes[n_inuse]);
++n_inuse;
}
@ -901,7 +901,7 @@ PROCPS_EXPORT struct slabinfo_result *procps_slabinfo_get (
// with 'get', we must NOT honor the usual 'noop' guarantee
// if (item > SLABINFO_noop)
info->get_this.result.ul_int = 0;
Item_table[item].setsfunc(&info->get_this, &info->hist, &info->nul_node);
Item_table[item].setsfunc(&info->get_this, &info->slabs, &info->nul_node);
return &info->get_this;
} // end: procps_slabinfo_get
@ -964,7 +964,7 @@ PROCPS_EXPORT struct slabinfo_stack *procps_slabinfo_select (
if (read_slabinfo_failed(info))
return NULL;
slabinfo_assign_results(info->select_ext.extents->stacks[0], &info->hist, &info->nul_node);
slabinfo_assign_results(info->select_ext.extents->stacks[0], &info->slabs, &info->nul_node);
info->select_ext.dirty_stacks = 1;
return info->select_ext.extents->stacks[0];