SDK 2.0 4.1 Linux Kernel includes PREEMPT_RT

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

SDK 2.0 4.1 Linux Kernel includes PREEMPT_RT

Jump to solution
2,493 Views
pro-supportengi
NXP Employee
NXP Employee

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

Labels (1)
0 Kudos
1 Solution
1,445 Views
bpe
NXP Employee
NXP Employee

>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!
-----------------------------------------------------------------------------------------------------------------------

View solution in original post

0 Kudos
2 Replies
1,446 Views
bpe
NXP Employee
NXP Employee

>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!
-----------------------------------------------------------------------------------------------------------------------

0 Kudos
1,445 Views
pro-supportengi
NXP Employee
NXP Employee

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

0 Kudos