[问题] 如何使thread拥有高priority却不影响wifi

楼主: wtchen (没有存在感的人)   2015-10-10 01:51:31
是这样的,我正在想办法解决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.
作者: whyso (www)   2015-10-14 00:39:00
SCHED_FIFO会导致系统可能一直在执行你的thread,要适时的做sleep.. 其他还有优先权较低的SCHED_RR.timer不准也有可能是你没使用high resolution timer的关系.

Links booklink

Contact Us: admin [ a t ] ucptt.com