作者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://www.ptt.cc/bbs/LinuxDev/M.1444413094.A.C65.html
→ whyso: SCHED_FIFO會導致系統可能一直在執行你的thread,要適時的做 10/14 00:39
→ whyso: sleep.. 其他還有優先權較低的SCHED_RR. 10/14 00:40
→ whyso: timer不準也有可能是你沒使用high resolution timer的關係. 10/14 00:41