Hi,
On Tue, Oct 7, 2014 at 12:49 PM, Howard Chen howard.chen@linaro.org wrote:
Currently only the c-state is showing the cpu topology when displaying the results. For the sake of consistency, we should also give the topology for the p-states and the wakeups array.
Before:
| Wakeup | # | Name | Count |
| cpu0 |
| ipi | --- | RESCHEDULE | 1 | | irq | 100 | ahci | 4 |
| cpu1 |
| irq | 130 | eth1-TxRx-1 | 3 | | irq | 111 | eth0-TxRx-0 | 2 | | ipi | --- | CALL_FUNCTION | 1 |
After:
| Wakeup | # | Name | Count |
| clusterA |
We're still missing core headers for HT processors. That is an easy fix to do, I can add it.
As a related side note, we are getting somewhat spammy here. I wonder if we should suppress the cluster/core headers when there is only one cluster and/or core. That can of course be another patch on top of this one and should affect C-state output as well.
Tuukka
| cpu0 |
| ipi | --- | RESCHEDULE | 1 | | irq | 100 | ahci | 4 |
| cpu1 |
| irq | 130 | eth1-TxRx-1 | 3 | | irq | 111 | eth0-TxRx-0 | 2 | | ipi | --- | CALL_FUNCTION | 1 |
Fix this by add display_cpu_header for other cases instead of CPUs only.
Signed-off-by: Howard Chen howard.chen@linaro.org
idlestat.c | 6 ++++++ topology.c | 3 +-- 2 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/idlestat.c b/idlestat.c index da615cb..e609e86 100644 --- a/idlestat.c +++ b/idlestat.c @@ -242,6 +242,10 @@ static int display_pstates(void *arg, char *cpu) bool cpu_header = false; struct cpufreq_pstates *pstates = arg;
if(!strstr(cpu, "cpu")){
display_cpu_header(cpu, 64);
return 0;
} for (i = 0; i < pstates->max; i++) { struct cpufreq_pstate *p = &(pstates->pstate[i]);
@@ -299,6 +303,8 @@ static int display_wakeup(void *arg, char *cpu) struct wakeup_info *wakeinfo = &cstates->wakeinfo; struct wakeup_irq *irqinfo = wakeinfo->irqinfo;
if(!strstr(cpu, "cpu"))
display_cpu_header(cpu, 44); for (i = 0; i < wakeinfo->nrdata; i++, irqinfo++) { if (!cpu_header) {
diff --git a/topology.c b/topology.c index 92521e1..47c6983 100644 --- a/topology.c +++ b/topology.c @@ -458,8 +458,7 @@ int dump_cpu_topo_info(int (*dump)(void *, char *), int cstate)
sprintf(tmp, "cluster%c", s_phy->physical_id + 'A');
if (cstate)
dump(s_phy->cstates, tmp);
dump(s_phy->cstates, tmp); list_for_each_entry(s_core, &s_phy->core_head, list_core) { if (s_core->is_ht && cstate) {
-- 1.9.1