在使用PREEMPT RT时,源文件可分为两种形式:一个大的patch文件包含所有功能;或一系列分离的patch文件,每个只实现特定的功能,例如https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/[version]/patches***.xz。每个patch文件中都有各自实现功能的简要介绍。

  • blk-mq-Don-t-complete-on-a-remote-CPU-in-force-threa.patch 在block mq中,中断线程化模式下,禁用remote CPU处理request。
  • crash-add-VMCOREINFO-macro-to-define-offset-in-a-str.patch 为通过typedef 定义的class,实现与VMCOREINFO_OFFSET相同的功能,命名为VMCOREINFO_TYPE_OFFSET。
  • locking-rtmux-Remove-cruft.patch 删除rt_mutex的无用成员。
  • printk-refactor-kmsg_dump_get_buffer.patch,在printk.c中重构kmsg_dump_get_buffer(), 使之更接近syslog_print_all()的实现。
  • Split-IRQ-off-and-zone-lock-while-freeing-pages-from.patch(共四个子patch),在mm/page_alloc.c中,在free page时,将IRQ-off section分成两部分,先isolate_pcp_pages(), 再free_pcppages_bulk()。PCP意思是per_cpu_pages。
  • stop_machine-Add-function-and-caller-debug-info.patch,在stop-machine crash时,更容易地找到calling code信息。
  • time_sched_clock_Use-raw_read_seqcount_latch-during-.patch在time/sched_clock.c中,采用性能更好的raw_read_seqcount_latch()代替raw_read_seqcount()。seqcount和顺序锁有关。
  • blk-mq-Always-complete-remote-completions-requests-i.patch在block mq中,用softirq处理request。
  • locking-rtmutex-Remove-output-from-deadlock-detector.patch,lockdep是检测死锁更好的方法,删除rtmutex中用于检测死锁的bebug打印信息。
  • mm-swap-Do-not-abuse-the-seqcount_t-latching-API.patch 在mm/swap.c中,重构lru-add_drain_all(),避免滥用seqcount_t。
  • printk-add-lockless-ringbuffer.patch,kernel/printk/printk_ringbuffer.c中为内核log数据引入multi-reader multi-writer lockless的ring buffer。
  • printk-use-buffer-pools-for-sprint-buffers.patch,用per-cpu和global pool的方式实现printk的static buffer。实现printk递归,以及per-cpu没有ready的时候使能printk()。
  • sched-Fix-balance_callback.patch,sched_core.c 修复balance_callback()中的若干漏洞。

To be continued.

PREEMPT RT 实现原理相关推荐

  1. 给ubuntu server 16.04.6打preempt rt补丁

    1,$git clone git://git.launchpad.net/~ubuntu-kernel-test/ubuntu/+source/linux/+git/mainline-crack -b ...

  2. loongarch集成preempt rt后ltpstress死机的问题分析

    问题描述 在集成preempt rt到loongarch4.19代码的过程中,使用ltpstress做内核压力测试,ltpstress运行一小时左右后死机,没有重启,鼠标键盘串口等没有任何反应.对比了 ...

  3. preempt rt对pagefault的处理

    在项目中我们发现了实时系统的pagefault开销比非实时要高,所以本文对pagefault做一下分析和对比. 1,pagefault调用栈(以arm64为例,内核版本为4.19.90) el1_da ...

  4. go和python性能对比_Go和Python Web服务器性能对比

    我通常使用Python来构建Web 应用.一年前,在兴趣的驱使下,我开始学习Go. 在此期间,我重写了一些原本由C 开发的CGI 应用,包括运行于 chroot 环境下的同 thttpd 服务器一起的 ...

  5. OpenShift 4 - 定制 RHCOS Linux的Kernal参数

    <OpenShift 4.x Hands-on Lab> 文章目录 关闭节点的SELinux 启动节点的实时kernel 关闭节点的SELinux 虽不建议在生产环境关闭SELinux, ...

  6. linux删除更新的系统内核,Linux系统如何删除旧内核

    Linux系统本身就是一个开源的系统,所以在使用过程中可以进行修改,只有它的内核是不变的,只有在一段时间之内,才可以对Linux内核进行升级.升级了以后就会留下一些旧的无用的内核,中本文就以Ubunt ...

  7. UnityShader19:渲染纹理(上)之截屏功能实现

    一.渲染到 RT 渲染纹理(Render Texture) 就是游戏开发中经常被提到的 RT,渲染到 RT 本质上就是不将渲染的结果直接显示的屏幕上,而是存至一张指定的纹理中 在 Unity 中最简单 ...

  8. TWR_MPC8309调试日志

    版权声明:本文为博主原创文章,未经博主允许不得转载. TWR_MPC8309调试日志 --------By Moresung Chan , At 12:00 ,Sep 16,2012 一.软硬件: P ...

  9. 荐读 | 英特尔:初探 “边缘控制”

    导读:本文从实例引出"边缘控制"--边缘计算在工业自动化领域的融合性应用技术,简单梳理了对相关概念的一般性理解,并给出了"云.边.端"三层参考架构和" ...

  10. Linux 内核实时补丁 PREEMPT_RT补丁 与 Linux4.1.15 + patch-4.1.15-rt18.patch 补丁,实测实时性差

    Linux4.1.15 + patch-4.1.15-rt18.patch 补丁,实测实时性差 开发环境 发行环境 该环境用于发行 Linux: 4.1.15 preempt_rt: patch-4. ...

最新文章

  1. 2021-03-13
  2. onkeypress属性添加报错_亚马逊运营过程中listing常见报错及应对策略汇总
  3. struts2 中 Preparable 接口实现数据准备
  4. python和vb的代码可以通用吗-python和vb哪个简单
  5. POJ1321 棋盘问题
  6. 修改Bootstrap的一些默认样式
  7. oracle查询题目2道
  8. 关于neo4j初入门(2)
  9. CDC::GetDeviceCaps()物理长度与屏幕像素间的转换
  10. UITapGestureRecognizer 的用法
  11. impala查询数据与hive的查询数据比对(数据的校验)
  12. pvrect r语言 聚类_技术贴 | R语言——肠型分析:介绍、方法
  13. 软体机器人与类脑智能机器人
  14. Anaconda虚拟环境使用及包管理
  15. 拥有一个qq机器人ATRI
  16. 光纤软件测试,20m光纤速度怎么测试 20m光纤速度测试方法【详解】
  17. (35)代码优化以后的运行结果
  18. 为什么说不同类型的网站有不同的优化方法
  19. 真正的高手,都有对抗“熵增”的底层思维
  20. 吃鸡哪个服务器网络稳定,中国地区吃鸡哪个服务器不卡 | 手游网游页游攻略大全...

热门文章

  1. 《平凡的世界》文摘----少安写给她妹妹的那封信...
  2. 腾讯自选股如何实现单位小时内完成千万级数据运算
  3. Redux学习篇:关于store.subscribe()监听方法与取消监听的认识
  4. TCP 三次握手和四次挥手,中间失败了会发生什么?
  5. 深度学习基础 - 余弦定理
  6. hdu 2167 Pebbles 状态压缩dp
  7. 国家税务总局全国增值税发票查验平台-客户端
  8. Linux下怎么mount下载宝硬盘为本地目录
  9. Linux中常见的ping不通百度问题
  10. Informix数据库查询表的锁级别