On Tue, Dec 17, 2024 at 12:14 PM <devel-request@xxxxxxxxxxxxxxxxxxxxxxxxxxx> wrote:
Date: Tue, 17 Dec 2024 17:12:23 +1300
From: Tao Liu <ltao@xxxxxxxxxx>
Subject: Re: [PATCH] Fix incorrect 'bt -v' output
suggesting overflow
To: Lucas Oakley <soakley@xxxxxxxxxx>
Cc: devel@xxxxxxxxxxxxxxxxxxxxxxxxxxx
Message-ID:
<CAO7dBbUQ6HWH03iE6Knd9wW5den0hwAsGORXsHzVVJXxx1-O7g@xxxxxxxxxxxxxx>
Content-Type: text/plain; charset="UTF-8"
Hi Lucas,
Thanks for the fix, LGTM, ack.
Applied(with slight changes):
Thanks,
Tao Liu
On Sun, Dec 15, 2024 at 12:03 PM Lucas Oakley <soakley@xxxxxxxxxx> wrote:
>
> Change check_stack_overflow() to check if the thread_info's cpu
> member is smaller than possible existing CPUs, rather than the
> kernel table's cpu number (kt->cpus). The kernel table's cpu number
> is changed on some architectures to reflect the highest numbered
> online cpu + 1. This can cause a false positive in
> check_stack_overflow() if the cpu member of a parked task's
> thread_info structure, assigned to an offlined cpu, is larger than
> the kt->cpus but lower than the number of existing logical cpus.
> An example of this is RHEL 7 on s390x or RHEL 8 on ppc64le when
> the highest numbered CPU is offlined.
>
> Signed-off-by: Lucas Oakley <soakley@xxxxxxxxxx>
> ---
> task.c | 4 ++--
> 1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/task.c b/task.c
> index 33de7da..93dab0e 100644
> --- a/task.c
> +++ b/task.c
> @@ -11253,12 +11253,12 @@ check_stack_overflow(void)
> cpu = 0;
> break;
> }
> - if (cpu >= kt->cpus) {
> + if (cpu >= get_cpus_present()) {
> if (!overflow)
> print_task_header(fp, tc, 0);
> fprintf(fp,
> " possible stack overflow: thread_info.cpu: %d >= %d\n",
> - cpu, kt->cpus);
> + cpu, get_cpus_present());
> overflow++; total++;
> }
> }
> --
> 2.47.1
-- Crash-utility mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxxxxxx https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/ Contribution Guidelines: https://github.com/crash-utility/crash/wiki