2020-05-17 17:54:11

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH] csky: Fixup calltrace panic

Hi,

On Wed, May 13, 2020 at 03:15:25PM +0800, Guo Ren wrote:
> The implementation of show_stack will panic with wrong fp:
>
> addr = *fp++;
>
> because the fp isn't checked properly.
>
> The current implementations of show_stack, wchan and stack_trace
> haven't been designed properly, so just deprecate them.
>
> This patch is a reference to riscv's way, all codes are modified from
> arm's. The patch is passed with:
>
> - cat /proc/<pid>/stack
> - cat /proc/<pid>/wchan
> - echo c > /proc/sysrq-trigger
>
> Signed-off-by: Guo Ren <[email protected]>

This patch results in:

gcc version: csky-linux-gcc (GCC) 9.3.0

Building csky:defconfig ... failed
--------------
Error log:
csky-linux-gcc: error: unrecognized command line option '-mbacktrace'; did you mean '-fbacktrace'?
csky-linux-gcc: error: unrecognized command line option '-mbacktrace'; did you mean '-fbacktrace'?
make[2]: *** [scripts/mod/devicetable-offsets.s] Error 1
make[2]: *** Waiting for unfinished jobs....
csky-linux-gcc: error: unrecognized command line option '-mbacktrace'; did you mean '-fbacktrace'?
make[2]: *** [scripts/mod/empty.o] Error 1
make[1]: *** [prepare0] Error 2
make: *** [sub-make] Error 2

when trying to build csky images with upstream gcc 9.3.0.

What version of gcc is needed to build csky images ? Also, would it be
possible to support the upstream version of gcc ?

Thanks,
Guenter


2020-05-20 07:52:37

by Guo Ren

[permalink] [raw]
Subject: Re: [PATCH] csky: Fixup calltrace panic

Hi Guenter,

> ?? 2020??5??18?գ?????1:52??Guenter Roeck <[email protected]> д????
>
> Hi,
>
> On Wed, May 13, 2020 at 03:15:25PM +0800, Guo Ren wrote:
>> The implementation of show_stack will panic with wrong fp:
>>
>> addr = *fp++;
>>
>> because the fp isn't checked properly.
>>
>> The current implementations of show_stack, wchan and stack_trace
>> haven't been designed properly, so just deprecate them.
>>
>> This patch is a reference to riscv's way, all codes are modified from
>> arm's. The patch is passed with:
>>
>> - cat /proc/<pid>/stack
>> - cat /proc/<pid>/wchan
>> - echo c > /proc/sysrq-trigger
>>
>> Signed-off-by: Guo Ren <[email protected]>
>
> This patch results in:
>
> gcc version: csky-linux-gcc (GCC) 9.3.0
>
> Building csky:defconfig ... failed
> --------------
> Error log:
> csky-linux-gcc: error: unrecognized command line option '-mbacktrace'; did you mean '-fbacktrace'?
> csky-linux-gcc: error: unrecognized command line option '-mbacktrace'; did you mean '-fbacktrace'?
> make[2]: *** [scripts/mod/devicetable-offsets.s] Error 1
> make[2]: *** Waiting for unfinished jobs....
> csky-linux-gcc: error: unrecognized command line option '-mbacktrace'; did you mean '-fbacktrace'?
> make[2]: *** [scripts/mod/empty.o] Error 1
> make[1]: *** [prepare0] Error 2
> make: *** [sub-make] Error 2
>
> when trying to build csky images with upstream gcc 9.3.0.
>
> What version of gcc is needed to build csky images ? Also, would it be
> possible to support the upstream version of gcc ?
>

We tested it with https://github.com/c-sky/gcc (gcc-6.3)

You can fast test with:


wget -nc https://gitlab.com/c-sky/buildroot/-/jobs/557072746/artifacts/raw/output/images/toolchain_thead_860_compat_next_glibc_br_defconfig_8f1b5cd7d85509fbafea935ec65c48add73bba07.tar.xz

mkdir -p host
tar -Jxf toolchain_thead_860_compat_next_glibc_br_defconfig_8f1b5cd7d85509fbafea935ec65c48add73bba07.tar.xz -C host

cd linux-xxx

LD_LIBRARY_PATH=../host/lib make ARCH=csky CROSS_COMPILE=../host/bin/csky-linux- Image


We will upstream -mbacktrace to gcc.org

> Thanks,
> Guenter

2020-05-21 14:48:21

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH] csky: Fixup calltrace panic

On 5/20/20 12:50 AM, Guo Ren wrote:
> Hi Guenter,
>
>> ?? 2020??5??18?գ?????1:52??Guenter Roeck <[email protected]> д????
>>
>> Hi,
>>
>> On Wed, May 13, 2020 at 03:15:25PM +0800, Guo Ren wrote:
>>> The implementation of show_stack will panic with wrong fp:
>>>
>>> addr = *fp++;
>>>
>>> because the fp isn't checked properly.
>>>
>>> The current implementations of show_stack, wchan and stack_trace
>>> haven't been designed properly, so just deprecate them.
>>>
>>> This patch is a reference to riscv's way, all codes are modified from
>>> arm's. The patch is passed with:
>>>
>>> - cat /proc/<pid>/stack
>>> - cat /proc/<pid>/wchan
>>> - echo c > /proc/sysrq-trigger
>>>
>>> Signed-off-by: Guo Ren <[email protected]>
>>
>> This patch results in:
>>
>> gcc version: csky-linux-gcc (GCC) 9.3.0
>>
>> Building csky:defconfig ... failed
>> --------------
>> Error log:
>> csky-linux-gcc: error: unrecognized command line option '-mbacktrace'; did you mean '-fbacktrace'?
>> csky-linux-gcc: error: unrecognized command line option '-mbacktrace'; did you mean '-fbacktrace'?
>> make[2]: *** [scripts/mod/devicetable-offsets.s] Error 1
>> make[2]: *** Waiting for unfinished jobs....
>> csky-linux-gcc: error: unrecognized command line option '-mbacktrace'; did you mean '-fbacktrace'?
>> make[2]: *** [scripts/mod/empty.o] Error 1
>> make[1]: *** [prepare0] Error 2
>> make: *** [sub-make] Error 2
>>
>> when trying to build csky images with upstream gcc 9.3.0.
>>
>> What version of gcc is needed to build csky images ? Also, would it be
>> possible to support the upstream version of gcc ?
>>
>
> We tested it with https://github.com/c-sky/gcc (gcc-6.3)
>

That won't work for me. You really might want to consider
supporting upstream gcc. I'll try disabling CONFIG_STACKTRACE
for csky build tests. If that doesn't work, I may have to
disable affected csky build tests for the time being.

Guenter

2020-05-22 15:30:42

by Guo Ren

[permalink] [raw]
Subject: Re: [PATCH] csky: Fixup calltrace panic

Hi,

On Thu, May 21, 2020 at 10:46 PM Guenter Roeck <[email protected]> wrote:
> > We tested it with https://github.com/c-sky/gcc (gcc-6.3)
> >
>
> That won't work for me. You really might want to consider
> supporting upstream gcc. I'll try disabling CONFIG_STACKTRACE
> for csky build tests. If that doesn't work, I may have to
> disable affected csky build tests for the time being.
>
> Guenter

Not only CONFIG_STACKTRACE,
Disable FRAME_POINTER (Kernel hacking -> Compile the kernel with frame pointers)

because in Makefile:
ifdef CONFIG_FRAME_POINTER
KBUILD_CFLAGS += -mbacktrace
endif

We'll upstream -mbacktrace to gcc 9 soon, sorry for the confusion. Thx
for your work on maintaining.

--
Best Regards
Guo Ren

ML: https://lore.kernel.org/linux-csky/

2020-05-22 21:30:49

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH] csky: Fixup calltrace panic

On 5/22/20 8:28 AM, Guo Ren wrote:
> Hi,
>
> On Thu, May 21, 2020 at 10:46 PM Guenter Roeck <[email protected]> wrote:
>>> We tested it with https://github.com/c-sky/gcc (gcc-6.3)
>>>
>>
>> That won't work for me. You really might want to consider
>> supporting upstream gcc. I'll try disabling CONFIG_STACKTRACE
>> for csky build tests. If that doesn't work, I may have to
>> disable affected csky build tests for the time being.
>>
>> Guenter
>
> Not only CONFIG_STACKTRACE,
> Disable FRAME_POINTER (Kernel hacking -> Compile the kernel with frame pointers)
>

You are correct. This is what my test builder now does:

Build reference: v5.7-rc6-37-g115a54162a6c
gcc version: csky-linux-gcc (GCC) 9.3.0

Configuration file workarounds:
"s/CONFIG_FRAME_POINTER=y/# CONFIG_FRAME_POINTER is not set/"

Building csky:defconfig ... passed
Building csky:allnoconfig ... passed
Building csky:tinyconfig ... passed

Guenter