On Tue, Aug 19, 2025 at 01:20:47PM +1000, Jonathan Gray wrote:
> On Fri, Jul 18, 2025 at 08:11:31PM +1000, Jonathan Gray wrote:
> > On Sat, Jun 21, 2025 at 07:00:56PM +0200, Matthieu Herrb wrote:
> > > On Wed, Jun 04, 2025 at 08:39:19AM +0100, Laurence Tratt wrote:
> > > > As of somewhere in the last 10-14 days or so, my amd64 machine has 
> > > > stopped
> > > > reliably suspending (for reference: it's reliably suspended for the past
> > > > 9-10 months). Unfortunately I haven't worked out *what* the sequence of
> > > > events that causes this is, so bisecting has proven impossible (I
> > > > tried...). When `zzz` is unsuccessful, X disappears, the machine drops 
> > > > to
> > > > the console (i.e. displaying "Login:" or whatever was there last), and 
> > > > then
> > > > is stuck there indefinitely: it doesn't get as far as "Syncing disks". 
> > > > The
> > > > machine's fans spin up after a while, so presumably something is stuck 
> > > > in a
> > > > busy loop.
> > > 
> > > Hi,
> > > 
> > > I'm seeing something similar on my X395 since some weeks. I *think*
> > > failure to suspend happens only after I've played a few large (HD) video
> > > with mpv, maybe in chrome too. I've not tried to figure out a
> > > reproducer.
> > > 
> > > When it happens, and the machine sits a the login prompt, I can still
> > > interact with it for a couple of minutes before it freezes: type
> > > commands, enter ddb,... I cannot switch back to X (either instant
> > > freeze or panic) nor retry zzz. halt -p sometimes works, sometimes
> > > unlock the pending supend (so the machine suspends, and powers itself
> > > off shortly after resume).
> > > 
> > > Unfortunatly I've no idea what kind of resources to look for that
> > > would be blocking the suspend path. Any clues of stuff I can run on
> > > the console or in ddb next time this happens ?
> > 
> > I suggested Laurence try a revert of 6.12.31's
> > 'Revert "drm/amd: Stop evicting resources on APUs in suspend"'
> > And after a week or so of testing he hasn't had a problem.
> > 
> > Perhaps it helps in your case as well?  A T495 with the same
> > APU as the X395 (Picasso) suspends and resumes fine without this.
> 
> This patch should be equivalent to reverting the revert.
> It is contained to a function that does not exist in linux.
> 
> Laurence has been running with a diff close to this.

This seems to fix the issue for me too. I've not had an issue
suspending since I applied the patch. I'm not 100% it's totally gone
but I've done some stressing of the machine, playing hi-res videos,
loading lots of tabs in firefox and chrome (things that used to
trigger the issue) without reproducing the problem on suspend.
> 
> Index: sys/dev/pci/drm/amd/amdgpu/amdgpu_drv.c
> ===================================================================
> RCS file: /cvs/src/sys/dev/pci/drm/amd/amdgpu/amdgpu_drv.c,v
> diff -u -p -r1.63 amdgpu_drv.c
> --- sys/dev/pci/drm/amd/amdgpu/amdgpu_drv.c   5 Jul 2025 23:44:49 -0000       
> 1.63
> +++ sys/dev/pci/drm/amd/amdgpu/amdgpu_drv.c   19 Aug 2025 03:10:58 -0000
> @@ -3888,6 +3888,14 @@ amdgpu_activate(struct device *self, int
>       switch (act) {
>       case DVACT_QUIESCE:
>               rv = config_activate_children(self, act);
> +
> +             if (acpi_softc && acpi_softc->sc_state != ACPI_STATE_S4) {
> +                     if (amdgpu_acpi_is_s0ix_active(adev))
> +                             adev->in_s0ix = true;
> +                     else if (amdgpu_acpi_is_s3_active(adev))
> +                              adev->in_s3 = true;
> +             }
> +
>               amdgpu_pmops_prepare(self);
>               if (acpi_softc && acpi_softc->sc_state == ACPI_STATE_S4) {
>                       adev->in_s4 = true;
> 

-- 
Matthieu Herrb

Reply via email to