CFS runqueue loop detection
----- Original Message -----
> > > ----- Original Message ----- > > Here is a patch against crash v6.0.2 that adds duplicate node detection > > per-CPU for the CFS runqueue display in dump_CFS_runqueues() for the > > runq command. > > > > This resolves 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 <dmair@suse.com> > > --- > > That was quick! > > I'm going to have to re-work this patch slightly because of the queued > changes for crash-6.0.3 that are based upon Daisuke's runq patch: > > [Crash-utility] [PATCH] runq: search current task's runqueue explicitly > https://www.redhat.com/archives/crash-utility/2012-January/msg00009.html > Dave, On second thought, I'd rather have you update your patch accordingly, and then test with your dumpfile to make sure it works as planned. Can you do this: $ wget http://people.redhat.com/anderson/crash.tar.gz Then go into any top-level crash utility source directory, and do this: $ tar xvzmf /path/to/crash.tar.gz which will overwrite everything -- just "make" to rebuild with all the queued crash-6.0.3 changes to date. Then re-do your patch to task.c, test it, and re-post it. Thanks, Dave -- Crash-utility mailing list Crash-utility@redhat.com https://www.redhat.com/mailman/listinfo/crash-utility |
CFS runqueue loop detection
On 02/01/2012 02:34 PM, Dave Anderson wrote:
----- Original Message ----- ----- Original Message ----- Here is a patch against crash v6.0.2 that adds duplicate node detection per-CPU for the CFS runqueue display in dump_CFS_runqueues() for the runq command. This resolves 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<dmair@suse.com> --- That was quick! I'm going to have to re-work this patch slightly because of the queued changes for crash-6.0.3 that are based upon Daisuke's runq patch: [Crash-utility] [PATCH] runq: search current task's runqueue explicitly https://www.redhat.com/archives/crash-utility/2012-January/msg00009.html Dave, On second thought, I'd rather have you update your patch accordingly, and then test with your dumpfile to make sure it works as planned. Can you do this: $ wget http://people.redhat.com/anderson/crash.tar.gz Then go into any top-level crash utility source directory, and do this: $ tar xvzmf /path/to/crash.tar.gz which will overwrite everything -- just "make" to rebuild with all the queued crash-6.0.3 changes to date. Then re-do your patch to task.c, test it, and re-post it. Dave, I've got a patch prepared but I can't test it until my morning tomorrow (02/02) so I'll post it then. I'm sorry for the delay. -- David Mair SUSE Linux -- Crash-utility mailing list Crash-utility@redhat.com https://www.redhat.com/mailman/listinfo/crash-utility |
CFS runqueue loop detection
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 <dmair@suse.com> --- 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 ", + tc->task); + return total; + } total++; } @@ -7220,7 +7227,9 @@ dump_CFS_runqueues(void) fprintf(fp, " CFS RB_ROOT: %lx ", (ulong)root); + hq_open(); tot = dump_tasks_in_cfs_rq(cfs_rq); + hq_close(); if (!tot) { INDENT(5); fprintf(fp, "[no tasks queued] "); -- Crash-utility mailing list Crash-utility@redhat.com https://www.redhat.com/mailman/listinfo/crash-utility |
CFS runqueue loop detection
----- 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 <dmair@suse.com> > --- > 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 ", > + tc->task); > + return total; > + } > total++; > } > > @@ -7220,7 +7227,9 @@ dump_CFS_runqueues(void) > > fprintf(fp, " CFS RB_ROOT: %lx ", (ulong)root); > > + hq_open(); > tot = dump_tasks_in_cfs_rq(cfs_rq); > + hq_close(); > if (!tot) { > INDENT(5); > fprintf(fp, "[no tasks queued] "); > Thanks Dave -- queued for crash-6.0.3. Dave -- Crash-utility mailing list Crash-utility@redhat.com https://www.redhat.com/mailman/listinfo/crash-utility |
| All times are GMT. The time now is 09:31 AM. |
VBulletin, Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.