* [PATCH 1/3] PM: hibernate: Fix hybrid-sleep
2025-09-24 20:52 [PATCH 0/3] Fixes for hybrid sleep Mario Limonciello (AMD)
@ 2025-09-24 20:52 ` Mario Limonciello (AMD)
2025-09-25 15:30 ` kernel test robot
2025-09-24 20:52 ` [PATCH 2/3] PM: hibernate: Add pm_hibernation_mode_is_suspend() Mario Limonciello (AMD)
` (2 subsequent siblings)
3 siblings, 1 reply; 8+ messages in thread
From: Mario Limonciello (AMD) @ 2025-09-24 20:52 UTC (permalink / raw)
To: Alex Deucher, Rafael J . Wysocki
Cc: Samuel Zhang, open list:RADEON and AMDGPU DRM DRIVERS,
open list:HIBERNATION (aka Software Suspend, aka swsusp),
Mario Limonciello, Ionut Nechita
Hybrid sleep will hibernate the system followed by running through
the suspend routine. Since both the hibernate and the suspend routine
will call pm_restrict_gfp_mask(), pm_restore_gfp_mask() must be called
before starting the suspend sequence.
Add an explicit call to pm_restore_gfp_mask() to power_down() before
the suspend sequence starts. Don't call pm_restore_gfp_mask() when
exiting suspend sequence it is already called:
```
power_down()
->suspend_devices_and_enter()
-->dpm_resume_end()
```
Reported-by: Ionut Nechita <ionut_n2001@yahoo.com>
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4573
Tested-by: Ionut Nechita <ionut_n2001@yahoo.com>
Fixes: 12ffc3b1513eb ("PM: Restrict swap use to later in the suspend sequence")
Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
---
kernel/power/hibernate.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
index 2f66ab453823..1defe8081e64 100644
--- a/kernel/power/hibernate.c
+++ b/kernel/power/hibernate.c
@@ -695,6 +695,7 @@ static void power_down(void)
#ifdef CONFIG_SUSPEND
if (hibernation_mode == HIBERNATION_SUSPEND) {
+ pm_restore_gfp_mask();
error = suspend_devices_and_enter(mem_sleep_current);
if (error) {
hibernation_mode = hibernation_ops ?
@@ -862,7 +863,8 @@ int hibernate(void)
power_down();
}
in_suspend = 0;
- pm_restore_gfp_mask();
+ if (hibernation_mode != HIBERNATION_SUSPEND)
+ pm_restore_gfp_mask();
} else {
pm_pr_dbg("Hibernation image restored successfully.\n");
}
--
2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH 1/3] PM: hibernate: Fix hybrid-sleep
2025-09-24 20:52 ` [PATCH 1/3] PM: hibernate: Fix hybrid-sleep Mario Limonciello (AMD)
@ 2025-09-25 15:30 ` kernel test robot
0 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2025-09-25 15:30 UTC (permalink / raw)
To: Mario Limonciello (AMD), Alex Deucher, Rafael J . Wysocki
Cc: llvm, oe-kbuild-all, Samuel Zhang, amd-gfx,
(open list:HIBERNATION (aka Software Suspend, aka swsusp)),
aka swsusp)), Mario Limonciello, Ionut Nechita
Hi Mario,
kernel test robot noticed the following build errors:
[auto build test ERROR on amd-pstate/linux-next]
[also build test ERROR on amd-pstate/bleeding-edge linus/master v6.17-rc7 next-20250924]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Mario-Limonciello-AMD/PM-hibernate-Fix-hybrid-sleep/20250925-045432
base: https://git.kernel.org/pub/scm/linux/kernel/git/superm1/linux.git linux-next
patch link: https://lore.kernel.org/r/20250924205211.1059571-2-superm1%40kernel.org
patch subject: [PATCH 1/3] PM: hibernate: Fix hybrid-sleep
config: i386-randconfig-014-20250925 (https://download.01.org/0day-ci/archive/20250925/202509252323.KEdz98a4-lkp@intel.com/config)
compiler: clang version 20.1.8 (https://github.com/llvm/llvm-project 87f0227cb60147a26a1eeb4fb06e3b505e9c7261)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250925/202509252323.KEdz98a4-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202509252323.KEdz98a4-lkp@intel.com/
All errors (new ones prefixed by >>):
>> kernel/power/hibernate.c:866:27: error: use of undeclared identifier 'HIBERNATION_SUSPEND'
866 | if (hibernation_mode != HIBERNATION_SUSPEND)
| ^
1 error generated.
vim +/HIBERNATION_SUSPEND +866 kernel/power/hibernate.c
776
777 /**
778 * hibernate - Carry out system hibernation, including saving the image.
779 */
780 int hibernate(void)
781 {
782 bool snapshot_test = false;
783 unsigned int sleep_flags;
784 int error;
785
786 if (!hibernation_available()) {
787 pm_pr_dbg("Hibernation not available.\n");
788 return -EPERM;
789 }
790
791 /*
792 * Query for the compression algorithm support if compression is enabled.
793 */
794 if (!nocompress) {
795 strscpy(hib_comp_algo, hibernate_compressor);
796 if (!crypto_has_acomp(hib_comp_algo, 0, CRYPTO_ALG_ASYNC)) {
797 pr_err("%s compression is not available\n", hib_comp_algo);
798 return -EOPNOTSUPP;
799 }
800 }
801
802 sleep_flags = lock_system_sleep();
803 /* The snapshot device should not be opened while we're running */
804 if (!hibernate_acquire()) {
805 error = -EBUSY;
806 goto Unlock;
807 }
808
809 pr_info("hibernation entry\n");
810 pm_prepare_console();
811 error = pm_notifier_call_chain_robust(PM_HIBERNATION_PREPARE, PM_POST_HIBERNATION);
812 if (error)
813 goto Restore;
814
815 ksys_sync_helper();
816 if (filesystem_freeze_enabled)
817 filesystems_freeze();
818
819 error = freeze_processes();
820 if (error)
821 goto Exit;
822
823 lock_device_hotplug();
824 /* Allocate memory management structures */
825 error = create_basic_memory_bitmaps();
826 if (error)
827 goto Thaw;
828
829 error = hibernation_snapshot(hibernation_mode == HIBERNATION_PLATFORM);
830 if (error || freezer_test_done)
831 goto Free_bitmaps;
832
833 if (in_suspend) {
834 unsigned int flags = 0;
835
836 if (hibernation_mode == HIBERNATION_PLATFORM)
837 flags |= SF_PLATFORM_MODE;
838 if (nocompress) {
839 flags |= SF_NOCOMPRESS_MODE;
840 } else {
841 flags |= SF_CRC32_MODE;
842
843 /*
844 * By default, LZO compression is enabled. Use SF_COMPRESSION_ALG_LZ4
845 * to override this behaviour and use LZ4.
846 *
847 * Refer kernel/power/power.h for more details
848 */
849
850 if (!strcmp(hib_comp_algo, COMPRESSION_ALGO_LZ4))
851 flags |= SF_COMPRESSION_ALG_LZ4;
852 else
853 flags |= SF_COMPRESSION_ALG_LZO;
854 }
855
856 pm_pr_dbg("Writing hibernation image.\n");
857 error = swsusp_write(flags);
858 swsusp_free();
859 if (!error) {
860 if (hibernation_mode == HIBERNATION_TEST_RESUME)
861 snapshot_test = true;
862 else
863 power_down();
864 }
865 in_suspend = 0;
> 866 if (hibernation_mode != HIBERNATION_SUSPEND)
867 pm_restore_gfp_mask();
868 } else {
869 pm_pr_dbg("Hibernation image restored successfully.\n");
870 }
871
872 Free_bitmaps:
873 free_basic_memory_bitmaps();
874 Thaw:
875 unlock_device_hotplug();
876 if (snapshot_test) {
877 pm_pr_dbg("Checking hibernation image\n");
878 error = swsusp_check(false);
879 if (!error)
880 error = load_image_and_restore();
881 }
882 thaw_processes();
883
884 /* Don't bother checking whether freezer_test_done is true */
885 freezer_test_done = false;
886 Exit:
887 filesystems_thaw();
888 pm_notifier_call_chain(PM_POST_HIBERNATION);
889 Restore:
890 pm_restore_console();
891 hibernate_release();
892 Unlock:
893 unlock_system_sleep(sleep_flags);
894 pr_info("hibernation exit\n");
895
896 return error;
897 }
898
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 2/3] PM: hibernate: Add pm_hibernation_mode_is_suspend()
2025-09-24 20:52 [PATCH 0/3] Fixes for hybrid sleep Mario Limonciello (AMD)
2025-09-24 20:52 ` [PATCH 1/3] PM: hibernate: Fix hybrid-sleep Mario Limonciello (AMD)
@ 2025-09-24 20:52 ` Mario Limonciello (AMD)
2025-09-25 15:30 ` kernel test robot
2025-09-24 20:52 ` [PATCH 3/3] drm/amd: Fix hybrid sleep Mario Limonciello (AMD)
2025-09-25 13:56 ` [PATCH 0/3] Fixes for " Kenneth Crudup
3 siblings, 1 reply; 8+ messages in thread
From: Mario Limonciello (AMD) @ 2025-09-24 20:52 UTC (permalink / raw)
To: Alex Deucher, Rafael J . Wysocki
Cc: Samuel Zhang, open list:RADEON and AMDGPU DRM DRIVERS,
open list:HIBERNATION (aka Software Suspend, aka swsusp),
Mario Limonciello, Ionut Nechita
Some drivers have different flows for hibernation and suspend. If
the driver opportunistically will skip thaw() then it needs a hint
to know what is happening after the hibernate.
Introduce a new symbol pm_hibernation_mode_is_suspend() that drivers
can call to determine if suspending the system for this purpose.
Tested-by: Ionut Nechita <ionut_n2001@yahoo.com>
Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
---
include/linux/suspend.h | 2 ++
kernel/power/hibernate.c | 9 +++++++++
2 files changed, 11 insertions(+)
diff --git a/include/linux/suspend.h b/include/linux/suspend.h
index 317ae31e89b3..4b11efd68729 100644
--- a/include/linux/suspend.h
+++ b/include/linux/suspend.h
@@ -479,6 +479,7 @@ extern void unlock_system_sleep(unsigned int);
extern bool pm_sleep_transition_in_progress(void);
bool pm_hibernate_is_recovering(void);
+bool pm_hibernation_mode_is_suspend(void);
#else /* !CONFIG_PM_SLEEP */
@@ -513,6 +514,7 @@ static inline void unlock_system_sleep(unsigned int flags) {}
static inline bool pm_sleep_transition_in_progress(void) { return false; }
static inline bool pm_hibernate_is_recovering(void) { return false; }
+static inline bool pm_hibernation_mode_is_suspend(void) { return false; }
#endif /* !CONFIG_PM_SLEEP */
diff --git a/kernel/power/hibernate.c b/kernel/power/hibernate.c
index 1defe8081e64..a991a1362d77 100644
--- a/kernel/power/hibernate.c
+++ b/kernel/power/hibernate.c
@@ -80,6 +80,15 @@ static const struct platform_hibernation_ops *hibernation_ops;
static atomic_t hibernate_atomic = ATOMIC_INIT(1);
+/**
+ * pm_hibernation_mode_is_suspend - Check if hibernation has been set to suspend
+ */
+bool pm_hibernation_mode_is_suspend(void)
+{
+ return hibernation_mode == HIBERNATION_SUSPEND;
+}
+EXPORT_SYMBOL_GPL(pm_hibernation_mode_is_suspend);
+
bool hibernate_acquire(void)
{
return atomic_add_unless(&hibernate_atomic, -1, 0);
--
2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* Re: [PATCH 2/3] PM: hibernate: Add pm_hibernation_mode_is_suspend()
2025-09-24 20:52 ` [PATCH 2/3] PM: hibernate: Add pm_hibernation_mode_is_suspend() Mario Limonciello (AMD)
@ 2025-09-25 15:30 ` kernel test robot
0 siblings, 0 replies; 8+ messages in thread
From: kernel test robot @ 2025-09-25 15:30 UTC (permalink / raw)
To: Mario Limonciello (AMD), Alex Deucher, Rafael J . Wysocki
Cc: oe-kbuild-all, Samuel Zhang, amd-gfx,
(open list:HIBERNATION (aka Software Suspend, aka swsusp)),
aka swsusp)), Mario Limonciello, Ionut Nechita
Hi Mario,
kernel test robot noticed the following build warnings:
[auto build test WARNING on amd-pstate/linux-next]
[also build test WARNING on amd-pstate/bleeding-edge linus/master v6.17-rc7 next-20250924]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Mario-Limonciello-AMD/PM-hibernate-Fix-hybrid-sleep/20250925-045432
base: https://git.kernel.org/pub/scm/linux/kernel/git/superm1/linux.git linux-next
patch link: https://lore.kernel.org/r/20250924205211.1059571-3-superm1%40kernel.org
patch subject: [PATCH 2/3] PM: hibernate: Add pm_hibernation_mode_is_suspend()
config: i386-randconfig-004-20250925 (https://download.01.org/0day-ci/archive/20250925/202509252350.szp2l5YT-lkp@intel.com/config)
compiler: gcc-14 (Debian 14.2.0-19) 14.2.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250925/202509252350.szp2l5YT-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202509252350.szp2l5YT-lkp@intel.com/
All warnings (new ones prefixed by >>):
kernel/power/hibernate.c: In function 'pm_hibernation_mode_is_suspend':
kernel/power/hibernate.c:88:36: error: 'HIBERNATION_SUSPEND' undeclared (first use in this function); did you mean 'HIBERNATION_SHUTDOWN'?
88 | return hibernation_mode == HIBERNATION_SUSPEND;
| ^~~~~~~~~~~~~~~~~~~
| HIBERNATION_SHUTDOWN
kernel/power/hibernate.c:88:36: note: each undeclared identifier is reported only once for each function it appears in
kernel/power/hibernate.c: In function 'hibernate':
kernel/power/hibernate.c:875:41: error: 'HIBERNATION_SUSPEND' undeclared (first use in this function); did you mean 'HIBERNATION_SHUTDOWN'?
875 | if (hibernation_mode != HIBERNATION_SUSPEND)
| ^~~~~~~~~~~~~~~~~~~
| HIBERNATION_SHUTDOWN
kernel/power/hibernate.c: In function 'pm_hibernation_mode_is_suspend':
>> kernel/power/hibernate.c:89:1: warning: control reaches end of non-void function [-Wreturn-type]
89 | }
| ^
vim +89 kernel/power/hibernate.c
82
83 /**
84 * pm_hibernation_mode_is_suspend - Check if hibernation has been set to suspend
85 */
86 bool pm_hibernation_mode_is_suspend(void)
87 {
> 88 return hibernation_mode == HIBERNATION_SUSPEND;
> 89 }
90 EXPORT_SYMBOL_GPL(pm_hibernation_mode_is_suspend);
91
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH 3/3] drm/amd: Fix hybrid sleep
2025-09-24 20:52 [PATCH 0/3] Fixes for hybrid sleep Mario Limonciello (AMD)
2025-09-24 20:52 ` [PATCH 1/3] PM: hibernate: Fix hybrid-sleep Mario Limonciello (AMD)
2025-09-24 20:52 ` [PATCH 2/3] PM: hibernate: Add pm_hibernation_mode_is_suspend() Mario Limonciello (AMD)
@ 2025-09-24 20:52 ` Mario Limonciello (AMD)
2025-09-24 21:05 ` Deucher, Alexander
2025-09-25 13:56 ` [PATCH 0/3] Fixes for " Kenneth Crudup
3 siblings, 1 reply; 8+ messages in thread
From: Mario Limonciello (AMD) @ 2025-09-24 20:52 UTC (permalink / raw)
To: Alex Deucher, Rafael J . Wysocki
Cc: Samuel Zhang, open list:RADEON and AMDGPU DRM DRIVERS,
open list:HIBERNATION (aka Software Suspend, aka swsusp),
Mario Limonciello, Ionut Nechita
[Why]
commit 530694f54dd5e ("drm/amdgpu: do not resume device in thaw for
normal hibernation") optimized the flow for systems that are going
into S4 where the power would be turned off. Basically the thaw()
callback wouldn't resume the device if the hibernation image was
successfully created since the system would be powered off.
This however isn't the correct flow for a system entering into
s0i3 after the hibernation image is created. Some of the amdgpu
callbacks have different behavior depending upon the intended
state of the suspend.
[How]
Use pm_hibernation_mode_is_suspend() as an input to decide whether
to run resume during thaw() callback.
Reported-by: Ionut Nechita <ionut_n2001@yahoo.com>
Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4573
Tested-by: Ionut Nechita <ionut_n2001@yahoo.com>
Fixes: 530694f54dd5e ("drm/amdgpu: do not resume device in thaw for normal hibernation")
Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
---
drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
index 395c6be901ce..dcea66aadfa3 100644
--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
@@ -2665,7 +2665,7 @@ static int amdgpu_pmops_thaw(struct device *dev)
struct drm_device *drm_dev = dev_get_drvdata(dev);
/* do not resume device if it's normal hibernation */
- if (!pm_hibernate_is_recovering())
+ if (!pm_hibernate_is_recovering() && !pm_hibernation_mode_is_suspend())
return 0;
return amdgpu_device_resume(drm_dev, true);
--
2.51.0
^ permalink raw reply related [flat|nested] 8+ messages in thread* RE: [PATCH 3/3] drm/amd: Fix hybrid sleep
2025-09-24 20:52 ` [PATCH 3/3] drm/amd: Fix hybrid sleep Mario Limonciello (AMD)
@ 2025-09-24 21:05 ` Deucher, Alexander
0 siblings, 0 replies; 8+ messages in thread
From: Deucher, Alexander @ 2025-09-24 21:05 UTC (permalink / raw)
To: Mario Limonciello (AMD), Rafael J . Wysocki
Cc: Zhang, GuoQing (Sam), open list:RADEON and AMDGPU DRM DRIVERS,
open list:HIBERNATION (aka Software Suspend, aka swsusp),
Ionut Nechita
[Public]
> -----Original Message-----
> From: amd-gfx <amd-gfx-bounces@lists.freedesktop.org> On Behalf Of Mario
> Limonciello (AMD)
> Sent: Wednesday, September 24, 2025 4:52 PM
> To: Deucher, Alexander <Alexander.Deucher@amd.com>; Rafael J . Wysocki
> <rafael@kernel.org>
> Cc: Zhang, GuoQing (Sam) <GuoQing.Zhang@amd.com>; open list:RADEON and
> AMDGPU DRM DRIVERS <amd-gfx@lists.freedesktop.org>; open
> list:HIBERNATION (aka Software Suspend, aka swsusp) <linux-
> pm@vger.kernel.org>; Mario Limonciello <superm1@kernel.org>; Ionut Nechita
> <ionut_n2001@yahoo.com>
> Subject: [PATCH 3/3] drm/amd: Fix hybrid sleep
>
> [Why]
> commit 530694f54dd5e ("drm/amdgpu: do not resume device in thaw for normal
> hibernation") optimized the flow for systems that are going into S4 where the power
> would be turned off. Basically the thaw() callback wouldn't resume the device if the
> hibernation image was successfully created since the system would be powered
> off.
>
> This however isn't the correct flow for a system entering into
> s0i3 after the hibernation image is created. Some of the amdgpu callbacks have
> different behavior depending upon the intended state of the suspend.
>
> [How]
> Use pm_hibernation_mode_is_suspend() as an input to decide whether to run
> resume during thaw() callback.
>
> Reported-by: Ionut Nechita <ionut_n2001@yahoo.com>
> Closes: https://gitlab.freedesktop.org/drm/amd/-/issues/4573
> Tested-by: Ionut Nechita <ionut_n2001@yahoo.com>
> Fixes: 530694f54dd5e ("drm/amdgpu: do not resume device in thaw for normal
> hibernation")
> Signed-off-by: Mario Limonciello (AMD) <superm1@kernel.org>
Series is:
Acked-by: Alex Deucher <alexander.deucher@amd.com>
Feel free to take it through the Linux pm tree.
Alex
> ---
> drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> index 395c6be901ce..dcea66aadfa3 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c
> @@ -2665,7 +2665,7 @@ static int amdgpu_pmops_thaw(struct device *dev)
> struct drm_device *drm_dev = dev_get_drvdata(dev);
>
> /* do not resume device if it's normal hibernation */
> - if (!pm_hibernate_is_recovering())
> + if (!pm_hibernate_is_recovering() &&
> +!pm_hibernation_mode_is_suspend())
> return 0;
>
> return amdgpu_device_resume(drm_dev, true);
> --
> 2.51.0
^ permalink raw reply [flat|nested] 8+ messages in thread
* Re: [PATCH 0/3] Fixes for hybrid sleep
2025-09-24 20:52 [PATCH 0/3] Fixes for hybrid sleep Mario Limonciello (AMD)
` (2 preceding siblings ...)
2025-09-24 20:52 ` [PATCH 3/3] drm/amd: Fix hybrid sleep Mario Limonciello (AMD)
@ 2025-09-25 13:56 ` Kenneth Crudup
3 siblings, 0 replies; 8+ messages in thread
From: Kenneth Crudup @ 2025-09-25 13:56 UTC (permalink / raw)
To: Mario Limonciello (AMD), Alex Deucher, Rafael J . Wysocki
Cc: Samuel Zhang, open list:RADEON and AMDGPU DRM DRIVERS,
open list:HIBERNATION (aka Software Suspend, aka swsusp),
Ionut Nechita
(Thanks Mario for the hint re: replying via Lore!)
On 9/24/25 13:52, Mario Limonciello (AMD) wrote:
> Ionut Nechita reported recently a hibernate failure, but in debugging
> the issue it's actually not a hibernate failure; but a hybrid sleep
> failure.
>
> Multiple changes related to the change of when swap is disabled in
> the suspend sequence contribute to the failure. See the individual
> patches for details.
>
> Link: https://gitlab.freedesktop.org/drm/amd/-/issues/4573
I just wanted to say that the non-AMD-display bits of this patch were
tested by me and seem to have fixed a problem I'd had where if I had an
NFS share mounted on suspend/hibernate, that ~50% of the time when
resuming the machine would be up, but disk I/O would be deadlocked (so I
really couldn't do anything except SysRq-S/U/B).
Still going to test a few more suspend/resume/hibernate cycles, but it
does seem to have fixed that issue for me. There was a corresponding
patch in linux-pm earlier along the same lines, but that one only had a
limited success rate.
I have "hybrid sleep" enabled, where systemd will go into full
hibernation after 4 hrs, BTW.
> drivers/gpu/drm/amd/amdgpu/amdgpu_drv.c | 2 +-
> include/linux/suspend.h | 2 ++
> kernel/power/hibernate.c | 13 ++++++++++++-
> 3 files changed, 15 insertions(+), 2 deletions(-)
>
Tested-By: Kenneth Crudup <kenny@panix.com>
-Kenny
--
Kenneth R. Crudup / Sr. SW Engineer, Scott County Consulting, Orange
County CA
^ permalink raw reply [flat|nested] 8+ messages in thread