Power-Management

掛起到 RAM 的故障排除提示

  • July 2, 2018

我正在尋求有關 Supermicro X10DAL-i 系統(具有雙 Xeon CPU)的正確核心命令行選項和/或 BIOS 設置的建議,以便在最近的 Linux 核心下正確掛起到 RAM。我目前正在執行這個核心:

Linux 4.17.2-1-ARCH #1 SMP PREEMPT Sat Jun 16 11:08:59 UTC 2018 x86_64 GNU/Linux

在我的其他電腦上,掛起到 RAM“只適用於”Linux。但是,在這個系統上,它不會在暫停一夜後恢復。我的猜測是系統進入了“太深”的睡眠狀態。我沒有使用休眠或掛起混合。我只想暫停到 RAM。

在較早的暫停測試中,系統在暫停幾分鐘後確實恢復了。我所要做的就是敲擊鍵盤上的任意鍵。但是在被暫停一夜之後,它沒有響應。我短暫地按下了電源按鈕。對此,風扇打開了,我認為系統可能會恢復,但事實並非如此。我無法通過控制台或 SSH 訪問它。

該系統與我的其他將暫停和恢復的系統之間的唯一區別是主機板(並且它具有更多 RAM)。在我所有的系統上,我都在使用 systemd、systemd-boot 和 UEFI。我正在執行 KDE。我有一個帶有專有驅動程序的 nvidia GPU。我的其他具有相同 GPU 和驅動程序的系統正常掛起和恢復。

我使用 KDE 的菜單選項 (suspend) 和systemd suspend. 正如我所提到的,這些簡短的測試似乎奏效了。但它不會從一夜之間的暫停中恢復。

BIOS 顯示 American Megatrends Inc. 品牌。我看到更改 CPU P 狀態、CPU HWPM 狀態和 CPU C 狀態的選項以及其他選項。我不熟悉這些選項中的任何一個,目前它們都設置為預設值(即,最重要的“電源技術”設置被設置為“節能”,這顯然會自動管理所有這些設置。)

我的問題是我應該嘗試暫停哪些設置以使 ram 在最近的 Linux 版本中工作?

以下是系統進入掛起到記憶體模式時的最終日誌條目:

Jun 26 23:20:26 X10DALi systemd[1]: Starting system activity accounting tool...
Jun 26 23:20:26 X10DALi systemd[1]: Started system activity accounting tool.
Jun 26 23:30:26 X10DALi systemd[1]: Starting system activity accounting tool...
Jun 26 23:30:26 X10DALi systemd[1]: Started system activity accounting tool.
Jun 26 23:32:16 X10DALi NetworkManager[997]: <info>  [1530070336.6408] manager: sleep: sleep requested (sleeping: no  enabled: yes)
Jun 26 23:32:16 X10DALi NetworkManager[997]: <info>  [1530070336.6413] manager: NetworkManager state is now ASLEEP
Jun 26 23:32:17 X10DALi systemd[1]: Reached target Sleep.
Jun 26 23:32:17 X10DALi systemd[1]: Starting Suspend...
Jun 26 23:32:17 X10DALi systemd-sleep[10662]: Suspending system...
Jun 26 23:32:17 X10DALi kernel: PM: suspend entry (deep)

我對“systemd-sleep”這一行很好奇,因為我熟悉的唯一 4 個 systemd 省電狀態是:

  • 暫停(這是我使用的)
  • 休眠
  • 混合睡眠
  • 暫停然後休眠

在上述之後沒有此引導的日誌條目。我不得不重新啟動系統(硬電源重置)以使其“喚醒”。

這可能是相關的:

我確實安裝了軟體包[upower][1](版本:0.99.7-1)。(它是作為 kdelibs 的依賴項安裝的。)我沒有更改 /etc/UPower/UPower.conf 中的任何設置,因為這是一個桌面系統,我不確定 upower 是否相關。

貓/系統/電源/磁碟

[platform] shutdown reboot suspend test_resume 

貓/系統/電源/狀態

freeze mem disk

貓 /proc/acpi/喚醒

Device  S-state   Status   Sysfs node
IP2P      S3    *disabled
EHC1      S4    *enabled   pci:0000:00:1d.0
EHC2      S4    *enabled   pci:0000:00:1a.0
RP01      S4    *disabled  pci:0000:00:1c.0
PXSX      S4    *disabled
RP02      S4    *disabled
PXSX      S4    *disabled
RP03      S4    *disabled  pci:0000:00:1c.2
PXSX      S4    *enabled   pci:0000:04:00.0
RP04      S4    *disabled  pci:0000:00:1c.3
PXSX      S4    *enabled   pci:0000:05:00.0
RP05      S4    *disabled
PXSX      S4    *disabled
RP06      S4    *disabled
PXSX      S4    *disabled
RP07      S4    *disabled
PXSX      S4    *disabled
RP08      S4    *disabled
PXSX      S4    *disabled
BR1A      S4    *disabled  pci:0000:00:01.0
PXSX      S4    *disabled
BR1B      S4    *disabled
PXSX      S4    *disabled
BR2A      S4    *disabled
PXSX      S4    *disabled
BR2B      S4    *disabled
PXSX      S4    *disabled
BR2C      S4    *disabled
PXSX      S4    *disabled
BR2D      S4    *disabled
PXSX      S4    *disabled
BR3A      S4    *disabled  pci:0000:00:03.0
PXSX      S4    *disabled
BR3B      S4    *disabled
PXSX      S4    *disabled
BR3C      S4    *disabled
PXSX      S4    *disabled
BR3D      S4    *disabled
PXSX      S4    *disabled
XHCI      S4    *enabled   pci:0000:00:14.0
QRP0      S4    *disabled
PXSX      S4    *disabled
QR1A      S4    *disabled
PXSX      S4    *disabled
QR1B      S4    *disabled
PXSX      S4    *disabled
QR2A      S4    *disabled  pci:0000:80:02.0
PXSX      S4    *disabled
QR2B      S4    *disabled
PXSX      S4    *disabled
QR2C      S4    *disabled
PXSX      S4    *disabled
QR2D      S4    *disabled  pci:0000:80:02.3
PXSX      S4    *disabled
QR3A      S4    *disabled
PXSX      S4    *disabled
QR3B      S4    *disabled
PXSX      S4    *disabled
QR3C      S4    *disabled
PXSX      S4    *disabled
QR3D      S4    *disabled
PXSX      S4    *disabled
RRP0      S4    *disabled
PXSX      S4    *disabled
RR1A      S4    *disabled
PXSX      S4    *disabled
RR1B      S4    *disabled
PXSX      S4    *disabled
RR2A      S4    *disabled
PXSX      S4    *disabled
RR2B      S4    *disabled
PXSX      S4    *disabled
RR2C      S4    *disabled
PXSX      S4    *disabled
RR2D      S4    *disabled
PXSX      S4    *disabled
RR3A      S4    *disabled
PXSX      S4    *disabled
RR3B      S4    *disabled
PXSX      S4    *disabled
RR3C      S4    *disabled
PXSX      S4    *disabled
RR3D      S4    *disabled
PXSX      S4    *disabled
SRP0      S4    *disabled
PXSX      S4    *disabled
SR1A      S4    *disabled
PXSX      S4    *disabled
SR1B      S4    *disabled
PXSX      S4    *disabled
SR2A      S4    *disabled
PXSX      S4    *disabled
SR2B      S4    *disabled
PXSX      S4    *disabled
SR2C      S4    *disabled
PXSX      S4    *disabled
SR2D      S4    *disabled
PXSX      S4    *disabled
SR3A      S4    *disabled
PXSX      S4    *disabled
SR3B      S4    *disabled
PXSX      S4    *disabled
SR3C      S4    *disabled
PXSX      S4    *disabled
SR3D      S4    *disabled
PXSX      S4    *disabled

我沒有/etc/systemd/sleep.conf文件(或任何 sleep.conf.d 文件)。

更新:我正在添加更多資訊:

dmesg | grep 空閒

[    0.000000] clocksource: refined-jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6370452778343963 ns
[    0.000000]  RCU dyntick-idle grace-period acceleration is enabled.
[    0.000000] clocksource: hpet: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 133484882848 ns
[    0.019999] clocksource: tsc-early: mask: 0xffffffffffffffff max_cycles: 0x1fa2b80c9f8, max_idle_ns: 440795260495 ns
[    0.064738] process: using mwait in idle threads
[    1.178343] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 6370867519511994 ns
[    1.180025] cpuidle: using governor ladder
[    1.180037] cpuidle: using governor menu
[   17.698747] clocksource: acpi_pm: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 2085701024 ns
[   18.097294] intel_idle: MWAIT substates: 0x2120
[   18.097295] intel_idle: v0.4.1 model 0x4F
[   18.099136] intel_idle: lapic_timer_reliable_states 0xffffffff
[   19.090095] clocksource: tsc: mask: 0xffffffffffffffff max_cycles: 0x1fa3704c1a9, max_idle_ns: 440795296692 ns

CPU:2x Intel(R) Xeon(R) CPU E5-2630 v4 @ 2.20GHz

Supermicro 建議使用以下 BIOS 設置:

Advanced Power Management Configuration ->  Power Technology Select Custom to customize system power settings
CPU C State Control:  choose the options are C0/1 state, C2 state, C6 (non-Retention) state, and C6 (Retention) state.

為了讓我的系統從掛起到記憶體恢復,我不得不將 CPU C 狀態限制在 C2 級別。這是一般的外賣。

具體來說,對於配備 Xeon E5-2630 v4 CPU 的 Supermicro X10DAL,請確保您執行的是 Supermicro BIOS 3.0a 或更高版本。啟動進入 BIOS 並轉到高級 > CPU 配置 > 高級電源管理配置。將電源技術設置為自定義。將 CPU C 狀態控制設置為 C2。

我的系統現在將使用systemd suspendDE 掛起命令或通過 DE 掛起命令掛起和恢復。

引用自:https://unix.stackexchange.com/questions/452282