----- Original Message ----- > CONFIG_FAIR_GROUP_SCHED (which provides task_group.cfs_rq) and > CONFIG_RT_GROUP_SCHED (which provides task_group.rt_rq) need not be both > enabled in a kernel. Let's support runq -g even if only one of them is > enabled. Rabin, The patch is queued for crash-7.1.2: https://github.com/crash-utility/crash/commit/0ab34ff030db468c219740cac8f94ae623e7cf81 Thanks, Dave > --- > task.c | 46 ++++++++++++++++++++++++++++------------------ > 1 file changed, 28 insertions(+), 18 deletions(-) > > diff --git a/task.c b/task.c > index 3a88d68..3e6aff4 100644 > --- a/task.c > +++ b/task.c > @@ -7747,8 +7747,8 @@ cmd_runq(void) > dump_milliseconds_flag = 1; > break; > case 'g': > - if (INVALID_MEMBER(task_group_cfs_rq) || > - INVALID_MEMBER(task_group_rt_rq) || > + if ((INVALID_MEMBER(task_group_cfs_rq) && > + INVALID_MEMBER(task_group_rt_rq)) || > INVALID_MEMBER(task_group_parent)) > option_not_supported(c); > dump_task_group_flag = 1; > @@ -9134,8 +9134,8 @@ static void > dump_tasks_by_task_group(void) > { > int cpu, displayed; > - ulong root_task_group, cfs_rq, cfs_rq_p; > - ulong rt_rq, rt_rq_p; > + ulong root_task_group, cfs_rq = 0, cfs_rq_p; > + ulong rt_rq = 0, rt_rq_p; > char *buf; > struct task_context *tc; > char *task_group_name; > @@ -9161,8 +9161,10 @@ dump_tasks_by_task_group(void) > buf = GETBUF(SIZE(task_group)); > readmem(root_task_group, KVADDR, buf, SIZE(task_group), > "task_group", FAULT_ON_ERROR); > - rt_rq = ULONG(buf + OFFSET(task_group_rt_rq)); > - cfs_rq = ULONG(buf + OFFSET(task_group_cfs_rq)); > + if (VALID_MEMBER(task_group_rt_rq)) > + rt_rq = ULONG(buf + OFFSET(task_group_rt_rq)); > + if (VALID_MEMBER(task_group_cfs_rq)) > + cfs_rq = ULONG(buf + OFFSET(task_group_cfs_rq)); > > fill_task_group_info_array(0, root_task_group, buf, -1); > sort_task_group_info_array(); > @@ -9178,10 +9180,14 @@ dump_tasks_by_task_group(void) > if (cpus && !NUM_IN_BITMAP(cpus, cpu)) > continue; > > - readmem(rt_rq + cpu * sizeof(ulong), KVADDR, &rt_rq_p, > - sizeof(ulong), "task_group rt_rq", FAULT_ON_ERROR); > - readmem(cfs_rq + cpu * sizeof(ulong), KVADDR, &cfs_rq_p, > - sizeof(ulong), "task_group cfs_rq", FAULT_ON_ERROR); > + if (rt_rq) > + readmem(rt_rq + cpu * sizeof(ulong), KVADDR, > + &rt_rq_p, sizeof(ulong), "task_group rt_rq", > + FAULT_ON_ERROR); > + if (cfs_rq) > + readmem(cfs_rq + cpu * sizeof(ulong), KVADDR, > + &cfs_rq_p, sizeof(ulong), "task_group cfs_rq", > + FAULT_ON_ERROR); > fprintf(fp, "%sCPU %d", displayed++ ? "\n" : "", cpu); > > if (hide_offline_cpu(cpu)) { > @@ -9197,15 +9203,19 @@ dump_tasks_by_task_group(void) > else > fprintf(fp, "%lx\n", tt->active_set[cpu]); > > - fprintf(fp, " %s_TASK_GROUP: %lx RT_RQ: %lx\n", > - task_group_name, root_task_group, rt_rq_p); > - reuse_task_group_info_array(); > - dump_tasks_in_task_group_rt_rq(0, rt_rq_p, cpu); > + if (rt_rq) { > + fprintf(fp, " %s_TASK_GROUP: %lx RT_RQ: %lx\n", > + task_group_name, root_task_group, rt_rq_p); > + reuse_task_group_info_array(); > + dump_tasks_in_task_group_rt_rq(0, rt_rq_p, cpu); > + } > > - fprintf(fp, " %s_TASK_GROUP: %lx CFS_RQ: %lx\n", > - task_group_name, root_task_group, cfs_rq_p); > - reuse_task_group_info_array(); > - dump_tasks_in_task_group_cfs_rq(0, cfs_rq_p, cpu, tc); > + if (cfs_rq) { > + fprintf(fp, " %s_TASK_GROUP: %lx CFS_RQ: %lx\n", > + task_group_name, root_task_group, cfs_rq_p); > + reuse_task_group_info_array(); > + dump_tasks_in_task_group_cfs_rq(0, cfs_rq_p, cpu, tc); > + } > } > > FREEBUF(buf); > -- > 1.7.10.4 > > -- > Crash-utility mailing list > Crash-utility@xxxxxxxxxx > https://www.redhat.com/mailman/listinfo/crash-utility > -- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility