2006-03-17 06:57:50

by Luming Yu

[permalink] [raw]
Subject: RE: 2.6.16-rc5: known regressions [TP 600X S3, vanilla DSDT]

>> 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


2006-03-17 07:11:37

by Sanjoy Mahajan

[permalink] [raw]
Subject: Re: 2.6.16-rc5: known regressions [TP 600X S3, vanilla DSDT]

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.

2006-03-17 07:32:35

by Sanjoy Mahajan

[permalink] [raw]
Subject: Re: 2.6.16-rc5: known regressions [TP 600X S3, vanilla DSDT]

> 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.