※ 引述《waterdisney (想要征服的世界)》之銘言:
WorkQueue這邊不會受到CFS影響 ?
我所知道的WorkQueue也是kernel thread.
thread只要彼此有比較需要久一點完成的就會互相影響
例如原作者因為他的THREAD常常 active
也就是他用的runtime其實是比較多的
當有其他thread起來 為了保證公平性 通常會優先service其他的.
WorkQueue還會受到其他workqueue影響.
而如果這時其他TASK就是需要比較多CPU資源 就只能等他耗到他想睡
或者他用完他的RUNTIME.
常常在user task看到有那種搶很久的超過1 schedule time slice.
(10ms for 100Hz). 都靠多核心解決
當然CODE寫不好是一回事情 很多CODE都不是用SIGIO在達到fast async處理
都把CPU佔據著當作是自己的
即使把TASK等級拉到 real time task仍然還是有此類問題
有些CODE已經陳年躺在那裏 也沒人敢動他~~~ORZ
即便是periodic timer仍然會有掛在TIMER LIST間的彼此影響
如果真的要那麼即時 就只能用HIGH PRIORITY中斷
類似ARM FIQ 然後中斷可以彼此PREEMPT 而掛在這上面的Services少到可以MEASURE
出時間,才有辦法達到要求吧?
單核心的環境比較嚴苛 雖然現在時脈很高了
但跑BROWSER這種又大又肥的軟體 還是不夠用