Index | Thread | Search

From:
"Theo de Raadt" <deraadt@openbsd.org>
Subject:
S0ix suspend
To:
tech@cvs.openbsd.org
Date:
Sat, 17 Aug 2024 22:00:28 -0600

Download raw body.

Thread
  • Theo de Raadt:

    S0ix suspend

amd64 snapshots contain a 2 line diff which enable S0ix suspend by default
on many laptops.

Originally, x86 laptops suspended using an ACPI feature called S3.  There
was always an alternative to this: We could push all the buttons and push
as many devices to the lowest power state possible.  That kind of worked,
but the knobs were crummy and the machines still sucked a lot of power, and
all sorts of non-standard things didn't work right.  Intel (and later AMD)
started making that better with newer chipset features, and this is generally
known as S0ix, and on Linux they call their use of it 's2idle'.

On many machines, S3 suspend was pretty much doing the same thing as the
new OpenBSD code, but using their own code inside the BIOS, the EC, etc.

As time went by, we started seeing machines without S3.  On some machines,
S3 was available as a BIOS option, but it is becomig rare.  Some machines
advertise S3, but it is dangerously broken and we can't debug it.
Things have gotten a bit ugly.

Most of the new low-level amd64-specific suspend/resume work was written
by Mark Kettenis.

That work also exposed a bunch of other suspend/resume bugs in drivers,
many of which are fixed, but many are still in the queue (being
discovered or fixed).  The low-level AMD code is not finished, but graphics
does suspend & resume.

Enough stuff works, so it is easier to accept user tests now.

This is approximately where it stands now:

- Intel machines (for example lenovo x1r6+, t14gen2+, and such) are working
  pretty well
- Intel machines after resume will show how well they suspended with a few
  printf's which are difficult to diagnose, but basically if the two numbers
  between PC10 are far apart it went down low, but it is bad if there were
  many discarded "wakeups". 
- There is a weird behaviour between zzz, lid open/close.  On some machines
  you can only resume with the power button, and on some machines that requires
  a disturbingly long press.
- AMD machines are still missing some driver work, but will work somewhat
- Reports including power meter data (in W, do this on a full battery charge)
  are very helpful.
- Some drivers will still crash, probably.
- Older machines are a weird mix.
- In some cases Newer Lenovo laptops don't do slow-blink.

On some machines, S3 doesn't work and we will automatically choose S0.
On some machines with a S3 BIOS option, if you turn off that option, you
will get S0.  If you leave the option on, you get S3.  That means if you
changed your BIOS to S3 -- go change it back to S0 for testing.

Please go ahead and test, but please don't supply low-quality reports
which are distracting.