PREEMPT_RT 补丁集构建的 LTS RT 内核(6.18.x)。RT 内核面向需要确定性调度的内核空间进程。用户空间应用仅靠使用 RT 内核无法获得 RT 行为;它们还必须采用 RT 调度策略(SCHED_FIFO / SCHED_RR)编写,并绑定到隔离的 CPU 核心上。
PREEMPT_RT 如何改变内核
标准 Linux 内核(CONFIG_PREEMPT 或 CONFIG_PREEMPT_VOLUNTARY)允许某些临界区以不可抢占方式运行,导致无界的调度延迟尖峰。PREEMPT_RT 通过以下方式消除这一问题:
其结果是一个几乎所有代码路径都可以被更高优先级 RT 任务抢占的内核,在经过调优的 Qualcomm 硬件上可提供微秒级的确定性最坏情况延迟。
有关权威的上游文档,请参阅
Linux kernel realtime。
所需的 Kconfig 选项
Qualcomm Linux 的meta-qcom 层通过 linux-qcom-rt_6.18.bb 配方中包含的 rt.config 配置片段默认启用 CONFIG_PREEMPT_RT。下表描述了关键的 Kconfig 选项及其作用:
表:RT 内核 Kconfig 选项
在运行中的 RT 系统上验证这些选项已生效:
RT 内核与标准内核的取舍
选择 RT 内核意味着接受特定的取舍:RT 内核在所有 Qualcomm Linux 硬件平台(QCS6490、IQ-9075、IQ-8275、IQ-615)上均受支持。延迟数值取决于具体的 SoC、CPU 拓扑和所应用的调优。请务必在目标硬件上实测,不要仅依赖仿真结果。

