From owner-freebsd-acpi@FreeBSD.ORG Sat Feb 16 04:37:49 2008 Return-Path: Delivered-To: acpi@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8F6C116A419; Sat, 16 Feb 2008 04:37:49 +0000 (UTC) (envelope-from alex.kovalenko@verizon.net) Received: from vms040pub.verizon.net (vms040pub.verizon.net [206.46.252.40]) by mx1.freebsd.org (Postfix) with ESMTP id 7F02813C442; Sat, 16 Feb 2008 04:37:49 +0000 (UTC) (envelope-from alex.kovalenko@verizon.net) Received: from [10.0.3.231] ([70.111.176.151]) by vms040.mailsrvcs.net (Sun Java System Messaging Server 6.2-6.01 (built Apr 3 2006)) with ESMTPA id <0JWB00JZHEAH6V35@vms040.mailsrvcs.net>; Fri, 15 Feb 2008 22:39:55 -0600 (CST) Date: Fri, 15 Feb 2008 23:37:16 -0500 From: "Alexandre \"Sunny\" Kovalenko" In-reply-to: To: Hajimu UMEMOTO Message-id: <1203136636.821.4.camel@RabbitsDen> MIME-version: 1.0 X-Mailer: Evolution 2.12.3 FreeBSD GNOME Team Port Content-type: text/plain; charset=utf-8 Content-transfer-encoding: 8BIT References: <20080208045605.15C874500E@ptavv.es.net> <47ABF402.7030904@root.org> <1202475519.7014.7.camel@RabbitsDen> <1203126071.833.19.camel@RabbitsDen> Cc: acpi@freebsd.org, Johannes Dieterich , Ian Smith Subject: Re: [RFC] Patch to enable temperature ceiling in powerd X-BeenThere: freebsd-acpi@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: ACPI and power management development List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 16 Feb 2008 04:37:49 -0000 On Sat, 2008-02-16 at 12:11 +0900, Hajimu UMEMOTO wrote: > Hi, > > >>>>> On Fri, 15 Feb 2008 20:41:10 -0500 > >>>>> "Alexandre \"Sunny\" Kovalenko" said: > > alex> Thank you very much for pointing me in the right direction -- my system > alex> (ThinkPad X60 1709-73U) does provide _TSP, _TC1 and _TC2, just not in > alex> the tz0. All of that lives in tz1 and works perfectly -- as the matter > alex> of fact I am writing this E-mail after setting > > alex> hw.acpi.thermal.tz1.passive_cooling: 1 > alex> hw.acpi.thermal.user_override: 1 > alex> hw.acpi.thermal.tz1._PSV: 55.0C > > The current implementation attempts to enable passive cooling just for > tz0. Could you try the following patch? It should enable passive > cooling for tz1 on your laptop. Thank you, it certainly did: sunny:RabbitsDen>sysctl hw.acpi.thermal hw.acpi.thermal.min_runtime: 0 hw.acpi.thermal.polling_rate: 10 hw.acpi.thermal.user_override: 0 hw.acpi.thermal.tz0.temperature: 65.0C hw.acpi.thermal.tz0.active: -1 hw.acpi.thermal.tz0.passive_cooling: 0 hw.acpi.thermal.tz0.thermal_flags: 0 hw.acpi.thermal.tz0._PSV: -1 hw.acpi.thermal.tz0._HOT: -1 hw.acpi.thermal.tz0._CRT: 127.0C hw.acpi.thermal.tz0._ACx: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 hw.acpi.thermal.tz1.temperature: 64.0C hw.acpi.thermal.tz1.active: -1 ==> hw.acpi.thermal.tz1.passive_cooling: 1 hw.acpi.thermal.tz1.thermal_flags: 0 hw.acpi.thermal.tz1._PSV: 92.5C hw.acpi.thermal.tz1._HOT: -1 hw.acpi.thermal.tz1._CRT: 97.0C hw.acpi.thermal.tz1._ACx: -1 -1 -1 -1 -1 -1 -1 -1 -1 -1 I have one question regarding this patch: it enables passive cooling for the thermal zone, which has _PSV, _TSP, _TC1 and _TC2. Isn't it necessary to also have _PSL in the thermal zone to have passive cooling? > > Index: sys/dev/acpica/acpi_thermal.c > diff -u -p sys/dev/acpica/acpi_thermal.c.orig sys/dev/acpica/acpi_thermal.c > --- sys/dev/acpica/acpi_thermal.c.orig Wed Aug 23 21:29:55 2006 > +++ sys/dev/acpica/acpi_thermal.c Mon Aug 28 00:35:49 2006 > @@ -172,6 +172,8 @@ static int acpi_tz_override; > static struct proc *acpi_tz_proc; > ACPI_LOCK_DECL(thermal, "ACPI thermal zone"); > > +static int acpi_tz_cooling_unit = -1; > + > static int > acpi_tz_probe(device_t dev) > { > @@ -205,17 +207,7 @@ acpi_tz_attach(device_t dev) > sc->tz_cooling_proc_running = FALSE; > sc->tz_cooling_active = FALSE; > sc->tz_cooling_updated = FALSE; > - > - /* > - * Always attempt to enable passive cooling for tz0. Users can enable > - * it for other zones manually for now. > - * > - * XXX We need to test if multiple zones conflict with each other > - * since cpufreq currently sets all CPUs to the given frequency whereas > - * it's possible for different thermal zones to specify independent > - * settings for multiple CPUs. > - */ > - sc->tz_cooling_enabled = (device_get_unit(dev) == 0); > + sc->tz_cooling_enabled = FALSE; > > /* > * Parse the current state of the thermal zone and build control > @@ -309,16 +301,25 @@ acpi_tz_attach(device_t dev) > } > } > > - /* Create a thread to handle passive cooling for each zone if enabled. */ > + /* > + * Create a thread to handle passive cooling for 1st zone which > + * has _PSV, _TSP, _TC1 and _TC2. Users can enable it for other > + * zones manually for now. > + * > + * XXX We enable only one zone to avoid multiple zones conflict > + * with each other since cpufreq currently sets all CPUs to the > + * given frequency whereas it's possible for different thermal > + * zones to specify independent settings for multiple CPUs. > + */ > + if (acpi_tz_cooling_unit < 0 && acpi_tz_cooling_is_available(sc)) > + sc->tz_cooling_enabled = TRUE; > if (sc->tz_cooling_enabled) { > - if (acpi_tz_cooling_is_available(sc)) { > - error = acpi_tz_cooling_thread_start(sc); > - if (error != 0) { > - sc->tz_cooling_enabled = FALSE; > - goto out; > - } > - } else > + error = acpi_tz_cooling_thread_start(sc); > + if (error != 0) { > sc->tz_cooling_enabled = FALSE; > + goto out; > + } > + acpi_tz_cooling_unit = device_get_unit(dev); > } > > /* > > Sincerely, > > -- > Hajimu UMEMOTO @ Internet Mutual Aid Society Yokohama, Japan > ume@mahoroba.org ume@{,jp.}FreeBSD.org > http://www.imasy.org/~ume/ -- Alexandre "Sunny" Kovalenko (Олександр Коваленко)