From owner-freebsd-questions@FreeBSD.ORG Wed Feb 2 23:45:32 2005 Return-Path: Delivered-To: freebsd-questions@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 8AA6A16A4CE for ; Wed, 2 Feb 2005 23:45:32 +0000 (GMT) Received: from nutty.inf.ed.ac.uk (nutty.inf.ed.ac.uk [129.215.216.3]) by mx1.FreeBSD.org (Postfix) with ESMTP id 5863543D31 for ; Wed, 2 Feb 2005 23:45:31 +0000 (GMT) (envelope-from richard@inf.ed.ac.uk) Received: from macintosh.inf.ed.ac.uk (macintosh.inf.ed.ac.uk [129.215.164.64]) by nutty.inf.ed.ac.uk (8.12.8/8.12.8) with ESMTP id j12NjUpH020958 for ; Wed, 2 Feb 2005 23:45:30 GMT Received: by macintosh.inf.ed.ac.uk (Postfix, from userid 501) id EA1661EF005; Wed, 2 Feb 2005 23:45:29 +0000 (GMT) From: Richard Tobin To: freebsd-questions@freebsd.org Organization: just say no X-Mailer: Ream 5.1.51-richard-mac Message-Id: <20050202234529.EA1661EF005@macintosh.inf.ed.ac.uk> Date: Wed, 2 Feb 2005 23:45:29 +0000 (GMT) Subject: Heat problem with 4.11 X-BeenThere: freebsd-questions@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: User questions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 02 Feb 2005 23:45:32 -0000 For a few years now I have used fvcool to put the CPU of my 1GHz Athlon into power-saving mode. To make it work, I had to follow the instructions in the fvcool documentation and patch /sys/i386/i386/swtch.s to have these instructions immediately before calling hlt_vector: movl $0x4014, %edx inb %dx, %al (The number 4014 is obtained from running "fvcool -v -e".) This reduced the idle temperature of the CPU from about 68C to about 35C. Unfortunately this patch no longer seems to do the trick in 4.11. The temperature is stuck at about 68C. Surprisingly, using fvcool -i (which sits in the background at low priority executing the inb instruction every 30uS) does work. The code around the call to hlt_vector has changed a little since 4.10; it has this instruction before the call: movl $0, lapic_tpr /* 1st candidate for an INT */ and a cli immediately after hlt_vector returns. Can anyone tell me what I need to change to make this work again? -- Richard