PTT評價

[閒聊] IntelIce Lake Xeon 離開休眠過長

看板PC_Shopping標題[閒聊] IntelIce Lake Xeon 離開休眠過長作者
hcwang1126
(王小胖)
時間推噓11 推:11 噓:0 →:40

寫在前面:

Tom's hardware最近發的好文

俗話說解決不了問題就解決發現問題的人

愛買又愛嫌, 是不會去買AMD?

機器翻譯加人工潤飾,建議直上原文


別帖:Intel 10nm真讓人頭大:不只頻率上不去還不穩定

本文:

Sleepy Intel Ice Lake Xeons Take Longer to Ramp Up Frequency Than Expected

https://www.tomshardware.com/news/
sleepy-intel-ice-lake-xeons-take-longer-to-ramp-up-frequency

翻譯:

標題:Intel Ice Lake Xeon花了比預期更長的時間離開休眠

副標:如何解決?別讓CPU睡下去


Linux kernal的最新patch(透過Phoronix)指出了英特爾近乎神話般的10nm + Ice
Lake Xeon處理器的一個有趣問題:退出某些睡眠狀態後,CPU花費比預期更長的時間才能恢復正常頻率,這將影響性能一致性, 由於“不穩定” 的CPU時鐘頻率。

這個問題的嚴重性尚不清楚,但如果沒有其他說明,它確實表明了英特爾在Ice Lake
Xeon處理器上的工作仍在繼續,儘管存在一些挑戰。由於有報導稱英特爾的server 時程再次受到延遲,我們上週聯繫了該公司,以確認時間表是否仍然按計劃進行。該公司回應說:“我們仍有望在2H20向客戶交付10nm Ice Lake。”

我們拭目以待。回到眼前的問題。處理器處於各種C state(休眠),以減少空閒期間的總體功耗。 C state對每個內核的省電程度不同,最深層的睡眠包括停止內核時鐘,刷新快取和降低電壓以最大程度地省電。此外,應用package C state,從而減少CPU package上由所有內核(例如fabric和uncore)共享的資源的功耗和clock。
註: CPU package = Core + Uncore, 所以有C state和package C state

睡眠狀態越深,每個處理器可以節省的電量就越多。但是,從較深的睡眠狀態恢復到全速需要的時間比較淺的睡眠狀態要長。根據報告,對於Ice Lake Xeon處理器,某些電源狀態下該過程似乎需要更長的時間。

英特爾“kernal測試機器人”發布了patch並解釋了該問題。正如Phoronix所指出的那樣
,此修復程式碼來自一位英特爾員工,這意味著該公司很可能在自己的測試中遇到了該問題。該問題的解釋如下:

“在ICX平台上,當從比C1E更深/等於C1E的C State喚醒時,CPU頻率將緩慢上升。儘管此功能確實在許多情況下節省了能量,但這也可能導致意外結果。例如,工作負載可能會導致性能不穩定由於CPU頻率的不穩定,另外,當CPU利用率較低時,CPU頻率可能無法鎖定為特定水平。

“因此,此修補程式碼將禁用C1E auto promotion,並將C1E暴露為單獨的idle state,
以便在必要時可以通過sysfs禁用C1E和C6。”

為了解決該問題,系統可以完全禁用C1E和C6狀態,從而防止晶片進入較低的睡眠狀態。工程師進一步闡述了這個問題: “除了C1和C1E,C6的退出延遲是通過專用工具測量的。但是_CST暴露的退出延遲(41us)比我們測量的退出延遲(128us)小得多。這可能是由於_CST使用從PkgC0 + C6喚醒時的延遲,而不是在測量C6時喚醒的PC6 + C6。因為我
們需要理論上最長的延遲所以選擇後者。” 在這裡,我們看到問題出在如何測量退出等
待時間(CPU彈回到全速狀態所花費的時間),然後暴露給Kernal。 ACPI_CST將C state資訊傳達給Kernal,它列出了處理器處於PkgC0 + C6狀態時測得的延遲。這意味著一個或多個內核可能處於C6睡眠狀態,但是其餘的package(fabric和uncore)仍在全速(PkgC0)運作。在這種狀態下,core僅需41us即可恢復正常操作。 但是,當處理器進入PkgC6
+ C6狀態時,package也會與core一起掉電(PkgC6狀態),因此處理器要花更多時間才能恢復全速。英特爾在這種情況下測出128us的睡眠退出延遲,因此看來Kernal得到了錯誤的睡眠退出值。 只是為了了解它與其他Intel處理器有何不同,我們搜索了基於Skylake的處理器的典型睡眠退出延遲。

我們回顧了去年初由大都會應用科學大學的Vladislav Govtva撰寫的有趣的學士論文
[PDF]。他測量了幾代不同英特爾處理器的睡眠退出延遲,而在上面我們可以看到他使用英特爾至強鉑金8170M(Skylake)的結果。 Govtva在C6狀態下測得的最大喚醒延遲(與退出延遲相同)約為108us,這比Ice Lake處理器快20us。這裡可能涉及不同的測量標準,但是簡單比較數字就知道睡眠退出延遲增加18.5%。 英特爾似乎已通過允許系統在特定條件下禁用某些睡眠狀態來“解決”了該問題,但這很可能只是一個極端情況,不適用
於許多類型的應用場合。我們正在與Intel進行進一步的澄清,但是鑑於Ice Lake尚未正式發布,因此我們希望不會學到很多東西。 有趣的是,英特爾是否會繼續通過磨牙(?)來調整該參數。 Phoronix認為該patch可以進入下個月開放的Linux 5.9 cycle,但可能會導致更高的功耗以換取更高的性能。

--

※ PTT 留言評論
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 118.160.72.29 (臺灣)
PTT 網址

hcwang1126 07/17 20:50特定情形下,或許我們會見到14nm比10nm省電QQ

ariadne 07/17 20:51這是好問題 之後用大小核 結束休眠要先叫醒誰? XD

hcwang1126 07/17 20:57邏輯太復雜 deadlocked 大小都一起一睡不起

bubunana 07/17 21:00SKL KBL初期發布都有這問題 CPU 內frabic內PMU部分

bubunana 07/17 21:00 FW再調整就可以解決 若客戶決定這state用不到 還是

bubunana 07/17 21:00要急著出貨 直接禁用也不是沒有過 因為改那塊 等於

bubunana 07/17 21:00全部都要重驗 幾個月時間跑不掉

jior 07/17 21:01不建議超頻之後是不建議休眠了嗎?

bubunana 07/17 21:01不過原Po結論蠻有趣的 哈!

bubunana 07/17 21:03那是servers 用耶 進cstate很重要?

cancelpc 07/17 21:08會啊,有人會戰拿來當伺服器時的待機功耗XD

storm0822 07/17 21:27會醒不過來?那就不讓你睡

yymeow 07/17 21:35一般來說終端的工程師會直接在伺服器設定不要睡那麼

yymeow 07/17 21:36沉就好了。基本上工程師只祈禱能好好動,放十包乖乖

yymeow 07/17 21:36也ok

friedpig 07/17 21:37買伺服器來待機臭了嗎

yymeow 07/17 21:38說老實話server會睡到攤也很少見 XD

friedpig 07/17 21:39就還沒正式launch的產品 bug很多很意外嗎

hcwang1126 07/17 22:1310nm這問題還蠻大的 另一點是whitley是一延又延 正

hcwang1126 07/17 22:13常是不會搞這麼久

hcwang1126 07/17 22:16然後什麼量產品睡了某幾core回不來 就是另個故事了

jasonkey123 07/17 22:30server用途都是24h運作,影響不大

sdbb 07/17 22:40救救北極熊

leung374025007/18 00:40大概要等幾個月後的新步進才會修,反正對伺服器而

leung374025007/18 00:40言問題不大

mmnnoo 07/18 01:04稍微看一下內文而已,文章講的不是指OS的待機/休眠

mmnnoo 07/18 01:05動作吧?而是Linux kernel的light sleep/deep sleep

mmnnoo 07/18 01:05?是的話,那就無關Server是24h工作這件事情了,而

mmnnoo 07/18 01:06是你CPU不忙的時候,low power表現很差~~~ 這樣就挺

mmnnoo 07/18 01:06嚴重的...

tart 07/18 02:03停用C1E跟C6就好了

suitup 07/18 03:42樓上是幹嘛要來破壞皇城裏的一片和氣?

suitup 07/18 03:42人家說問題不大就是問題不大

bubunana 07/18 06:44這是那邊皇城 我是不甚了解啦...XD 但ICX 把FIVR整

bubunana 07/18 06:44進去裡面 Punit controller又從8051換成比較高階MCU

bubunana 07/18 06:44 底層控制又切更細了 幾乎要是全新要重來 主要是mob

bubunana 07/18 06:44ile影響會比較明顯但ms方面早過了 另外C6什 我還以

bubunana 07/18 06:44為認知錯誤去翻了一下icx文件 畢竟不同CPU做法多多

bubunana 07/18 06:44少少有些不同

hcwang1126 07/18 07:17我同意26樓 至於server需不需要省電

hcwang1126 07/18 07:19不講技術細節 不省電目前就是政治不正確

hcwang1126 07/18 07:19原文大多講sleep 不過實際指的是idle

hcwang1126 07/18 07:21最後要講反觀 目前哀家很不妙喔

hcwang1126 07/18 07:35延遲過高沒修 那跑分時一定會關

hcwang1126 07/18 07:36能不能達到省電的目標 就不是這篇的範圍

hcwang1126 07/18 07:41因為只有延遲時間 並沒給出實際的low power

hcwang1126 07/18 07:43QS出來前 let‘s wait and see

ltyintw 07/18 09:35有起床氣的冰湖XD

WiLLSTW 07/18 11:02I家要連idlemaster的名號都不保了嗎

DrGun 07/18 15:16https://youtu.be/a8OaHlGhx-g

comipa 07/18 21:45就C-state出包阿