On 9/14/2023 2:36 PM, Denys Dmytriyenko wrote:
On Thu, Sep 14, 2023 at 10:40:26PM +0530, Anand Balagopalakrishnan via 
lists.yoctoproject.org wrote:
SGX needs a preemptible kernel. CONFIG_PREEMPT has always been enabled
on TI Linux kernels upto K5.1.

This is enabled on AM65x by default but missed out AM335x and AM437x.
Add a kernel config fragment to enable config preempt.

Hi, Anand,

Is this only needed for am335x and am437x, as the subject suggests? If so, why
the code adds the config fragment to all platforms?

Second question - historically this has been enabled in the TI kernel itself.
Why not do it like that again, why add the fragment to the OE metadata instead
of keeping it in-tree? How the distro-agnostic approach would be handled?

Anand,

We use arm default defconfig
for v8 platforms: https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/commit/?h=ti-linux-6.1.y&id=dab7ea360967f26337be1f26f56b12771da8c731 This enables CONFIG_PREEMPT

For v7 platforms like am335x , am437x , dra7xx and am57xx:
we use multi_v7_defconfig
https://git.ti.com/cgit/ti-linux-kernel/ti-linux-kernel/tree/arch/arm/configs/multi_v7_defconfig?h=ti-linux-6.1.y

This would be the right place to enable the config.(so that all platforms gets this fix)

More than the what part, would like to understand "why".
Can you provide more details on why SGX IP needs preemptible kernel ?




Signed-off-by: Anand Balagopalakrishnan <[email protected]>
---
  .../linux/files/configs/config-preempt.cfg           | 12 ++++++++++++
  .../recipes-kernel/linux/linux-ti-staging_6.1.bb     |  1 +
  2 files changed, 13 insertions(+)
  create mode 100644 
meta-ti-bsp/recipes-kernel/linux/files/configs/config-preempt.cfg

diff --git a/meta-ti-bsp/recipes-kernel/linux/files/configs/config-preempt.cfg 
b/meta-ti-bsp/recipes-kernel/linux/files/configs/config-preempt.cfg
new file mode 100644
index 00000000..c1e5ad7d
--- /dev/null
+++ b/meta-ti-bsp/recipes-kernel/linux/files/configs/config-preempt.cfg

This is not the right location for the file. You want to add to the
linux-ti-staging-rt-6.1/ directory, since you are only using it from
the corresponding linux-ti-staging_6.1.bb recipe.


@@ -0,0 +1,12 @@
+CONFIG_PREEMPT_BUILD=y
+# CONFIG_PREEMPT_NONE is not set
+CONFIG_PREEMPT=y
+CONFIG_PREEMPT_COUNT=y
+CONFIG_PREEMPTION=y
+CONFIG_PREEMPT_RCU=y
+CONFIG_TASKS_RCU_GENERIC=y
+CONFIG_TASKS_RCU=y
+CONFIG_UNINLINE_SPIN_UNLOCK=y
+# CONFIG_CEC_GPIO is not set
+CONFIG_DEBUG_PREEMPT=y
+# CONFIG_PREEMPT_TRACER is not set
diff --git a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_6.1.bb 
b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_6.1.bb
index 8a883878..0ee63358 100644
--- a/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_6.1.bb
+++ b/meta-ti-bsp/recipes-kernel/linux/linux-ti-staging_6.1.bb
@@ -33,6 +33,7 @@ PR = "${MACHINE_KERNEL_PR}"
KERNEL_GIT_URI ?= "git://git.ti.com/git/ti-linux-kernel/ti-linux-kernel.git"
  KERNEL_GIT_PROTOCOL = "https"
+KERNEL_CONFIG_FRAGMENTS += "${WORKDIR}/config-preempt.cfg"

Since this file is out-of-tree and in the OE metadata, it would also require
listing it in SRC_URI.


  SRC_URI += 
"${KERNEL_GIT_URI};protocol=${KERNEL_GIT_PROTOCOL};branch=${BRANCH} \
              file://defconfig"
--
2.34.1
-=-=-=-=-=-=-=-=-=-=-=-
Links: You receive all messages sent to this group.
View/Reply Online (#16978): 
https://lists.yoctoproject.org/g/meta-ti/message/16978
Mute This Topic: https://lists.yoctoproject.org/mt/101362535/21656
Group Owner: [email protected]
Unsubscribe: 
https://lists.yoctoproject.org/g/meta-ti/leave/6695321/21656/1393940836/xyzzy 
[[email protected]]
-=-=-=-=-=-=-=-=-=-=-=-

Reply via email to