timer -r will display hrtimer. This patch will hide offline cpus.

The original output is like below:
<cut>
crash> timer -r
...
  CLOCK: 2  HRTIMER_CLOCK_BASE: ffff88003fc8e800  [ktime_get_boottime]
  (empty)

CPU: 2  HRTIMER_CPU_BASE: ffff88003fd0e740
  CLOCK: 0  HRTIMER_CLOCK_BASE: ffff88003fd0e780  [ktime_get]
  (empty)

  CLOCK: 1  HRTIMER_CLOCK_BASE: ffff88003fd0e7c0  [ktime_get_real]
  (empty)

  CLOCK: 2  HRTIMER_CLOCK_BASE: ffff88003fd0e800  [ktime_get_boottime]
  (empty)

CPU: 3  HRTIMER_CPU_BASE: ffff88003fd8e740
...
<cut>

With data of offline cpu(cpu #2) hiden, the output is like below:
<cut>
crash> timer -r
...
  CLOCK: 2  HRTIMER_CLOCK_BASE: ffff88003fc8e800  [ktime_get_boottime]
  (empty)

CPU: 2  <OFFLINE>

CPU: 3  HRTIMER_CPU_BASE: ffff88003fd8e740
...
<cut>

Signed-off-by: Qiao Nuohan <[email protected]>
---
 kernel.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/kernel.c b/kernel.c
index 8063d61..0665ada 100755
--- a/kernel.c
+++ b/kernel.c
@@ -6765,9 +6765,16 @@ dump_hrtimer_data(void)
                option_not_supported('r');
 
        hrtimer_bases = per_cpu_symbol_search("hrtimer_bases");
+
        for (i = 0; i < kt->cpus; i++) {
                if (i)
                        fprintf(fp, "\n");
+
+               if (hide_offline_cpu(i)) {
+                       fprintf(fp, "CPU: %d  <OFFLINE>\n", i);
+                       continue;
+               }
+
                fprintf(fp, "CPU: %d  ", i);
                if (VALID_STRUCT(hrtimer_clock_base)) {
                        fprintf(fp, "HRTIMER_CPU_BASE: %lx\n",
-- 
1.8.5.3

--
Crash-utility mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/crash-utility

Reply via email to