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
Solved! Go to Solution.
>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?
[Platon] RT_PREEMPT patch is a separate source tree:
https://www.kernel.org/pub/linux/kernel/projects/rt/
>2. What version of the PREEMPT_RT patch was used for the 4.1 NXP SDK 2.0
>Kernel?
[Platon] Your kernel says it, rt8:
https://www.kernel.org/pub/linux/kernel/projects/rt/4.1/older/
>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?
>
[Platon] Customers who need this feature on currently unsupported devices
are advised to subscribe for SDK Premium Support.
>4. Where can we find the PREEMPT_RT patch used for the 4.1 kernel for SDK 2.0?
>
[Platon] The SDK kernel does already have this patch merged, there is
no separate package for it. See the external link above.
>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?
[Platon] Visit the link below for brief exlpanations:
http://varun-anand.com/preempt.html
PREEMPT_RT provides hard realtime support. Soft realtime is there
in the generic kernel
>7. When will the NXP SDK 2.0 with the PREEMPT_RT be pushed back to
>the open source community?
[Platon] Typically patches are merged into community repositories
within six month after SDK release.
Have a great day,
Platon
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
>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?
[Platon] RT_PREEMPT patch is a separate source tree:
https://www.kernel.org/pub/linux/kernel/projects/rt/
>2. What version of the PREEMPT_RT patch was used for the 4.1 NXP SDK 2.0
>Kernel?
[Platon] Your kernel says it, rt8:
https://www.kernel.org/pub/linux/kernel/projects/rt/4.1/older/
>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?
>
[Platon] Customers who need this feature on currently unsupported devices
are advised to subscribe for SDK Premium Support.
>4. Where can we find the PREEMPT_RT patch used for the 4.1 kernel for SDK 2.0?
>
[Platon] The SDK kernel does already have this patch merged, there is
no separate package for it. See the external link above.
>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?
[Platon] Visit the link below for brief exlpanations:
http://varun-anand.com/preempt.html
PREEMPT_RT provides hard realtime support. Soft realtime is there
in the generic kernel
>7. When will the NXP SDK 2.0 with the PREEMPT_RT be pushed back to
>the open source community?
[Platon] Typically patches are merged into community repositories
within six month after SDK release.
Have a great day,
Platon
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Hi Platon,
All excellent information. Greatly appreciated!
What is the measured/expected latency for the PREEMPT_RT with full preemption enabled for example on the Cortex-ARM53 or a LS1043ARDB?
Or, anything comparable, or for the TWR-LS1021A or LS2080 that support the PREEMPT_RT according to the SDK 2.0 QorIQ Document?
Is there a NXP paper or site available describing measurements and profiling for PREEMPT_RT with full preemption enabled?
Also, I see a 4.1.7-rt8 patch but no 4.1.8-rt8 and 4.1.9 patches are missing. Is there another repo that has the 4.1.8-rt8 patch and I assume NXP didn’t change anything for the patch? https://www.kernel.org/pub/linux/kernel/projects/rt/4.1/older/
Thx, Tracy