感谢您提供的资料。
硬实时系统要求下,关闭中断甚至不进行系统调用是必要的,timer的ISR 可能长达百us。
多核系统中关闭部分核心的中断,包括timer,是可行的,包括商业系统很多也是用的这种方法。
暴露设备寄存器或者DMA 内存给用户空间能解决一部分实时性问题,但没有解决Linux实时性问题。
NO_HZ 其实应该是不错的选择,但要求每个核心上只跑一个任务,这时候任务不需要调度,timer则基本不增加。但即使只有一个任务,偶尔也会有timer 中断,更新vm_stat。
只要有HZ,就会有调度,对硬实时系统就难以接受。
Task Isolation 是一种补丁,能够禁止实时核心上所有中断,甚至系统调用都不切换任务,已最新更新到Linux 4.19
【 在 billybear04 的大作中提到: 】
: 核心代码很多的,找对地方麻烦,我这么山寨过:在read里判断handle是不是0x12345678,若是干自己的事,不用open,直接read(0x12345678, "param", 5)即可。:-)
: 但是关中断安全么,时钟中断也关吗,不会坏事么?
: 实时linux有何进展,有能用的吗?设置CPU亲和度不够用是吗?
: ...................
--
FROM 111.183.9.*