On Wed, Jun 12, 2024 at 3:16 PM Tao Liu <l...@redhat.com> wrote:

> Hi Lijiang & Kazu,
>
> On Wed, Jun 12, 2024 at 1:03 PM lijiang <liji...@redhat.com> wrote:
> >
> > On Wed, Jun 12, 2024 at 12:29 PM HAGIO KAZUHITO(萩尾 一仁) <
> k-hagio...@nec.com> wrote:
> >>
> >>
> >> On 2024/06/12 12:42, Lianbo Jiang wrote:
> >> > The commit 48764a14bc58 may cause a regression issue when the
> CONFIG_X86_FRED
> >> > is not enabled, this is because the SIZE(fred_frame) will call the
> >> > SIZE_verify() to determine if the fred_frame is valid, otherwise it
> will
> >> > emit an error:
> >> >
> >> >    crash> bt 1
> >> >
> >> >    bt: invalid structure size: fred_frame
> >> >          FILE: x86_64.c  LINE: 4089  FUNCTION:
> x86_64_low_budget_back_trace_cmd()
> >> >
> >> >    [/home/k-hagio/bin/crash] error trace: 588df3 => 5cbc72 => 5eb3e1
> => 5eb366
> >> >    PID: 1        TASK: ffff9f94c024b980  CPU: 2    COMMAND: "systemd"
> >> >       #0 [ffffade44001bca8] __schedule at ffffffffb948ebbb
> >> >       #1 [ffffade44001bd10] schedule at ffffffffb948f04d
> >> >       #2 [ffffade44001bd20] schedule_hrtimeout_range_clock at
> ffffffffb9494fef
> >> >       #3 [ffffade44001bda8] ep_poll at ffffffffb8c91be8
> >> >       #4 [ffffade44001be48] do_epoll_wait at ffffffffb8c91d11
> >> >       #5 [ffffade44001be80] __x64_sys_epoll_wait at ffffffffb8c92590
> >> >       #6 [ffffade44001bed0] do_syscall_64 at ffffffffb947f459
> >> >       #7 [ffffade44001bf50] entry_SYSCALL_64_after_hwframe at
> ffffffffb96000ea
> >> >
> >> >        5eb366: SIZE_verify.part.42+70
> >> >        5eb3e1: SIZE_verify+49
> >> >        5cbc72: x86_64_low_budget_back_trace_cmd+3010
> >> >        588df3: back_trace+1523
> >> >
> >> >    bt: invalid structure size: fred_frame
> >> >          FILE: x86_64.c  LINE: 4089  FUNCTION:
> x86_64_low_budget_back_trace_cmd()
> >> >
> >> > Let's replace the SIZE(fred_frame) with the VALID_SIZE(fred_frame) to
> >> > fix it.
> >> >
> >> > Fixes: 48764a14bc58 ("x86_64: fix for adding
> top_of_kernel_stack_padding for kernel stack")
> >> > Reported-by: Kazuhito Hagio <k-hagio...@nec.com>
> >> > Signed-off-by: Lianbo Jiang <liji...@redhat.com>
> >> > ---
> >> >   x86_64.c | 4 ++--
> >> >   1 file changed, 2 insertions(+), 2 deletions(-)
> >> >
> >> > diff --git a/x86_64.c b/x86_64.c
> >> > index 6777c93e6b47..469d26b05e24 100644
> >> > --- a/x86_64.c
> >> > +++ b/x86_64.c
> >> > @@ -4086,7 +4086,7 @@ in_exception_stack:
> >> >
> >> >           if (!irq_eframe && !is_kernel_thread(bt->tc->task) &&
> >> >               (GET_STACKBASE(bt->tc->task) == bt->stackbase)) {
> >> > -             long stack_padding_size = SIZE(fred_frame) > 0 ? (2*8)
> : 0;
> >> > +             long stack_padding_size = VALID_SIZE(fred_frame) ?
> (2*8) : 0;
> >> >               user_mode_eframe = bt->stacktop - SIZE(pt_regs);
> >> >               if (last_process_stack_eframe < user_mode_eframe)
> >> >                       x86_64_exception_frame(EFRAME_PRINT, 0,
> bt->stackbuf +
> >> > @@ -4408,7 +4408,7 @@ in_exception_stack:
> >> >
> >> >           if (!irq_eframe && !is_kernel_thread(bt->tc->task) &&
> >> >               (GET_STACKBASE(bt->tc->task) == bt->stackbase)) {
> >> > -             long stack_padding_size = SIZE(fred_frame) > 0 ? (2*8)
> : 0;
> >> > +             long stack_padding_size = VALID_SIZE(fred_frame) ?
> (2*8) : 0;
> >> >               user_mode_eframe = bt->stacktop - SIZE(pt_regs);
> >> >               if (last_process_stack_eframe < user_mode_eframe)
> >> >                       x86_64_exception_frame(EFRAME_PRINT, 0,
> bt->stackbuf +
> >>
> >> Thanks, tested ok with kernels configured without CONFIG_X86_FRED=y.
> >>
> >
> > Thank you for helping with the test, Kazu.
> >
>
> Thanks for reporting and fixing the code. LGTM, so ack.
>

Thank you for the review and quick response, Tao.

Applied:
https://github.com/crash-utility/crash/commit/196c4b79c13d1c0e6d7b21c8321eca07d3838d6a


Thanks
Lianbo


> Thanks,
> Tao Liu
>
> > Lianbo
> >
> >>
> >> Thanks,
> >> Kazu
>
>
--
Crash-utility mailing list -- devel@lists.crash-utility.osci.io
To unsubscribe send an email to devel-le...@lists.crash-utility.osci.io
https://${domain_name}/admin/lists/devel.lists.crash-utility.osci.io/
Contribution Guidelines: https://github.com/crash-utility/crash/wiki

Reply via email to