作者wtchen (没有存在感的人)
看板LinuxDev
标题[问题] 如何使thread拥有高priority却不影响wifi
时间Sat Oct 10 01:51:31 2015
是这样的,我正在想办法解决RPI里thread中的usleep不够准的问题
(usleep 3000 -> 有时候会变6000多)
我看bcm2835 lib的说明有建议说把thread设成MAX priority
可以避免thread被swap
像这样:
struct sched_param sp;
memset(&sp, 0, sizeof(sp));
sp.sched_priority = sched_get_priority_max(SCHED_FIFO);
sched_setscheduler(0, SCHED_FIFO, &sp);
mlockall(MCL_CURRENT | MCL_FUTURE);
我尝试了以後,发现无线网路会因此顿顿的(因为我用ssh连)
看来是因为priority被抢走了以至於response time 太长
请问我要如何设才能让thread比无线网路相关thread的优先权小(但相对来说还是高)?
Thanks.
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 90.41.42.66
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/LinuxDev/M.1444413094.A.C65.html
1F:→ whyso: SCHED_FIFO会导致系统可能一直在执行你的thread,要适时的做 10/14 00:39
2F:→ whyso: sleep.. 其他还有优先权较低的SCHED_RR. 10/14 00:40
3F:→ whyso: timer不准也有可能是你没使用high resolution timer的关系. 10/14 00:41