>> Hmm, we can continue to have fun with debugging. Right?
>
>Definitely, I haven't given up.
Great!
>
>>> The second sleep.sh hangs going to sleep. It is in an endless loop
>>> printing the following line, once per second (from the
>>> polling_frequency):
>>>
>>> Execute Method: [\_TZ_.THM0._TMP] (Node c157bf88)
>
>I don't think these lines are a problem. They just reflect that
>thermal polling is happening once per second. So even though the ACPI
>system is hanging in the SMPI loop (as you say below), it is alive
>enough to poll the temperature sensors.
>
>> Also please mute THM0 polling.
>
>I retested the hacked kernel (with faked thermal_active/passive)
>but with no thermal polling, just doing
>
> cat THM*/polling_frequency (they were all 'polling disabled')
> sleep.sh (works)
> sleep.sh (hangs in the usual SMPI loop)
>
>and it hangs as usual.
Good news, no new branch needed to track.
I assume the problem is still like _TMP & (_PSV | _AC0).
How about re-testing dummy _PSV and dummy _AC0 in DSDT?
Because, your testing result with dummy _PSV and dummy_AC0
IS NOT consistent with the result of hacking
acpi_thermal_passive/active.
Maybe I need to reconsider the impact of _PSV or_AC0 on the
platform.
How about just faking _TMP in DSDT. I'm sure you have done this before.
But, I need to confirm that the problem is NOT _TMP | _PSV | _AC0.
Thanks,
Luming
By the way, I wonder if this problem is the same as
<http://bugzilla.kernel.org/show_bug.cgi?id=5037>, about S3 hangs with
kernel pre-empts enabled.
> How about re-testing dummy _PSV and dummy _AC0 in DSDT?
I'll do that. It's the one data point that I'm not sure about. With
dummy _PSV, it hangs, though it takes a bit of stressing it before it
hangs. But with dummy _PSV and dummy _AC0, I could not make it hang.
I tried it twice, each time stressing it as much as I could (about 10
or so cycles, with thermal polling thrown in as well as module loading
and unloading). Even though it didn't hang, it did get *very*
sluggish at times, and once woke up with load=8.2 even though no
processes were running. Lots of ACPI threads?
I'll test it just with sleep.sh, no thermal polling. Maybe also with
loading and unloading thermal.ko.
> How about just faking _TMP in DSDT. I'm sure you have done this
> before.
This one I've tried, and it worked fine (no hang). I tested it for a
while and then retested it. It also works fine if I take out just the
EC0.UPDT line in _TMP (with AC0 already taken out).
-Sanjoy
`Never underestimate the evil of which men of power are capable.'
--Bertrand Russell, _War Crimes in Vietnam_, chapter 1.
> How about re-testing dummy _PSV and dummy _AC0 in DSDT?
Just retested and you were right. This time I managed to get it to
hang, after many cycles of sleep.sh and "modprobe -r thermal ;
modprobe thermal" mixed in.
-Sanjoy
`Never underestimate the evil of which men of power are capable.'
--Bertrand Russell, _War Crimes in Vietnam_, chapter 1.