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_PREEMPTCONFIG_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 拓扑和所应用的调优。请始终在目标硬件上进行测量,不要仅依赖仿真结果。

验证 RT 已启用

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