題 Linux內核yield()功能


當我啟動VMWare Player時,它給了我這樣的信息:

enter image description here

如何設置我的系統以便自動啟用此yield()功能?


4
2017-08-13 17:13


起源




答案:


創建一個名為的文件 /etc/sysctl.d/99-awakeFromNib-vmware.conf 包含這條線

kernel.sched_compat_yield=1

在引導時讀取此文件。對於此會話,只需單擊“確定”。

您可以通過讀取或寫入文件隨時查看或更改設置 /proc/sys/kernel/sched_compat_yield

添加:這些設置稱為內核參數,或簡稱為sysctl。 (它們與內核不同 命令行 您可以在引導加載程序中設置的參數 能夠 在內核命令行上設置sysctl。)原則記錄在 man sysctl,大多數設置都記錄在案 Documentation/sysctl/*.txt 在Linux內核文檔中。


5
2017-08-13 18:37



我不明白。創建vmware.conf文件和編輯/ proc / sys / kernel中的文件有什麼區別? - tony_sid
設置中 /proc/sys 適用於正在運行的內核。重啟時它們會丟失。設置中 /etc/sysctl.d 在引導過程中應用。 - Gilles
在/ proc / sys / kernel / sched_compat_yield中只寫了一件事:1。這是否意味著它已經打開了? shouold這將被kernel.sched_compat_yield = 1取代? - tony_sid
@awakeFromNib: /proc/sys/foo/bar 包含的值 foo.bar 設置。 kernel.sched_compat_yield 是一個布爾設置,所以它是在if /proc/sys/kernel/sched_compat_yield 包含1和關閉if /proc/sys/kernel/sched_compat_yield 包含0.(實際上,當您閱讀文件時,該文件包含最終換行;如果您手動寫入該文件,則可以省略該最終換行符。)因此,您的問題的答案是1:是; 2:沒有。 - Gilles


使用Ubuntu 10.10,VMware Workstation將在其中創建30-vmware-player文件 /etc/sysctl.d 但是Ubuntu正在尋找最終的文件 .conf  - 它似乎忽略了所有其他人。

重命名 30-vmware-player 歸檔到 30-vmware-player.conf

sudo mv /etc/sysctl.d/30-vmware-player /etc/sysctl.d/30-vmware-player.conf

4
2018-02-18 13:06





我沒有設定 kernel.sched_compat_yield=1 但已經放棄了嘗試。

使用Ubuntu 9.10, VMware Workstation 7.1.2 build-301548

如果我單擊確定然後   我的Windows 7 VM抓住我的USB鍵盤和鼠標並掛起,需要硬重啟。

如果我當時取消   鼠標和鍵盤在VM內外運行良好。


2
2017-10-06 12:56





我剛寫了上面這一行: kernel.sched_compat_yield=1 直接到 /etc/sysctl,應用程序(vmware-workstation)從未顯示過 信息 再次(屏幕截圖在本頁頂部)。

如果我只是對消息說“是”,則應用程序將創建該文件 30-vmware-player 在 /etc/sysctl.d/ 但是在重新啟動後運行vmware-workstation之後我仍然會收到消息(可能是因為文件的名稱-player,而不是-workstation)。


2
2017-09-05 16:21





測試於11.04(Natty Narwahl) - 我編輯 /etc/sysctl.conf

sudo gedit /etc/sysctl.conf

並在文件的底部添加了這一行:

kernel.sched_compat_yield=1

保存文件並退出,然後使用以下命令初始化新設置:

sudo sysctl -p

你永遠不應該再看到這條消息了。


2
2018-05-06 02:47