Firmware Test Suite - s3 test

This test exercises suspend/resume (S3). The S3 test uses the pm-utils pm-suspend command to initiate the suspend. By default the test will suspend the machine and 30 seconds later will use the ACPI wakealarm to automatically resume. One can specify multiple S3 cycles and also specify the delay between initiating each suspend cycle and vary this time between a minimum and maximum time and increasing per cycle by a specified delay delta. This allows one to initiate suspend over a range of times to catch bugs such as wifi re-associating during a suspend.

The test can be used to soak test S3 with various extra options:

--s3-multiple

Run S3 tests multiple times, e.g. for 10 iterations use: --s3-multiple=10

--s3-device-check

Check differences between device configurations over a S3 cycle. Note we add a default of 15 seconds to allow wifi to re-associate. Cannot be used with --s3-min-delay, --s3-max-delay and --s3-delay-delta.

--s3-quirks

Comma separated list of quirk arguments to pass to pm-suspend, e.g. --s3-quirks=--quirk-radeon-off,--quirk-s3-bios

--s3-sleep-delay

Sleep N seconds between start of suspend and wakeup, e.g. --s3-sleep-delay=60. Note that this time needs to include the time taken to suspend the machine. If it is too short then the wakealarm will fire before the machine is fully suspended and hence the machine will not automatically wake up.

--s3-min-delay

Minimum time to wait (in integer seconds) before starting next S3 cycle.

--s3-max-delay

Maximum time to wait (in integer seconds) before starting next S3 cycle.

--s3-delay-delta

Delta in (seconds) to add to each delay between S3 cycles. When the delay reaches --s3-max-delay then it wraps back around to --s3-min-delay seconds.

--s3-hybrid

Run S3 with hybrid sleep, i.e. saving system states as S4 does.

Example:

sudo fwts s3 - 

..runs one suspend/resume cycle.

sudo fwts s3 --s3-multiple=50

..run 50 suspend/resume cycles.

sudo fwts s3 --s3-multiple=100 --s3-min-delay=1 --s3-max-delay=10 --s3-delay-delta=0.25 --s3-sleep-delay=25

..run 100 suspend/resume cycles, with a range of 1 to 10 seconds between each new suspend test and trigger the wake up alarm 25 seconds from when each suspend is initiated. Each iteration adds 0.25 seconds to the delay between each new suspend test.

Explanation of test results

Certain test results may require a little more explanation. This section will try and give some context to specific test failures.

Error ID

Explanation

BadWakeAlarmS3

Wakealarm does not seem to work.

DevConfigDiffAfterS3

When using the --s3-device-check option. Detected a device configuration change between suspend and resume which may indicate a driver suspend/resume fault.

ShortSuspend

Time in suspended state was shorter than expected, perhaps because the machine popped out of suspend back into resume immediately because of a BIOS bug.

LongSuspend

Time in suspended state was longer than expected, perhaps because the ACPI wake alarm failed to trigger a resume.

PMActionFailedPreS3

pm-suspend failed to suspend the machine and returned error 128.

PMActionPowerStateS3

pm-suspend failed to put the machine into the S3 (suspend) state and returned error 129.

PMActionFailedS3

pm-suspend failed to suspend the machine and returned error 130.

KlogCheckS3

Failed to scan the kernel log.

FirmwareTestSuite/Reference/s3 (last edited 2016-01-11 07:24:56 by anthonywong)