web-dev-qa-db-ja.com

RAMへのサスペンドのトラブルシューティングのヒント

最近のLinuxカーネルでRAMに適切にサスペンドするためのSupermicroX10DAL-iシステム(デュアルXeon CPUを搭載)の適切なカーネルコマンドラインオプションやBIOS設定に関するアドバイスを求めています。私は現在このカーネルを実行しています:

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を実行しています。私はプロプライエタリドライバーを備えたnvidiaGPUを持っています。同じGPUとドライバーを備えた他のシステムは、適切にサスペンドおよび再開します。

KDEのメニューオプション(サスペンド)とsystemd suspendの両方を使用して、このシステムでサスペンドをテストしました。私が言ったように、それらの短いテストはうまくいくように見えました。ただし、一晩の一時停止から再開することはできません。

BIOSには、American Megatrends Incというブランドが表示されます。CPUP状態、CPU HWPM状態、およびCPUC状態を他のオプションとともに変更するオプションが表示されます。私はこれらのオプションのいずれにも精通しておらず、現在、すべてデフォルト値に設定されています(つまり、オーバーライドする「Power Technology」設定は「EnergyEfficient」に設定されており、これらすべての設定を自動的に管理しているようです)。

私の質問は、最近のLinuxバージョンで動作するRAMにサスペンドを取得するためにどの設定を試みる必要があるかということです。

システムがRAMモードに一時停止したときの最終的なログエントリは次のとおりです。

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)

私が精通している4つのsystemd省電力状態は次のとおりであるため、「systemd-sleep」の行に興味があります。

  • サスペンド(私が使用したものです)
  • hibernate
  • ハイブリッドスリープ
  • 中断してから休止状態

上記以降、このブートのジャーナルエントリはありません。システムを「ウェイクアップ」させるには、システムを再起動する必要がありました(ハードパワーリセット)。

これは関連している可能性があります:

パッケージ[upower][1]をインストールしています(バージョン:0.99.7-1)。 (kdelibsの依存関係としてインストールされました。)/ etc/UPower/UPower.confの設定は変更していません。これはデスクトップシステムであるため、upowerが関連しているかどうかはわかりません。

cat/sys/power/disk

[platform] shutdown reboot suspend test_resume 

cat/sys/power/state

freeze mem disk

cat/proc/acpi/wakeup

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.
2
MountainX

システムをサスペンドからRAMに再開するには、CPUのC状態をC2レベルに制限する必要がありました。それが一般的なポイントです。

具体的には、Xeon E5-2630 v4CPUを搭載したSupermicroX10DALに関しては、Supermicro BIOS3.0a以降を実行していることを確認してください。 BIOSを起動し、[Advanced]> [CPU Configuration]> [Advanced Power ManagementConfiguration]に移動します。 PowerTechnologyをCustomに設定します。 CPUC状態制御をC2に設定します。

これで、システムはsystemd suspendを使用するか、DEサスペンドコマンドを使用してサスペンドおよび再開します。

1
MountainX