Hi Dave, When opening an s390(x) dump where the kernel has panic'ed, I currently get the following warnings: WARNING: multiple active tasks have called die and/or panic WARNING: multiple active tasks have called die In task.c we call "foreach bt -t" and check if we find "die" on the stack. When doing this on s390 with the "-t" option normally we find multiple die() calls for one single task: crash> foreach bt -t | grep "die at" [ 9ca7f7f0] die at 100f26 [ 9ca7f8f0] die at 100f26 [ 9ca7f9b8] die at 100f26 [ 9ca7fa40] die at 100ee6 [ 9ca7fa90] die at 100f26 The current code then assumes that multiple tasks have called die(). This patch fixes this problem by an additional check that allows multiple occurrences of the die() call on the stack (with bt -t) for one task. Signed-off-by: Michael Holzheu <holzheu@xxxxxxxxxxxxxxxxxx> --- task.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) --- a/task.c +++ b/task.c @@ -5587,7 +5587,8 @@ panic_search(void) dietask = lasttask; break; default: - dietask = NO_TASK+1; + if (dietask != lasttask) + dietask = NO_TASK+1; break; } } @@ -6444,7 +6445,8 @@ clear_active_set(void) die_task = task; \ break; \ default: \ - die_task = NO_TASK+1; \ + if (die_task != task) \ + die_task = NO_TASK+1; \ break; \ } \ } \ @@ -6457,7 +6459,8 @@ clear_active_set(void) xendump_panic_hook(buf); \ break; \ default: \ - panic_task = NO_TASK+1; \ + if (panic_task != task) \ + panic_task = NO_TASK+1; \ break; \ } \ } \
When opening an s390(x) dump where the kernel has panic'ed, I currently get the following warnings: WARNING: multiple active tasks have called die and/or panic WARNING: multiple active tasks have called die In task.c we call "foreach bt -t" and check if we find "die" on the stack. When doing this on s390 with the "-t" option normally we find multiple die() calls for one single task: crash> foreach bt -t | grep "die at" [ 9ca7f7f0] die at 100f26 [ 9ca7f8f0] die at 100f26 [ 9ca7f9b8] die at 100f26 [ 9ca7fa40] die at 100ee6 [ 9ca7fa90] die at 100f26 The current code then assumes that multiple tasks have called die(). This patch fixes this problem by an additional check that allows multiple occurrences of the die() call on the stack (with bt -t) for one task. Signed-off-by: Michael Holzheu <holzheu@xxxxxxxxxxxxxxxxxx> --- task.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) --- a/task.c +++ b/task.c @@ -5587,7 +5587,8 @@ panic_search(void) dietask = lasttask; break; default: - dietask = NO_TASK+1; + if (dietask != lasttask) + dietask = NO_TASK+1; break; } } @@ -6444,7 +6445,8 @@ clear_active_set(void) die_task = task; \ break; \ default: \ - die_task = NO_TASK+1; \ + if (die_task != task) \ + die_task = NO_TASK+1; \ break; \ } \ } \ @@ -6457,7 +6459,8 @@ clear_active_set(void) xendump_panic_hook(buf); \ break; \ default: \ - panic_task = NO_TASK+1; \ + if (panic_task != task) \ + panic_task = NO_TASK+1; \ break; \ } \ } \
-- Crash-utility mailing list Crash-utility@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/crash-utility