iMX8MM: INFO: rcu_preempt self-detected stall on CPU

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

iMX8MM: INFO: rcu_preempt self-detected stall on CPU

538 Views
dmitry_abdulov
Contributor I

Dear NXP Team,


I'm working on a porting Android12 project(iMX8MM) and meet with CPU stall problem.
Search shows similar posts like :

https://community.nxp.com/t5/i-MX-Processors/i-MX6Q-Custom-SBC-Lockup-after-quot-random-nonblocking-...
https://community.nxp.com/t5/i-MX-Processors/maaxboard-has-quot-INFO-rcu-preempt-detected-stalls-on-...

but the solution mentioned in one of them is not my case.

I stripped kernel drivers with any suspicious comments in the boot and I'm almost out of error messages.
of_reserved_mem_lookup() returns error when "name" of device node is "dsp_reserved_heap" and "secure" and I don't have such records in my dts file.


struct reserved_mem *of_reserved_mem_lookup(struct device_node *np)
{
...
name = kbasename(np->full_name);
...
}

Here is my bootup log.

Starting kernel ...

[ 0.423018][ T1] of_reserved_mem_lookup() returned NULL
[ 0.437082][ T1] of_reserved_mem_lookup() returned NULL
[ 0.490733][ T1] snvs_rtc 30370000.snvs:snvs-rtc-lp: snvs rtc: failed to find trusty node. Use normal mode.
[ 0.720241][ T9] [FTS_TS/E]fts_parse_dt:Key Y Coords undefined!
[ 0.726461][ T9] [FTS_TS/E]fts_parse_dt:Key X Coords undefined!
[ 1.206626][ T9] [FTS_TS/I][TEST]fts_test_func_init:init test function
[ 1.213439][ T9] [FTS_TS/I][TEST]fts_test_func_init:match test function,type:82
[ 1.280609][ T9] fec 30be0000.ethernet: Invalid MAC address: 00:00:00:00:00:00
[ 1.288174][ T9] fec 30be0000.ethernet: Using random MAC address: b6:62:70:09:b2:fd
[ 1.668668][ T1] EXT4-fs (mmcblk2p10): VFS: Can't find ext4 filesystem
[ 2.981123][ T1] init: Init cannot set 'ro.boot.console' to 'ttymxc1': Read-only property was already set
[ 2.991051][ T1] init: Init cannot set 'ro.boot.hardware' to 'nxp': Read-only property was already set
[ 3.000679][ T1] init: Init cannot set 'ro.boot.lcd_density' to '240': Read-only property was already set
[ 3.010561][ T1] init: Init cannot set 'ro.boot.primary_display' to 'imx-drm': Read-only property was already set
[ 3.246993][ T211] linkerconfig: Unable to access VNDK APEX at path: /apex/com.android.vndk.v32: No such file or directory
[ 3.258336][ T211] linkerconfig: Unable to access VNDK APEX at path: /apex/com.android.vndk.v32: No such file or directory
[ 25.698117][ C0] rcu: INFO: rcu_preempt self-detected stall on CPU
[ 25.704586][ C0] rcu: 0-....: (1 GPs behind) idle=9ad/1/0x4000000000000004 softirq=567/570 fqs=2604 last_accelerate: df9d/f422 dyntick_enabled: 1
[ 52.010115][ C0] watchdog: BUG: soft lockup - CPU#0 stuck for 45s! [kworker/u8:0:7]
[ 76.010116][ C0] watchdog: BUG: soft lockup - CPU#0 stuck for 67s! [kworker/u8:0:7]

Any idea - what else can be done or checked?

 

Best regards,

  Dmitry

Labels (1)
0 Kudos
2 Replies

511 Views
Bio_TICFSL
NXP TechSupport
NXP TechSupport

Hello,

When using the reserved memory node in the device tree there are two options - dynamic or static. If a dynamic allocation was selected (where the kernel selects the address for the allocation) convert it to a static allocation by inserting the reg property. This will ensure the same memory is reused after a kexec()

Regards

 

 

0 Kudos

502 Views
dmitry_abdulov
Contributor I

reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;

rpmsg_reserved: rpmsg@0xb8000000 {
no-map;
reg = <0 0xb8000000 0 0x400000>;
};
ramoops@0xb7f00000 {
compatible = "ramoops";
reg = <0 0xb7f00000 0 0x00100000>;
record-size = <0x00020000>;
console-size = <0x00020000>;
ftrace-size = <0x00020000>;
pmsg-size = <0x00020000>;
};
pmem_1: pmem@0xb8500000 {
no-map;
reg = <0 0xb8500000 0 0x00010000>;
};
};

This is reserved-memory node from my dts.
I cleaned my kernel config, and made it as close as possible to "imx_v8_android_defconfig" and it looks like my boot improved.
I don't have stall CPU message but it feel like it still does.
At the very first seconds if I press "enter" I can get to shell but after many failed attempts to start of keystore2 service it doesn't work.

I've attached my updated boot log "keystore2-service-fails-to-start.log".

How to check what causes keystore2 service to fail?
Is it possible to disable it to see if the boot completes?

 

Best regards,

 Dmitry

 

0 Kudos