On 12-11-28 01:07 AM, Yu Pan wrote:
Hi Bruce,Thanks for commenting :-) You shouldn't have needed to do this part, since the board already has a preempt-rt BSP description: http://git.yoctoproject.org/__cgit/cgit.cgi/linux-yocto-3.4/__tree/meta/cfg/kernel-cache/__bsp/beagleboard/beagleboard-__preempt-rt.scc?h=meta <http://git.yoctoproject.org/cgit/cgit.cgi/linux-yocto-3.4/tree/meta/cfg/kernel-cache/bsp/beagleboard/beagleboard-preempt-rt.scc?h=meta> And when you build the linux-yocto-rt kernel with that board, that description should be found, and it enables all the base options already. If you look in your build, what does the file 'linux/meta/top_tgt' contain ? This was what puzzles me as well. I thought bitbake should pickup what is specified in beagleboard-preempt-rt.scc to produce the .config in the kernel build directory. But it did not, at least for the PREEMPT part. Below is the PREEMPT related configs in the .config without manually doing the menuconfig: # CONFIG_PREEMPT_RCU is not set CONFIG_PREEMPT_NONE=y # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT__LL is not set # CONFIG_PREEMPT_RTB is not set # CONFIG_PREEMPT_RT_FULL is not set Follow your pointer, I checked linux/meta/top_tgt, it indeed points to meta/cfg/kernel-cache/bsp/beagleboard/beagleboard-preempt-rt.scc, which includes ktypes/preempt-rt (why not ktypes/preempt-rt.scc?). In ktypes/preempt-rt.cfg (included by ktypes/preempt-rt.scc), CONFIG_PREEMPT_RT_FULL=y is there. So why not this configuration fragment not picked up in the final .config?
Mystery solved. The fragment is picked up properly in the build and everything is operating as expected. We had an old commit (that is still required for some configurations) that disabled preemption for the beagleboard due to SD card boot issues. That being said, the entire point of trying out preempt-rt is for the extra preemption, and without it, why bother. So I moved the preempt disable to the standard kernel only in this commit: http://git.yoctoproject.org/cgit/cgit.cgi/yocto-kernel-cache/commit/?id=551c7ad8c46d371c6b135357ed2d388d45af13d8 Once I update the SRCREVs for the meta branch of the linux-yocto-3.4 tree, you'll get the expected preempt settings out of the box: > grep PREEMPT linux-beagleboard-preempt-rt-build/.config CONFIG_TINY_PREEMPT_RCU=y CONFIG_PREEMPT_RCU=y CONFIG_PREEMPT=y CONFIG_PREEMPT_RT_BASE=y # CONFIG_PREEMPT_NONE is not set # CONFIG_PREEMPT_VOLUNTARY is not set # CONFIG_PREEMPT__LL is not set # CONFIG_PREEMPT_RTB is not set CONFIG_PREEMPT_RT_FULL=y CONFIG_PREEMPT_COUNT=y CONFIG_DEBUG_PREEMPT=y # CONFIG_PREEMPT_TRACER is not set Cheers, Bruce
Cheers Pan Yu
_______________________________________________ yocto mailing list [email protected] https://lists.yoctoproject.org/listinfo/yocto
