----- Original Message -----
> Here is a patch against crash v6.0.3rc24 that adds duplicate node
> detection per-CPU for the CFS runqueue display in dump_CFS_runqueues()
> for the runq command.
> 
> This resolves for that 6.0.3 rc the failure to bail-out of the unending
> looping display I get with the crash dump I have that has a corrupted
> CFS runqueue containing a loop.
> 
> Signed-off-by: David Mair <[email protected]>
> ---
>  task.c |   11 ++++++++++-
>  1 files changed, 10 insertions(+), 1 deletions(-)
> 
> diff --git a/task.c b/task.c
> index c81cb74..7a3e8e1 100755
> --- a/task.c
> +++ b/task.c
> @@ -7060,7 +7060,14 @@ dump_tasks_in_cfs_rq(ulong cfs_rq)
>                                    OFFSET(sched_entity_run_node));
>               if (!tc)
>                       continue;
> -             dump_task_runq_entry(tc);
> +             if (hq_enter((ulong)tc)) {
> +                     dump_task_runq_entry(tc);
> +             } else {
> +                     error(WARNING, "Duplicate CFS runqueue node, task %lx"
> +                             ", probable loop\n",
> +                             tc->task);
> +                     return total;
> +             }
>               total++;
>       }
> 
> @@ -7220,7 +7227,9 @@ dump_CFS_runqueues(void)
> 
>               fprintf(fp, "  CFS RB_ROOT: %lx\n", (ulong)root);
> 
> +             hq_open();
>               tot = dump_tasks_in_cfs_rq(cfs_rq);
> +             hq_close();
>               if (!tot) {
>                       INDENT(5);
>                       fprintf(fp, "[no tasks queued]\n");
> 

Thanks Dave -- queued for crash-6.0.3.

Dave

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

Reply via email to