看板 LinuxDev 關於我們 聯絡資訊
是這樣的,我正在想辦法解決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