I am trying to get S3 working on my system running a 2.6.11 (upgraded from 2.6.4) kernel. On boot up I can put the system to S3 and then wol using magic packets. Subsequent attempts to put the system to S3 fail with the error “stopping tasks failed (208 tasks remaining)”. I tried changing the TIMEOUT from the default 6 HZ in kernel/power/process.c to a larger number and the system is now able to suspend but takes about 20 – 30 seconds for it to go to suspend. Why is it taking that long? Also shouldn’t the timeout be dependent on the number of processes that we are trying to put to suspend vs a constant value?
On my system, the error is easily reproducible with a simple shell script that spawns a lot of processes. As the number of processes increase, after around 70 odd processes in the system I start seeing failures while trying to suspend.