Skip to main content
实时(RT)系统对外部事件提供确定性的、有界的响应时间。一个系统若不存在无界延迟、其最坏情况响应时间可被精确计算,且所有任务都能在规定的抖动限制内满足调度截止时间,则可称为实时系统。 Qualcomm® Linux 提供了一个基于上游 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 拓扑和所应用的调优。请务必在目标硬件上实测,不要仅依赖仿真结果。

验证 RT 已激活

启动 RT 内核后,确认完全 RT 抢占已启用: