[問題] 如何使thread擁有高priority卻不影響wifi

看板LinuxDev作者 (沒有存在感的人)時間9年前 (2015/10/10 01:51), 編輯推噓0(003)
留言3則, 1人參與, 最新討論串1/1
是這樣的,我正在想辦法解決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

10/14 00:39, , 1F
SCHED_FIFO會導致系統可能一直在執行你的thread,要適時的做
10/14 00:39, 1F

10/14 00:40, , 2F
sleep.. 其他還有優先權較低的SCHED_RR.
10/14 00:40, 2F

10/14 00:41, , 3F
timer不準也有可能是你沒使用high resolution timer的關係.
10/14 00:41, 3F
文章代碼(AID): #1M5_wcnb (LinuxDev)
文章代碼(AID): #1M5_wcnb (LinuxDev)