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

Sanjoy Mahajan
2006-03-16T05:47:52Z

Here the test results on the DSDT variants, as a tree. THM0 is the
root (meaning a DSDT with only THM0). -XYZ means 'fake the method XYZ
in THM0, relative to the situation in the parent DSDT':

hang: THM0
okay: -TMP
hang: -PSV
okay: -AC0 (i.e. THM0 methods but no PSV, no AC0)
hang: -SCP
hang: -AC0

The first two results are consistent with the view that TMP is the
problem.

>From the first five results, I convinced myself that TMP needed AC0
around to cause a problem, and vice versa: hang iff (TMP & AC0). But
the last result (-AC0) surprised me. Now I think:
hang iff (TMP & (PSV | AC0)).

The -PSV-AC0 DSDT, which did not hang, seemed close to hanging. After
a few cycles, it became very sluggish and the load was 8.2 on wakeup.
But the sluggishness disappeared after a couple more cycles, and I
couldn't produce a hang (tried two reboots, each with different
permutations of sleep.sh or "echo 1 > THM0/polling_frequency").

The -AC0 DSDT hung upon doing

echo 1 > THM0/polling_frequency ; sleep.sh; sleep.sh

and it got in an endless loop that showed it sluggishly executing
(over and over again) THM0._TMP.

It's probably not coincidence that TMP and AC0 both use the EC.
Although PSV doesn't.

I didn't make any tests on the MODP method. And the TC1, TC2, and TSP
methods seemed to trivial (just returning a constant) that it didn't
seem worth testing them.

I keep the kernels around for each permutation, so I can retest any of
the above, or send the THM0 portions of the .dsl files.

-Sanjoy

`Never underestimate the evil of which men of power are capable.'
--Bertrand Russell, _War Crimes in Vietnam_, chapter 1.