Re: [PATCH 2/2] Add a passive cooling trip point if the firmware doesn't define one

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Thu, 2008-05-15 at 03:24 +0100, Matthew Garrett wrote:
> On Thu, May 15, 2008 at 10:15:39AM +0800, Zhang Rui wrote:
> > On Thu, 2008-05-15 at 02:58 +0100, Matthew Garrett wrote:
> > > I'll modify my patch so it uses the devices in a _TZD package if they're 
> > > present.
> > > 
> > Hmm, ACPI thermal zone doesn't know how to throttle the devices in a
> > _TZD package, so I don't think we can use the _TZD devices.
> 
> If they have a _TZD, it's presumably because they need cooling.
Agree.

>  If the 
> kernel isn't going to be able to do that,
It is complicated to throttle devices in kernel.
Take this for example:
            Method (_TZD, 0, Serialized)
            {
                If (MPEN)
                {
                    Return (Package (0x04)
                    {
                        \_PR.P001,
                        \_PR.P002,
                        \_SB.PCI0.GFX0.DD04,
                        MEM0
                    })
                }

                Return (Package (0x04)
                {
                    \_SB.PCI0.GFX0.DD03,
                    \_SB.PCI0.GFX0.DD04,
                    \_PR.P001,
                    MEM0
                })
            }
ACPI thermal zone knows how to throttle a processor,
but it never knows how to throttle the LCD and memory controller.

Device throttling is implemented in its native driver, like ACPI
processor, ACPI video and intel_menlow etc, and all the driver may be
loaded as a module.
I don't like the idea of adding hooks like we do for processors.
what do you think?

>  what happens if the userspace 
> daemon crashes or fails to start for some reason? 
Well, the current solution depends on the userspace daemon.

A possible solution is to throttle the devices in the generic thermal
class, as only the generic thermal driver knows the temperature and trip
point info and know hows to throttle all the cooling devices in a
thermal zone. But I haven't thought about it carefully.

> 
> The alternative is to leave it as it is currently in my patch. If the 
> userspace daemon starts, it disables the ACPI control and will handle it 
> itself. If it doesn't start, the kernel does the only thing it can - 
> reduce the speed of the CPU.

it can work and it doesn't break the current flowchart on menlow.
but I still doubt if this is the right way to go.
As you said, a _TZD method means these devices need to be throttled when
overheating, it's also presumable that BIOS doesn't want to throttle the
processor for a thermal zone without _PSV, e.g. the thermal zone is for
the skin temperature and throttling the processor doesn't help.
anyway, a fake passive trip point is a little tricky IMO. :)

thanks,
rui


--
To unsubscribe from this list: send the line "unsubscribe linux-acpi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux