BSP之schedule hang
作者:互联网
背景,在ARM V8 64bit的开发板上尝试运行编译好的4.4的内核时,发现uart上日志运行到ftrace: allocating 31083 entries in 122 pages,然后hang住了。通过打印日志,发现问题为,start_kernel=>rest_init=>schedule_preempt_disabled=>schedule=>__schedule=>context_switch=>switch_to,到这里hang住了。开始尝试
1. 怀疑设备树问题,通过原来开发板上OS中/boot/dtb/下面的文件,直接使用,或者通过dtc逆向dtc -I dtb -O dts *.dtb -o *.dts,问题依旧;
2. 怀疑Kernel config,开始修改
a. 关闭CONFIG_SCHED_MC, 含义为multi-core scheduler support. 问题依旧;
b. 尝试修改抢占选项,CONFIG_PREEMPT_NONE,为Server使用,是有问题的;尝试将其修改为CONFIG_PREEMPT_VOLUNTARY,问题依旧;尝试修改为CONFIG_PREEMPT,问题依旧;
3. 怀疑uboot,通过uboot方修改,问题解决。原因为uboot会load dtb档案到内存,根据实际内存的物理情况,进行修改,然后再传入Kernel。
标签:尝试,uboot,CONFIG,schedule,dtb,BSP,修改,hang 来源: https://www.cnblogs.com/daobang/p/12804399.html