OpenCloudOS-Kernel/kernel/power
David Woodhouse 74d9555580 PM: hibernate: Allow ACPI hardware signature to be honoured
Theoretically, when the hardware signature in FACS changes, the OS
is supposed to gracefully decline to attempt to resume from S4:

 "If the signature has changed, OSPM will not restore the system
  context and can boot from scratch"

In practice, Windows doesn't do this and many laptop vendors do allow
the signature to change especially when docking/undocking, so it would
be a bad idea to simply comply with the specification by default in the
general case.

However, there are use cases where we do want the compliant behaviour
and we know it's safe. Specifically, when resuming virtual machines where
we know the hypervisor has changed sufficiently that resume will fail.
We really want to be able to *tell* the guest kernel not to try, so it
boots cleanly and doesn't just crash. This patch provides a way to opt
in to the spec-compliant behaviour on the command line.

A follow-up patch may do this automatically for certain "known good"
machines based on a DMI match, or perhaps just for all hypervisor
guests since there's no good reason a hypervisor would change the
hardware_signature that it exposes to guests *unless* it wants them
to obey the ACPI specification.

Signed-off-by: David Woodhouse <dwmw@amazon.co.uk>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
2021-12-08 16:06:10 +01:00
..
Kconfig PM: sleep: remove trailing spaces and tabs 2021-06-11 18:49:09 +02:00
Makefile PM: hibernate: Split off snapshot dev option 2020-05-19 17:48:08 +02:00
autosleep.c PM: sleep: fix typos in comments 2021-04-08 19:37:21 +02:00
console.c License cleanup: add SPDX GPL-2.0 license identifier to files with no license 2017-11-02 11:10:55 +01:00
energy_model.c PM: EM: Mark inefficiencies in CPUFreq 2021-10-05 16:33:05 +02:00
hibernate.c PM: hibernate: use correct mode for swsusp_close() 2021-11-24 13:45:54 +01:00
main.c PM: sleep: unmark 'state' functions as kernel-doc 2021-08-16 18:49:39 +02:00
power.h PM: hibernate: Allow ACPI hardware signature to be honoured 2021-12-08 16:06:10 +01:00
poweroff.c kernel/power: constify sysrq_key_op 2020-05-15 14:53:20 +02:00
process.c workqueue: Introduce show_one_worker_pool and show_one_workqueue. 2021-10-20 06:19:03 -10:00
qos.c treewide: Use fallthrough pseudo-keyword 2020-08-23 17:36:59 -05:00
snapshot.c PM: hibernate: remove leading spaces before tabs 2021-06-11 18:52:05 +02:00
suspend.c PM: suspend: Use valid_state() consistently 2021-10-26 15:52:58 +02:00
suspend_test.c PM: sleep: check RTC features instead of ops in suspend_test 2021-08-04 20:23:05 +02:00
swap.c PM: hibernate: Allow ACPI hardware signature to be honoured 2021-12-08 16:06:10 +01:00
user.c PM: hibernate: Fix snapshot partial write lengths 2021-11-24 13:50:18 +01:00
wakelock.c PM / wakeup: Show wakeup sources stats in sysfs 2019-08-21 00:20:40 +02:00