[問題] 如何讓一個process擁有絕對優先權?
如題
已經用renice把該程式的CPU優先權調為最高(-20)
但當編譯程式時 ($ nice -n 19 make -j 4),該程式還是會受到影響
有什麼方法可以讓一個process擁有絕對優先權嗎?
需要重新編譯核心嗎?
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 220.132.185.54
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1526823224.A.A66.html
→
05/20 21:42,
6年前
, 1F
05/20 21:42, 1F
→
05/20 21:51,
6年前
, 2F
05/20 21:51, 2F
→
05/20 22:09,
6年前
, 3F
05/20 22:09, 3F
→
05/20 23:05,
6年前
, 4F
05/20 23:05, 4F
→
05/20 23:06,
6年前
, 5F
05/20 23:06, 5F
→
05/20 23:07,
6年前
, 6F
05/20 23:07, 6F
→
05/20 23:07,
6年前
, 7F
05/20 23:07, 7F
→
05/21 00:02,
6年前
, 8F
05/21 00:02, 8F
還有上網查資料,我484太貪心了QQ
推
05/21 00:07,
6年前
, 9F
05/21 00:07, 9F
FIFO的結果相差無幾
→
05/21 00:07,
6年前
, 10F
05/21 00:07, 10F
→
05/21 00:07,
6年前
, 11F
05/21 00:07, 11F
→
05/21 00:08,
6年前
, 12F
05/21 00:08, 12F
→
05/21 00:12,
6年前
, 13F
05/21 00:12, 13F
聽起來像是和cgroup差不多的東西?
推
05/21 09:12,
6年前
, 14F
05/21 09:12, 14F
這蠻麻煩 束手無策再來研究
→
05/21 10:54,
6年前
, 15F
05/21 10:54, 15F
裡頭和priority比較有關的大概就real-time priority和scheduling priority
感覺功能和chrt差不多?
→
05/21 17:41,
6年前
, 16F
05/21 17:41, 16F
→
05/21 19:51,
6年前
, 17F
05/21 19:51, 17F
→
05/21 22:34,
6年前
, 18F
05/21 22:34, 18F
→
05/21 23:14,
6年前
, 19F
05/21 23:14, 19F
推
05/21 23:53,
6年前
, 20F
05/21 23:53, 20F
試了lowlatency kernel了,情況依舊
→
05/22 09:50,
6年前
, 21F
05/22 09:50, 21F
這跟kernel的process scheduling比較有關,不過還是謝謝你!
推
05/22 21:17,
6年前
, 22F
05/22 21:17, 22F
→
05/22 21:17,
6年前
, 23F
05/22 21:17, 23F
→
05/22 21:17,
6年前
, 24F
05/22 21:17, 24F
→
05/22 21:17,
6年前
, 25F
05/22 21:17, 25F
→
05/22 21:18,
6年前
, 26F
05/22 21:18, 26F
其實我看的是電視,訊號從數位電視卡進來,不會經過HDD/SSD
source code我也都丟在ramdisk裡,所以應該不太會是io的問題
推
05/22 21:52,
6年前
, 27F
05/22 21:52, 27F
是我沒說清楚 才讓你誤會 我的錯
推
05/23 00:02,
6年前
, 28F
05/23 00:02, 28F
推
05/23 00:12,
6年前
, 29F
05/23 00:12, 29F
$ uname -r
4.4.0-124-lowlatency
$ vlc --version
VLC media player 4.0.0-dev Otto Chriek (revision 4.0.0-dev-2926-gf683a44)
$ mpv --version
mpv 0.28.0-575-gd828887 Copyright c 2000-2018 mpv/MPlayer/mplayer2 projects
built on Mon May 21 01:01:03 CST 2018
ffmpeg library versions:
libavutil 56.18.102
libavcodec 58.19.102
libavformat 58.15.100
libswscale 5.2.100
libavfilter 7.24.100
libswresample 3.2.100
ffmpeg version: N-91132-gcadf7a7
是的,vlc 的 deinterlacer 是 yadif (2x)
我發現改成bob或yadif後,編code + 看電視不會掉禎了
但如果同時再滾動PTT網頁版的頁面就會又掉禎了
用指令sudo chrt -r -p 99把vlc和Xorg改成rt也一樣
mpv 的話,去交錯用以下三個演算法都會掉禎(編code+看電視),chrt後也一樣
yadif : mpv --vf=yadif dvb://DVB_CHAELEL
yadif (2x): mpv --vf=yadif=mode=1 dvb://DVB_CHANNEL
w3fdif : mpv --vf=w3fdif dvb://DVB_CHANNEL
mpv我不知道怎麼用bob deinterlacer,libavfilters裡好像沒bob
推
05/23 08:10,
6年前
, 30F
05/23 08:10, 30F
→
05/23 08:25,
6年前
, 31F
05/23 08:25, 31F
mpv的cache和平常一樣都是8~9sec左右,所以我想問題應該是不在這
https://imgur.com/Bhlkj1P
![](https://i.imgur.com/Bhlkj1P.jpg)
※ 編輯: idisnothing (220.132.185.53), 05/23/2018 11:11:14
剛試了一下twitch的1080p60 stream (用streamlink餵給mpv or vlc)
還是得到的一模一樣的結果
我發現mpv的frame都掉在output那邊,decoder那邊都不會掉
所以是renderer渲染的時候掉的?
推
05/23 12:36,
6年前
, 32F
05/23 12:36, 32F
推
05/23 12:40,
6年前
, 33F
05/23 12:40, 33F
→
05/23 12:40,
6年前
, 34F
05/23 12:40, 34F
推
05/23 15:03,
6年前
, 35F
05/23 15:03, 35F
硬解可解決這問題沒錯,但還是想知道要是沒硬解這問題怎辦
覺得換CPU不治本,若是os沒給ᄉ晶奰u先權,感覺resource還是多少會被share掉
電視盒會弄得線很多,而且要一邊用電腦一邊看電視也不方便,暫不考慮
這幾天會再看看問題出在哪,有進度再上來回報,謝謝各位幫忙!
推
05/23 21:59,
6年前
, 36F
05/23 21:59, 36F
推
05/23 22:01,
6年前
, 37F
05/23 22:01, 37F
→
05/23 22:02,
6年前
, 38F
05/23 22:02, 38F
libavfilters(ffmpeg)如果是在自己的機器上編起來的話
yadif 2x其實跑起來還蠻輕鬆的,連我另一台X2 250都跑得動XD
→
05/23 23:53,
6年前
, 39F
05/23 23:53, 39F
不太懂你的意思
推
05/24 00:41,
6年前
, 40F
05/24 00:41, 40F
X4 640沒HT喔
推
05/25 00:57,
6年前
, 41F
05/25 00:57, 41F
→
05/25 00:57,
6年前
, 42F
05/25 00:57, 42F
→
05/25 00:59,
6年前
, 43F
05/25 00:59, 43F
→
05/25 01:00,
6年前
, 44F
05/25 01:00, 44F
→
05/25 01:01,
6年前
, 45F
05/25 01:01, 45F
→
05/25 01:05,
6年前
, 46F
05/25 01:05, 46F
→
05/25 01:05,
6年前
, 47F
05/25 01:05, 47F
→
05/25 01:07,
6年前
, 48F
05/25 01:07, 48F
→
05/25 01:07,
6年前
, 49F
05/25 01:07, 49F
會不是CPU其中一個core頂到天花板了?
→
05/25 07:36,
6年前
, 50F
05/25 07:36, 50F
→
05/25 07:37,
6年前
, 51F
05/25 07:37, 51F
謝謝你提供這個連結,我看到底下這段:
Real-time features in the mainline Linux kernel
Since kernel version 2.6.18, Linux is gradually becoming equipped
with real-time capabilities, most of which are derived from the for‐
mer realtime-preempt patch set. Until the patches have been com‐
pletely merged into the mainline kernel, they must be installed to
achieve the best real-time performance. These patches are named:
patch-kernelversion-rtpatchversion
and can be downloaded from
http://www.kernel.org/pub/linux/kernel/projects/rt/.
Without the patches and prior to their full inclusion into the main‐
line kernel, the kernel configuration offers only the three preemp‐
tion classes CONFIG_PREEMPT_NONE, CONFIG_PREEMPT_VOLUNTARY, and CON‐
FIG_PREEMPT_DESKTOP which respectively provide no, some, and consid‐
erable reduction of the worst-case scheduling latency.
With the patches applied or after their full inclusion into the main‐
line kernel, the additional configuration item CONFIG_PREEMPT_RT
becomes available. If this is selected, Linux is transformed into a
regular real-time operating system. The FIFO and RR scheduling poli‐
cies are then used to run a thread with true real-time priority and a
minimum worst-case scheduling latency.
也許打過rt-patch過後的kernel才是真正的rt-kernel?
推
05/25 09:58,
6年前
, 52F
05/25 09:58, 52F
推
05/25 19:55,
6年前
, 53F
05/25 19:55, 53F
→
05/25 19:55,
6年前
, 54F
05/25 19:55, 54F
→
05/25 19:57,
6年前
, 55F
05/25 19:57, 55F
→
05/25 19:58,
6年前
, 56F
05/25 19:58, 56F
→
05/25 19:58,
6年前
, 57F
05/25 19:58, 57F
推
05/25 20:27,
6年前
, 58F
05/25 20:27, 58F
→
05/25 20:27,
6年前
, 59F
05/25 20:27, 59F
淦,rt-kernel編好了,結果NVIDIA官方驅動不支援,欲哭無淚
=============== /var/log/nvidia-installer.log ===============
-> Performing PREEMPT_RT check.
ERROR: The kernel you are installing for is a PREEMPT_RT kernel!
The NVIDIA driver does not support real-time kernels. If you
are using a stock distribution kernel, please install
a variant of this kernel that does not have the PREEMPT_RT
patch set applied; if this is a custom kernel, please
install a standard Linux kernel. Then try installing the
NVIDIA kernel module again.
ERROR: Installation has failed. Please see the file '/var/log/nvidia-installer.log' for details.
You may find suggestions on fixing installation problems in the README available on the Linux
driver download page at www.nvidia.com.
=============================================================
$ uname -r
4.16.8-rt3
剛內顯HD3200開機來作測試,結果編了rt-kernel好像也沒什麼用,照樣掉幀QQ
推
05/26 01:17,
6年前
, 60F
05/26 01:17, 60F
推
05/26 01:20,
6年前
, 61F
05/26 01:20, 61F
推
05/26 07:04,
6年前
, 62F
05/26 07:04, 62F
→
05/26 07:05,
6年前
, 63F
05/26 07:05, 63F
※ 編輯: idisnothing (220.132.185.53), 05/26/2018 08:09:43
推
05/26 10:51,
6年前
, 64F
05/26 10:51, 64F
→
05/26 10:52,
6年前
, 65F
05/26 10:52, 65F
→
05/26 10:53,
6年前
, 66F
05/26 10:53, 66F
→
05/26 10:53,
6年前
, 67F
05/26 10:53, 67F
→
05/26 10:54,
6年前
, 68F
05/26 10:54, 68F
推
05/26 16:19,
6年前
, 69F
05/26 16:19, 69F
暫時得把這問題擱一邊了,雖然革命尚未成功,但同志我會繼續努力
謝謝各位熱心幫忙,有進展會再上來回報!
※ 編輯: idisnothing (220.132.185.53), 05/28/2018 00:31:35
推
05/29 23:34,
6年前
, 70F
05/29 23:34, 70F
→
05/29 23:34,
6年前
, 71F
05/29 23:34, 71F
推
06/02 14:56,
6年前
, 72F
06/02 14:56, 72F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):