P4080DS Kernel Panic

cancel
Showing results for 
Search instead for 
Did you mean: 

P4080DS Kernel Panic

570 Views
sharathchandra
Contributor II

Hi,

I am getting a kernel panic error while booting my P4080DS board.

init[1]: unhandled signal 11 at bf20aff0 nip 0ffdda20 lr 0ffddaf4 code 30001

Kernel panic - not syncing: Attempted to kill init! exitcode=0x0000000b

CPU: 7 PID: 1 Comm: init Not tainted 3.12.19-rt30-QorIQ-SDK-V1.7+g6619b8b #1

Call Trace:

[e908fd10] [c0006f50] show_stack+0x40/0x150 (unreliable)

[e908fd50] [c067947c] dump_stack+0x78/0xa0

[e908fd60] [c06777bc] panic+0xd8/0x1fc

[e908fdb0] [c0030884] do_exit+0x824/0x8d0

[e908fe00] [c00317d8] do_group_exit+0x48/0xb0

[e908fe20] [c003ff38] get_signal_to_deliver+0x168/0x4e0

[e908fe70] [c0007ab0] do_signal+0x40/0x210

[e908ff30] [c0007d98] do_notify_resume+0x68/0x80

[e908ff40] [c0010948] do_user_signal+0x74/0xc4

--- Exception: 300 at 0xffdda20

    LR = 0xffddaf4

Rebooting in 180 seconds..

Could anyone please help on the issue?

The board was earlier updated with SDK 1.7 including u-boot, file system, kernel, device tree and it was working fine.

Following are done on the system just before I got this error:

Trying to achieve better performance, I tried to optimize the entire SDK, for which I edited the following optimization flags in poky/meta/conf/bitbake.conf.

DEBUG_FLAGS ?= ""

FULL_OPTIMIZATION = "-O3 -pipe ${DEBUG_FLAGS}"

DEBUG_OPTIMIZATION = ""

SELECTED_OPTIMIZATION = "${@d.getVar(['FULL_OPTIMIZATION', 'DEBUG_OPTIMIZATION'][d.getVar('DEBUG_BUILD', True) == '1'], True)}"

SELECTED_OPTIMIZATION[vardeps] += "FULL_OPTIMIZATION DEBUG_OPTIMIZATION"

BUILD_OPTIMIZATION = "-O3 -pipe ${DEBUG_FLAGS}"

Labels (1)
0 Kudos
2 Replies

144 Views
scottwood
NXP Employee
NXP Employee

This is a segmentation fault in the userspace init process.  -O3 has been known to break some userspace programs.  I don't know the details of which programs or why, but it's probably (but not necessarily) due to the code relying on undefined behavior that happens to not cause problems with -O2 (and thus the issues don't get found during testing).  Enabling -O3 for the entire RFS is thus a bad idea.  I suggest that you only enable it for the code whose performance is most important to you, and then do adequate QA on those packages to determine that it's safe.

144 Views
sharathchandra
Contributor II

Hi,

I reverted to default flags for SDK and tried to optimize only GCC.

I tried to compile only GCC with optimization, so I edited the lines in do_configure(){ }  under poky/meta/recipes-devtools/gcc/gcc-configure-common.inc :

        export CFLAGS_FOR_TARGET="-O3"

        export CPPFLAGS_FOR_TARGET="-O3"

        export CXXFLAGS_FOR_TARGET="-O3"

I think Target flags will be used to build GCC for the target...is doing the above way correct? This compiled successfully and was able to load the files ystem and kernel without issues.

0 Kudos