mirror of
https://github.com/torvalds/linux.git
synced 2026-05-30 10:04:04 +02:00
tools/power turbostat: Refactor added column header printing
Over time, we built up many copies of nearly identical code... Signed-off-by: Len Brown <len.brown@intel.com>
This commit is contained in:
parent
4e35847d7b
commit
56dbb87850
|
|
@ -2705,6 +2705,24 @@ void bic_lookup(cpu_set_t *ret_set, char *name_list, enum show_hide_mode mode)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* print_name()
|
||||||
|
* Print column header name for 64-bit counter in 16 columns (at least 8-char plus a tab)
|
||||||
|
* Otherwise, allow the name + tab to fit within 8-coumn tab-stop.
|
||||||
|
* In both cases, left justififed, just like other turbostat columns,
|
||||||
|
* to allow the column values to consume the tab.
|
||||||
|
*
|
||||||
|
* Yes, 32-bit counters can overflow 8-columns, but then they are usually 64-bit counters.
|
||||||
|
* 64-bit counters can overflow 16-columns, but rarely do.
|
||||||
|
*/
|
||||||
|
static inline int print_name(int width, int *printed, char *delim, char *name)
|
||||||
|
{
|
||||||
|
if (width == 64)
|
||||||
|
return (sprintf(outp, "%s%-8s", (*printed++ ? delim : ""), name));
|
||||||
|
else
|
||||||
|
return (sprintf(outp, "%s%s", (*printed++ ? delim : ""), name));
|
||||||
|
}
|
||||||
|
|
||||||
void print_header(char *delim)
|
void print_header(char *delim)
|
||||||
{
|
{
|
||||||
struct msr_counter *mp;
|
struct msr_counter *mp;
|
||||||
|
|
@ -2760,50 +2778,22 @@ void print_header(char *delim)
|
||||||
if (DO_BIC(BIC_SMI))
|
if (DO_BIC(BIC_SMI))
|
||||||
outp += sprintf(outp, "%sSMI", (printed++ ? delim : ""));
|
outp += sprintf(outp, "%sSMI", (printed++ ? delim : ""));
|
||||||
|
|
||||||
for (mp = sys.tp; mp; mp = mp->next) {
|
for (mp = sys.tp; mp; mp = mp->next)
|
||||||
|
outp += print_name(mp->width, &printed, delim, mp->name);
|
||||||
|
|
||||||
if (mp->format == FORMAT_RAW || mp->format == FORMAT_AVERAGE) {
|
for (pp = sys.perf_tp; pp; pp = pp->next)
|
||||||
if (mp->width == 64)
|
outp += print_name(pp->width, &printed, delim, pp->name);
|
||||||
outp += sprintf(outp, "%s%18.18s", (printed++ ? delim : ""), mp->name);
|
|
||||||
else
|
|
||||||
outp += sprintf(outp, "%s%10.10s", (printed++ ? delim : ""), mp->name);
|
|
||||||
} else {
|
|
||||||
if ((mp->type == COUNTER_ITEMS) && sums_need_wide_columns)
|
|
||||||
outp += sprintf(outp, "%s%8s", (printed++ ? delim : ""), mp->name);
|
|
||||||
else
|
|
||||||
outp += sprintf(outp, "%s%s", (printed++ ? delim : ""), mp->name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (pp = sys.perf_tp; pp; pp = pp->next) {
|
|
||||||
|
|
||||||
if (pp->format == FORMAT_RAW) {
|
|
||||||
if (pp->width == 64)
|
|
||||||
outp += sprintf(outp, "%s%18.18s", (printed++ ? delim : ""), pp->name);
|
|
||||||
else
|
|
||||||
outp += sprintf(outp, "%s%10.10s", (printed++ ? delim : ""), pp->name);
|
|
||||||
} else {
|
|
||||||
if ((pp->type == COUNTER_ITEMS) && sums_need_wide_columns)
|
|
||||||
outp += sprintf(outp, "%s%8s", (printed++ ? delim : ""), pp->name);
|
|
||||||
else
|
|
||||||
outp += sprintf(outp, "%s%s", (printed++ ? delim : ""), pp->name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ppmt = sys.pmt_tp;
|
ppmt = sys.pmt_tp;
|
||||||
while (ppmt) {
|
while (ppmt) {
|
||||||
switch (ppmt->type) {
|
switch (ppmt->type) {
|
||||||
case PMT_TYPE_RAW:
|
case PMT_TYPE_RAW:
|
||||||
if (pmt_counter_get_width(ppmt) <= 32)
|
outp += print_name(pmt_counter_get_width(ppmt), &printed, delim, ppmt->name);
|
||||||
outp += sprintf(outp, "%s%10.10s", (printed++ ? delim : ""), ppmt->name);
|
|
||||||
else
|
|
||||||
outp += sprintf(outp, "%s%18.18s", (printed++ ? delim : ""), ppmt->name);
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PMT_TYPE_XTAL_TIME:
|
case PMT_TYPE_XTAL_TIME:
|
||||||
case PMT_TYPE_TCORE_CLOCK:
|
case PMT_TYPE_TCORE_CLOCK:
|
||||||
outp += sprintf(outp, "%s%s", (printed++ ? delim : ""), ppmt->name);
|
outp += print_name(32, &printed, delim, ppmt->name);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2836,49 +2826,23 @@ void print_header(char *delim)
|
||||||
outp += sprintf(outp, "%sCor_J", (printed++ ? delim : ""));
|
outp += sprintf(outp, "%sCor_J", (printed++ ? delim : ""));
|
||||||
}
|
}
|
||||||
|
|
||||||
for (mp = sys.cp; mp; mp = mp->next) {
|
for (mp = sys.cp; mp; mp = mp->next)
|
||||||
if (mp->format == FORMAT_RAW || mp->format == FORMAT_AVERAGE) {
|
outp += print_name(mp->width, &printed, delim, mp->name);
|
||||||
if (mp->width == 64)
|
|
||||||
outp += sprintf(outp, "%s%18.18s", delim, mp->name);
|
|
||||||
else
|
|
||||||
outp += sprintf(outp, "%s%10.10s", delim, mp->name);
|
|
||||||
} else {
|
|
||||||
if ((mp->type == COUNTER_ITEMS) && sums_need_wide_columns)
|
|
||||||
outp += sprintf(outp, "%s%8s", delim, mp->name);
|
|
||||||
else
|
|
||||||
outp += sprintf(outp, "%s%s", delim, mp->name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (pp = sys.perf_cp; pp; pp = pp->next) {
|
for (pp = sys.perf_cp; pp; pp = pp->next)
|
||||||
|
outp += print_name(pp->width, &printed, delim, pp->name);
|
||||||
if (pp->format == FORMAT_RAW) {
|
|
||||||
if (pp->width == 64)
|
|
||||||
outp += sprintf(outp, "%s%18.18s", (printed++ ? delim : ""), pp->name);
|
|
||||||
else
|
|
||||||
outp += sprintf(outp, "%s%10.10s", (printed++ ? delim : ""), pp->name);
|
|
||||||
} else {
|
|
||||||
if ((pp->type == COUNTER_ITEMS) && sums_need_wide_columns)
|
|
||||||
outp += sprintf(outp, "%s%8s", (printed++ ? delim : ""), pp->name);
|
|
||||||
else
|
|
||||||
outp += sprintf(outp, "%s%s", (printed++ ? delim : ""), pp->name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ppmt = sys.pmt_cp;
|
ppmt = sys.pmt_cp;
|
||||||
while (ppmt) {
|
while (ppmt) {
|
||||||
switch (ppmt->type) {
|
switch (ppmt->type) {
|
||||||
case PMT_TYPE_RAW:
|
case PMT_TYPE_RAW:
|
||||||
if (pmt_counter_get_width(ppmt) <= 32)
|
outp += print_name(pmt_counter_get_width(ppmt), &printed, delim, ppmt->name);
|
||||||
outp += sprintf(outp, "%s%10.10s", (printed++ ? delim : ""), ppmt->name);
|
|
||||||
else
|
|
||||||
outp += sprintf(outp, "%s%18.18s", (printed++ ? delim : ""), ppmt->name);
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PMT_TYPE_XTAL_TIME:
|
case PMT_TYPE_XTAL_TIME:
|
||||||
case PMT_TYPE_TCORE_CLOCK:
|
case PMT_TYPE_TCORE_CLOCK:
|
||||||
outp += sprintf(outp, "%s%s", (printed++ ? delim : ""), ppmt->name);
|
outp += print_name(32, &printed, delim, ppmt->name);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2966,51 +2930,22 @@ void print_header(char *delim)
|
||||||
if (DO_BIC(BIC_UNCORE_MHZ))
|
if (DO_BIC(BIC_UNCORE_MHZ))
|
||||||
outp += sprintf(outp, "%sUncMHz", (printed++ ? delim : ""));
|
outp += sprintf(outp, "%sUncMHz", (printed++ ? delim : ""));
|
||||||
|
|
||||||
for (mp = sys.pp; mp; mp = mp->next) {
|
for (mp = sys.pp; mp; mp = mp->next)
|
||||||
if (mp->format == FORMAT_RAW || mp->format == FORMAT_AVERAGE) {
|
outp += print_name(mp->width, &printed, delim, mp->name);
|
||||||
if (mp->width == 64)
|
|
||||||
outp += sprintf(outp, "%s%18.18s", delim, mp->name);
|
|
||||||
else if (mp->width == 32)
|
|
||||||
outp += sprintf(outp, "%s%10.10s", delim, mp->name);
|
|
||||||
else
|
|
||||||
outp += sprintf(outp, "%s%7.7s", delim, mp->name);
|
|
||||||
} else {
|
|
||||||
if ((mp->type == COUNTER_ITEMS) && sums_need_wide_columns)
|
|
||||||
outp += sprintf(outp, "%s%8s", delim, mp->name);
|
|
||||||
else
|
|
||||||
outp += sprintf(outp, "%s%7.7s", delim, mp->name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
for (pp = sys.perf_pp; pp; pp = pp->next) {
|
for (pp = sys.perf_pp; pp; pp = pp->next)
|
||||||
|
outp += print_name(pp->width, &printed, delim, pp->name);
|
||||||
if (pp->format == FORMAT_RAW) {
|
|
||||||
if (pp->width == 64)
|
|
||||||
outp += sprintf(outp, "%s%18.18s", (printed++ ? delim : ""), pp->name);
|
|
||||||
else
|
|
||||||
outp += sprintf(outp, "%s%10.10s", (printed++ ? delim : ""), pp->name);
|
|
||||||
} else {
|
|
||||||
if ((pp->type == COUNTER_ITEMS) && sums_need_wide_columns)
|
|
||||||
outp += sprintf(outp, "%s%8s", (printed++ ? delim : ""), pp->name);
|
|
||||||
else
|
|
||||||
outp += sprintf(outp, "%s%s", (printed++ ? delim : ""), pp->name);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ppmt = sys.pmt_pp;
|
ppmt = sys.pmt_pp;
|
||||||
while (ppmt) {
|
while (ppmt) {
|
||||||
switch (ppmt->type) {
|
switch (ppmt->type) {
|
||||||
case PMT_TYPE_RAW:
|
case PMT_TYPE_RAW:
|
||||||
if (pmt_counter_get_width(ppmt) <= 32)
|
outp += print_name(pmt_counter_get_width(ppmt), &printed, delim, ppmt->name);
|
||||||
outp += sprintf(outp, "%s%10.10s", (printed++ ? delim : ""), ppmt->name);
|
|
||||||
else
|
|
||||||
outp += sprintf(outp, "%s%18.18s", (printed++ ? delim : ""), ppmt->name);
|
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case PMT_TYPE_XTAL_TIME:
|
case PMT_TYPE_XTAL_TIME:
|
||||||
case PMT_TYPE_TCORE_CLOCK:
|
case PMT_TYPE_TCORE_CLOCK:
|
||||||
outp += sprintf(outp, "%s%s", (printed++ ? delim : ""), ppmt->name);
|
outp += print_name(32, &printed, delim, ppmt->name);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user