AnsweredAssumed Answered

SDK 2.0 4.1 Linux Kernel includes PREEMPT_RT

Question asked by pro-supportengineer Employee on Jun 10, 2016
Latest reply on Jun 15, 2016 by pro-supportengineer

Modified the kernel for PREEMPT_RT for FULL Preemption using menuconfig.   The SDK 2.0 for the LS1043ARDB includes the real time patch see below. 

 

Questions:

 

1. Was the PREEMPT_RT patch included as part of the 4.1 Kernel by the open source community, or was it a patch added later to the 4.1 kernel as part of  NXP SDK 2.0?

2. What version of the PREEMPT_RT patch was used for the 4.1 NXP SDK 2.0 Kernel?

3. When will the PREEMPT_RT patch be validated by NXP for SDK 2.0 since it is already included in the kernel and customers need the feature?

4. Where can we find the PREEMPT_RT patch used for the 4.1 kernel for SDK 2.0?

5. What is the CONFIG_PREEMPT_RTB and where can it be enabled/which menuconfig option?

6. Selecting CONFIG_PREEMPT_RT_FULL=y gives hard or soft real time?  Is this full preemption, or partial preemption?

7. When will the NXP SDK 2.0 with the PREEMPT_RT be pushed back to the open source community?

bitbake –c menuconfig virtual/kernel

find ./ -print | grep .conf | xargs grep CONFIG_PREEMPT_RT

CONFIG_PREEMPT_RT_FULL=y

./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/build/include/config/auto.conf:CONFIG_PREEMPT_RT_BASE=y
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/build/include/config/auto.conf:CONFIG_PREEMPT_RT_FULL=y
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/build/include/generated/autoconf.h:#define
CONFIG_PREEMPT_RT_BASE 1
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/build/include/generated/autoconf.h:#define
CONFIG_PREEMPT_RT_FULL 1
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/build/.config:CONFIG_PREEMPT_RT_BASE=y
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/build/.config:#
CONFIG_PREEMPT_RTB is not set
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/build/.config:CONFIG_PREEMPT_RT_FULL=y
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/build/.config.old:CONFIG_PREEMPT_RT_BASE=y
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/build/.config.old:#
CONFIG_PREEMPT_RTB is not set
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/build/.config.old:CONFIG_PREEMPT_RT_FULL=y
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/packages-split/kernel-dev/boot/config-4.1.8-rt8+gbd51baf:CONFIG_PREEMPT_RT_BASE=y
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/packages-split/kernel-dev/boot/config-4.1.8-rt8+gbd51baf:#
CONFIG_PREEMPT_RTB is not set
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/packages-split/kernel-dev/boot/config-4.1.8-rt8+gbd51baf:CONFIG_PREEMPT_RT_FULL=y
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/image/boot/config-4.1.8-rt8+gbd51baf:CONFIG_PREEMPT_RT_BASE=y
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/image/boot/config-4.1.8-rt8+gbd51baf:#
CONFIG_PREEMPT_RTB is not set
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/image/boot/config-4.1.8-rt8+gbd51baf:CONFIG_PREEMPT_RT_FULL=y
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/package/boot/config-4.1.8-rt8+gbd51baf:CONFIG_PREEMPT_RT_BASE=y
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/package/boot/config-4.1.8-rt8+gbd51baf:#
CONFIG_PREEMPT_RTB is not set
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/package/boot/config-4.1.8-rt8+gbd51baf:CONFIG_PREEMPT_RT_FULL=y
./tmp/work-shared/ls1043ardb/kernel-build-artifacts/include/config/auto.conf:CONFIG_PREEMPT_RT_BASE=y
./tmp/work-shared/ls1043ardb/kernel-build-artifacts/include/config/auto.conf:CONFIG_PREEMPT_RT_FULL=y
./tmp/work-shared/ls1043ardb/kernel-build-artifacts/include/generated/autoconf.h:#define
CONFIG_PREEMPT_RT_BASE 1
./tmp/work-shared/ls1043ardb/kernel-build-artifacts/include/generated/autoconf.h:#define
CONFIG_PREEMPT_RT_FULL 1
./tmp/work-shared/ls1043ardb/kernel-build-artifacts/.config:CONFIG_PREEMPT_RT_BASE=y
./tmp/work-shared/ls1043ardb/kernel-build-artifacts/.config:#
CONFIG_PREEMPT_RTB is not set
./tmp/work-shared/ls1043ardb/kernel-build-artifacts/.config:CONFIG_PREEMPT_RT_FULL=y

What are the following configurations?

CONFIG_PREEMPT_RTB

CONFIG_PREEMPT_RCU

CONFIG_PREEMPT_LAZY

CONFIG_PREEMPT_NOTIFIERS

/tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/package/boot/config-4.1.8-rt8+gbd51baf:CONFIG_PREEMPT_RCU=y
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/package/boot/config-4.1.8-rt8+gbd51baf:CONFIG_PREEMPT_NOTIFIERS=y
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/package/boot/config-4.1.8-rt8+gbd51baf:CONFIG_PREEMPT=y
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/package/boot/config-4.1.8-rt8+gbd51baf:CONFIG_PREEMPT_RT_BASE=y
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/package/boot/config-4.1.8-rt8+gbd51baf:CONFIG_PREEMPT_LAZY=y
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/package/boot/config-4.1.8-rt8+gbd51baf:#
CONFIG_PREEMPT_NONE is not set
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/package/boot/config-4.1.8-rt8+gbd51baf:#
CONFIG_PREEMPT_VOLUNTARY is not set
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/package/boot/config-4.1.8-rt8+gbd51baf:#
CONFIG_PREEMPT__LL is not set
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/package/boot/config-4.1.8-rt8+gbd51baf:#
CONFIG_PREEMPT_RTB is not set
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/package/boot/config-4.1.8-rt8+gbd51baf:CONFIG_PREEMPT_RT_FULL=y
./tmp/work/ls1043ardb-fsl-linux/linux-qoriq/4.1-r0/package/boot/config-4.1.8-rt8+gbd51baf:CONFIG_PREEMPT_COUNT=y

root@ls1043ardb:~# uname -a

Linux ls1043ardb 4.1.8-rt8+gbd51baf #1 SMP PREEMPT RT Thu Jun 9 18:22:01 CDT
2016 aarch64 GNU/Linux

Outcomes