Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 25 Apr 2011 17:51:11 -0400
From:      Alexandre Kovalenko <bsd.gaijin@gmail.com>
To:        Bartosz Fabianowski <freebsd@chillt.de>
Cc:        freebsd-stable@freebsd.org
Subject:   Re: System extremely slow under light load
Message-ID:  <BANLkTimdmYUiukrR1F-jZCUD2dOwc5Jncg@mail.gmail.com>
In-Reply-To: <4DB5751B.2050903@chillt.de>
References:  <BANLkTi=c3zxYeUqvmsHkyoD6MbXafkK-RA@mail.gmail.com> <4DB5751B.2050903@chillt.de>

next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, Apr 25, 2011 at 9:20 AM, Bartosz Fabianowski <freebsd@chillt.de> wr=
ote:
>>
>> I am not sure tz0 is the real thermal zone, especially given values
>> of _tc1, _tc2 and _tsp. Temperature value (3001) =A0looks suspicious as
>> well.
>
> I agree. tz0 looks entirely bogus. There is no second fan to control for =
it and I have no idea what it is supposed to be monitoring.
>
>> Can you, by any chance, put your ASL someplace accessible and provide
>> a description of what you have done to fix the temperature
>> reporting.
>
> Certainly. I have uploaded the files at [1] through [5].
>
> The DSDT source returned by acpidump -d is at [1]. I modified this so tha=
t it can be compiled back into AML without errors or warnings. This modifie=
d source is at [2]. It contains no functional changes. The thermal zones ar=
e still broken. A variant with fixed tz1 is at [3].
>
> For convenience, I have also uploaded diffs between these source files. [=
4] is the diff required to make the source compile (difference between [1] =
and [2]). [5] is the actual change I made to fix tz1 (difference between [2=
] and [3]). As you can see, all I did was to remove a bogus function that e=
nds up always returning 0=B0C.
>
>> As the side note: I have seen and do own pieces of equipment that
>> use thermal zones to initiate critical shutdown for various and
>> unrelated reasons.
>
> In my case, the thermal zone and its various tripping points do correspon=
d to the actual system fan. It is just that the BIOS enforces power managem=
ent itself, ignoring ACPI - except for critical shutdown which appears to b=
e triggered by ACPI only.

Did you try to set OS override to any of the values, recognized by
your BIOS, with most interesting being=A0 "Windows 2001 SP2", "Windows
2006" and "Windows 2009". There is no obvious impact on the thermal
part per se, but at least some of values seem to change the timer
configuration. You can change your OS name by setting
hw.acpi.osname=3D<one of those strings> in /boot/loader.conf
(http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/acpi-debug.html)=
.

Additionally, could you, by any chance, replace _TMP method in TZ01
with the snippet below and let me know what the result is:

=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Method (_TMP, 0, Serialized)
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 {
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 If (LEqual (\_SB.PCI0.LPCB.EC=
0.EIDL, 0xDD))
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 {
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Return (0x0BB8)
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 }

=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 If (LAnd (DTSE, ETMD))
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 {
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 If (LGreater (\_S=
B.PCI0.LPCB.EC0.DTS2,
\_SB.PCI0.LPCB.EC0.DTS1))
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 {
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Store=
 (\_SB.PCI0.LPCB.EC0.DTS2, Local0)
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 }
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Else
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 {
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Store=
 (\_SB.PCI0.LPCB.EC0.DTS1, Local0)
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 }

=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Return (Add (0x0A=
AC, Multiply (Local0, 0x0A)))
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 }

=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 If (LAnd (ECON, ETMD))
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 {
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Acquire (\_SB.PCI=
0.LPCB.EC0.MUT0, 0xFFFF)
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Store (\_SB.PCI0.=
LPCB.EC0.DTS1, Local0)
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Release (\_SB.PCI=
0.LPCB.EC0.MUT0)
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 If (And (Local0, =
0x80))
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 {
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Subtr=
act (Local0, 0x0100, Local0)
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 }

=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Return (Add (0x0A=
AC, Multiply (Local0, 0x0A)))
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 }

=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 Return (0x0BB8)
=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0=A0 }

I assume, since you have already modified your ASL, you do realize all
of the pitfalls of this activity, including but not limited to turning
your laptop into molten blob of plastic ;)

>
> - Bartosz
>
> [1] http://www.fabianowski.de/dsdt/decompiled.asl
> [2] http://www.fabianowski.de/dsdt/compilable.asl
> [3] http://www.fabianowski.de/dsdt/fixed.asl
> [4] http://www.fabianowski.de/dsdt/decompile_compilable.diff
> [5] http://www.fabianowski.de/dsdt/compilable_fixed.diff
> _______________________________________________
> freebsd-stable@freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-stable
> To unsubscribe, send any mail to "freebsd-stable-unsubscribe@freebsd.org"

Alexandre "Sunny" Kovalenko.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?BANLkTimdmYUiukrR1F-jZCUD2dOwc5Jncg>