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 内核需要接受特定的权衡:所有 Qualcomm Linux 硬件平台(QCS6490、IQ-9075、IQ-8275、IQ-615)均支持 RT 内核。延迟数值取决于具体的 SoC、CPU 拓扑和所应用的调优。请始终在目标硬件上进行测量,不要仅依赖仿真结果。

