public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* Re: idle Athlon with IOAPIC is 10C warmer since 2.6.3-bk1
@ 2004-03-18  0:19 Ross Dickson
  2004-03-18  1:02 ` Craig Bradney
                   ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Ross Dickson @ 2004-03-18  0:19 UTC (permalink / raw)
  To: linux-kernel
  Cc: thomas.schlichter_at_web.de, Maciej W. Rozycki,
	len.brown_at_intel.com

>"Maciej W. Rozycki" <macro@ds2.pg.gda.pl> wrote: 
> > On Wed, 3 Mar 2004, Thomas Schlichter wrote: 
> > 
> > > a few days ago I noticed that my Athlon 3000+ was relatively hot (49C) 
> > > although it was completely idle. At that time I was running 2.6.3-mm3 with 
> > > ACPI and IOAPIC-support enabled. 
> > > 
> > > As I tried 2.6.3, the idle temperature was at normal 39C. So I did do some 
> > > binary search with the -bk patches and found the patch that causes the high 
> > > idle temperature. It is ChangeSet@1.1626 aka 8259-timer-ack-fix.patch. 
> > 
> > Interesting -- the patch removes a pair of unnecessary for your 
> > configuration PIC accesses when using an I/O APIC NMI watchdog. You have 
> > the NMI watchdog enabled, don't you? 
 
> No, I don't use the NMI watchdog... 
>  So the optimization of removing these I/O accesses is bogus for my configuration. Btw. I don't know if I already mentioned it, but I use the VIA KT400 chipset. Maybe this is of interest... 
 
> The only way to cool down my CPU was to enable timer_ack. 
>  I don't know how to help you, but of course I am willing to test patches... ;-) 
>   Thomas 
 
I agree with Len Brown's comments to try to examine which power saving state but
if you want to try to brute force C1 state ( only works if chipset supported )
you could try this patch for process.c, 
(ignore the io-apic patch as it is nforce2 specific).

http://linux.derkeiler.com/Mailing-Lists/Kernel/2004-02/6520.html
The KERNEL ARG to invoke it is "idle=C1halt". 
 
It has an extra function pointer to prevent the power management idle routine
hikjacking things after the command line arg has requested an idle routine.

These idle mods appear to assist more than just nforce2 Athlon boards.
Thomas Herrmann has had success with an SIS740

> Hi Ross,
> I just want to let you know that your nforce2_idle patch does work with the
> SiS740 chipset too. While the current ACPI patch already routes the timer of
> the SiS740 to IO-APIC-edge with out the C1halt option of your nforce2_idle
> patch the system locked up when STPGNT was enabled. But after I applied your
> nforce2_idle patch to kernel 2.4.24 together with the C1halt kernel boot
> option, the system runs stable for hours.
> Great work, thanks!
> Best regards,   Thomas

Craig Bradney has put it into the gentoo dev sources also.
http://linux.derkeiler.com/Mailing-Lists/Kernel/2004-03/1746.html

Hope this helps,
Ross.



^ permalink raw reply	[flat|nested] 19+ messages in thread
* Re: idle Athlon with IOAPIC is 10C warmer since 2.6.3-bk1
@ 2004-03-17 21:26 Thomas Schlichter
  0 siblings, 0 replies; 19+ messages in thread
From: Thomas Schlichter @ 2004-03-17 21:26 UTC (permalink / raw)
  To: Maciej W. Rozycki; +Cc: AndrewMorton, linux-kernel

"Maciej W. Rozycki" <macro@ds2.pg.gda.pl> wrote:
> On Wed, 3 Mar 2004, Thomas Schlichter wrote:
> 
> > a few days ago I noticed that my Athlon 3000+ was relatively hot (49C) 
> > although it was completely idle. At that time I was running 2.6.3-mm3 with 
> > ACPI and IOAPIC-support enabled.
> > 
> > As I tried 2.6.3, the idle temperature was at normal 39C. So I did do some 
> > binary search with the -bk patches and found the patch that causes the high 
> > idle temperature. It is ChangeSet@1.1626 aka 8259-timer-ack-fix.patch.
> 
> Interesting -- the patch removes a pair of unnecessary for your
> configuration PIC accesses when using an I/O APIC NMI watchdog. You have 
> the NMI watchdog enabled, don't you?

No, I don't use the NMI watchdog...
So the optimization of removing these I/O accesses is bogus for my configuration. Btw. I don't know if I already mentioned it, but I use the VIA KT400 chipset. Maybe this is of interest...

The only way to cool down my CPU was to enable timer_ack.
I don't know how to help you, but of course I am willing to test patches... ;-)

   Thomas


^ permalink raw reply	[flat|nested] 19+ messages in thread
[parent not found: <200403032119.58817.thomas.schlichter@web.de>]
* idle Athlon with IOAPIC is 10C warmer since 2.6.3-bk1
@ 2004-03-04 12:47 Thomas Schlichter
  0 siblings, 0 replies; 19+ messages in thread
From: Thomas Schlichter @ 2004-03-04 12:47 UTC (permalink / raw)
  To: linux-kernel

[-- Attachment #1: Type: text/plain, Size: 718 bytes --]

Hi,

a few days ago I noticed that my Athlon 3000+ was relatively hot (49C) 
although it was completely idle. At that time I was running 2.6.3-mm3 with 
ACPI and IOAPIC-support enabled.

As I tried 2.6.3, the idle temperature was at normal 39C. So I did do some 
binary search with the -bk patches and found the patch that causes the high 
idle temperature. It is ChangeSet@1.1626 aka 8259-timer-ack-fix.patch.

A patch to revert that ChangeSet for 2.6.4-rc1-mm2 is attached.

Best regards
   Thomas Schlichter

P.S.: The high idle temperature only shows if the  IOAPIC is used.
P.P.S: I already sent this mail last saturday, but as it seems to have never 
reached LKML I send it again. I'm sorry if you got it twice!

[-- Attachment #2: revert-8259-timer-ack-fix.patch --]
[-- Type: text/x-diff, Size: 1705 bytes --]

--- linux-2.6.4-rc1-mm2/arch/i386/kernel/io_apic.c.orig	2004-03-03 14:56:10.000000000 +0100
+++ linux-2.6.4-rc1-mm2/arch/i386/kernel/io_apic.c	2004-03-03 17:35:03.000000000 +0100
@@ -2157,10 +2157,6 @@ static inline void check_timer(void)
 {
 	int pin1, pin2;
 	int vector;
-	unsigned int ver;
-
-	ver = apic_read(APIC_LVR);
-	ver = GET_APIC_VERSION(ver);
 
 	/*
 	 * get/set the timer IRQ vector:
@@ -2174,17 +2170,11 @@ static inline void check_timer(void)
 	 * mode for the 8259A whenever interrupts are routed
 	 * through I/O APICs.  Also IRQ0 has to be enabled in
 	 * the 8259A which implies the virtual wire has to be
-	 * disabled in the local APIC.  Finally timer interrupts
-	 * need to be acknowledged manually in the 8259A for
-	 * do_slow_timeoffset() and for the i82489DX when using
-	 * the NMI watchdog.
+	 * disabled in the local APIC.
 	 */
 	apic_write_around(APIC_LVT0, APIC_LVT_MASKED | APIC_DM_EXTINT);
 	init_8259A(1);
-	if (nmi_watchdog == NMI_IO_APIC && !APIC_INTEGRATED(ver))
-		timer_ack = 1;
-	else
-		timer_ack = !cpu_has_tsc;
+	timer_ack = 1;
 	enable_8259A_irq(0);
 
 	pin1 = find_isa_irq_pin(0, mp_INT);
@@ -2202,8 +2192,7 @@ static inline void check_timer(void)
 				disable_8259A_irq(0);
 				setup_nmi();
 				enable_8259A_irq(0);
-				if (check_nmi_watchdog() < 0);
-					timer_ack = !cpu_has_tsc;
+				check_nmi_watchdog();
 			}
 			return;
 		}
@@ -2226,8 +2215,7 @@ static inline void check_timer(void)
 				add_pin_to_irq(0, 0, pin2);
 			if (nmi_watchdog == NMI_IO_APIC) {
 				setup_nmi();
-				if (check_nmi_watchdog() < 0);
-					timer_ack = !cpu_has_tsc;
+				check_nmi_watchdog();
 			}
 			return;
 		}

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2004-03-30  9:30 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <A6974D8E5F98D511BB910002A50A6647615F571D@hdsmsx402.hd.intel.com>
2004-03-17 15:53 ` idle Athlon with IOAPIC is 10C warmer since 2.6.3-bk1 Len Brown
2004-03-18  0:19 Ross Dickson
2004-03-18  1:02 ` Craig Bradney
2004-03-18 11:41 ` Bernd Schubert
2004-03-18 11:55   ` Ross Dickson
2004-03-19 18:55 ` Thomas Schlichter
2004-03-19 19:22   ` Prakash K. Cheemplavam
2004-03-19 23:20     ` Len Brown
2004-03-20  9:29       ` Prakash K. Cheemplavam
2004-03-20 10:19         ` Ross Dickson
2004-03-20 10:25           ` Prakash K. Cheemplavam
2004-03-20 10:50             ` Ross Dickson
2004-03-29 19:59             ` Prakash K. Cheemplavam
2004-03-30  0:57               ` Ross Dickson
2004-03-30  9:30                 ` Prakash K. Cheemplavam
2004-03-20 13:07       ` Daniel Egger
  -- strict thread matches above, loose matches on Subject: below --
2004-03-17 21:26 Thomas Schlichter
     [not found] <200403032119.58817.thomas.schlichter@web.de>
2004-03-17 15:29 ` Maciej W. Rozycki
2004-03-04 12:47 Thomas Schlichter

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox