嵌入式 Linux 实时性能优化与测量
在嵌入式系统开发中,实时性能至关重要。为了确保系统能够满足实时任务的需求,我们需要对内核和应用程序进行一系列的配置和优化。本文将介绍一些关键的实时性能优化技术和测量工具。
1. 可抢占内核锁
在 Linux 内核中,自旋锁(spin locks)常用于内核锁定。自旋锁是一种忙等待互斥锁,在竞争情况下不需要上下文切换,因此在锁持有时间较短时非常高效。然而,持有自旋锁的线程不能被抢占,因为这可能导致新线程进入相同代码并在尝试锁定同一自旋锁时发生死锁。在主线 Linux 内核中,锁定自旋锁会禁用内核抢占,创建一个原子上下文,这意味着持有自旋锁的低优先级线程可能会阻止高优先级线程被调度。
PREEMPT_RT 采用的解决方案是将几乎所有的自旋锁替换为 RT - mutexes。互斥锁(mutex)比自旋锁慢,但它是完全可抢占的,并且实现了优先级继承,因此不易受到优先级反转的影响。
2. 获取 PREEMPT_RT 补丁
RT 开发者不会为每个内核版本创建补丁集,平均每两个内核版本创建一次补丁。目前支持的最新内核版本如下:
- 4.9 - rt
- 4.8 - rt
- 4.6 - rt
- 4.4 - rt
- 4.1 - rt
- 4.0 - rt
- 3.18 - rt
- 3.14 - rt
- 3.12 - rt
- 3.10 - rt
- 3.4 - rt
- 3.2 - rt
补丁可在 https://www.kernel.org/pub/linux/ke
超级会员免费看
订阅专栏 解锁全文
832

被折叠的 条评论
为什么被折叠?



