- 主题:Linux应用需要精度1毫秒的定时器,有什么方案?
udelay(1000)
【 在 wjhtingerx 的大作中提到: 】
: rt
--
FROM 223.104.41.*
1 ms timer with jitter < 50us on x86,
there 2 solution:
1) Preempt RT Patchset
2) Xenomai
Xenomai have better performance, Preempt RT have larger community.
【 在 wjhtingerx 的大作中提到: 】
: rt
--
FROM 192.102.204.*
after tuning, x86 can reach < 30us jitter.
【 在 moudy 的大作中提到: 】
: x86 cache miss,managemetn interrupt这些能吃掉多少时间?
--
FROM 192.102.204.*
that's correct.
but it is possible. some Intel engineers focus on this area.
【 在 lvsoft 的大作中提到: 】
: 不知道,x86 rt的问题坑太深了,cache miss, interrupt这些只能说对于mcu这种很简单的还可以讨论下。
: 比如我记得比较典型的cortex m3,就说stm32f1吧。靠interrupt极限能达到200ns量级的max jitter。
: x86方面intel有篇white paper,我记得丫用了一堆奇淫技巧实现了2us的max jitter,我反正是复现不出来。。。
: ...................
--
FROM 192.102.204.*
打RT patch 应用优先级调高 配成fifo ?
【 在 wjhtingerx 的大作中提到: 】
rt
--
FROM 222.129.50.*
Qt的QTimer使用PreciseTimer就可以1ms了。十几个核负载不高时能达到。
【 在 wjhtingerx 的大作中提到: 】
: rt
--
FROM 218.67.142.*
那就是另一个问题了。如果定时任务只是非常简单的事,比如更新一个变量什么的。可以直接在轮训线程里做完就可以了。要看具体什么要求。要求不高的定时器这种办法肯定可以。
【 在 hongyan2022 的大作中提到: 】
: 即使 某个线程 或 进程 能够非常精准的 准时触发
: 操作系统也不保证能立刻调度起响应程序吧 ?
:
--
FROM 114.254.2.*
epoll轮询做定时器
--
FROM 222.72.38.*
【 在 lvsoft 的大作中提到: 】
: 不知道,x86 rt的问题坑太深了,cache miss, interrupt这些只能说对于mcu这种很简单的还可以讨论下。
: 比如我记得比较典型的cortex m3,就说stm32f1吧。靠interrupt极限能达到200ns量级的max jitter。
: x86方面intel有篇white paper,我记得丫用了一堆奇淫技巧实现了2us的max jitter,我反正是复现不出来。。。
: 我尝试过的极限就是4us,还不能维持很久,只能维持10分钟左右...
10分钟以后,周边环境发生什么变化了?
--
FROM 222.71.112.*
看你要的精度如何,一般来说,精度由高到底:
busy polling > nanosleep > settimer 定时器
【 在 wjhtingerx 的大作中提到: 】
: rt
--
FROM 111.181.47.*