* BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4})
@ 2007-03-19 17:10 Stefan Prechtel
2007-03-19 17:36 ` Thomas Gleixner
0 siblings, 1 reply; 31+ messages in thread
From: Stefan Prechtel @ 2007-03-19 17:10 UTC (permalink / raw)
To: linux-kernel; +Cc: tglx, mingo
Hi!
If the ac-cable is plugged in, I can start my Notebook (HP nx6325)
without any problems.
On battery the kernel hanging around and it takes "hours" to boot the
kernel and the system is *very* slow. For example an init-skript takes
very long until it's started.
I did a git-bisect and found out that this is the first bad commit:
commit e9e2cdb412412326c4827fc78ba27f410d837e6e
Author: Thomas Gleixner <tglx@linutronix.de>
Date: Fri Feb 16 01:28:04 2007 -0800
[PATCH] clockevents: i386 drivers
Add clockevent drivers for i386: lapic (local) and PIT/HPET
(global). Update
the timer IRQ to call into the PIT/HPET driver's event handler and the
lapic-timer IRQ to call into the lapic clockevent driver. The
assignement of
timer functionality is delegated to the core framework code and replaces the
compile and runtime evalution in do_timer_interrupt_hook()
Use the clockevents broadcast support and implement the lapic_broadcast
function for ACPI.
No changes to existing functionality.
So I tried to boot with nolapic on battery and with this option the
kernel (and system) starts as it should.
If you need more information, I will send it to you.
Regards,
Stefan Prechtel
^ permalink raw reply [flat|nested] 31+ messages in thread* Re: BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) 2007-03-19 17:10 BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) Stefan Prechtel @ 2007-03-19 17:36 ` Thomas Gleixner 2007-03-19 17:48 ` Thomas Gleixner 0 siblings, 1 reply; 31+ messages in thread From: Thomas Gleixner @ 2007-03-19 17:36 UTC (permalink / raw) To: Stefan Prechtel; +Cc: linux-kernel, mingo On Mon, 2007-03-19 at 18:10 +0100, Stefan Prechtel wrote: > So I tried to boot with nolapic on battery and with this option the > kernel (and system) starts as it should. > If you need more information, I will send it to you. Can you please provide your .config and a bootlog from a boot with "nolapic" and without. Also please add apic=verbose to the commandline. Can you please use Linus' latest git snaphost http://www.kernel.org/pub/linux/kernel/v2.6/snapshots/patch-2.6.21-rc4-git4.bz2 or pull from Linus' git repository. You can please open a new bug (Category: Timers, Component: Other) on http://bugzilla.kernel.org and upload the files there, so we avoid distributing them via LKML. Thanks, tglx ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) 2007-03-19 17:36 ` Thomas Gleixner @ 2007-03-19 17:48 ` Thomas Gleixner 2007-03-19 18:53 ` Stefan Prechtel 0 siblings, 1 reply; 31+ messages in thread From: Thomas Gleixner @ 2007-03-19 17:48 UTC (permalink / raw) To: Stefan Prechtel; +Cc: linux-kernel, mingo On Mon, 2007-03-19 at 18:36 +0100, Thomas Gleixner wrote: > On Mon, 2007-03-19 at 18:10 +0100, Stefan Prechtel wrote: > > So I tried to boot with nolapic on battery and with this option the > > kernel (and system) starts as it should. > > If you need more information, I will send it to you. > > Can you please provide your .config and a bootlog from a boot with > "nolapic" and without. Also please add apic=verbose to the commandline. > > Can you please use Linus' latest git snaphost > http://www.kernel.org/pub/linux/kernel/v2.6/snapshots/patch-2.6.21-rc4-git4.bz2 > > or pull from Linus' git repository. > > You can please open a new bug (Category: Timers, Component: Other) on > http://bugzilla.kernel.org and upload the files there, so we avoid > distributing them via LKML. Oh, a bootlog with ac plugged in would be great too. Also can you please enable CONFIG_SYSRQ and hit SysRq-Q once, when the slowness kicks in. Thanks, tglx ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) 2007-03-19 17:48 ` Thomas Gleixner @ 2007-03-19 18:53 ` Stefan Prechtel 2007-03-19 19:17 ` Stefan Prechtel 2007-03-19 19:27 ` Thomas Gleixner 0 siblings, 2 replies; 31+ messages in thread From: Stefan Prechtel @ 2007-03-19 18:53 UTC (permalink / raw) To: tglx; +Cc: linux-kernel, mingo You can find the files here: http://bugzilla.kernel.org/show_bug.cgi?id=8235 Regards, Stefan Prechtel 2007/3/19, Thomas Gleixner <tglx@linutronix.de>: > On Mon, 2007-03-19 at 18:36 +0100, Thomas Gleixner wrote: > Oh, a bootlog with ac plugged in would be great too. > > Also can you please enable CONFIG_SYSRQ and hit SysRq-Q once, when the > slowness kicks in. > > Thanks, > > tglx ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) 2007-03-19 18:53 ` Stefan Prechtel @ 2007-03-19 19:17 ` Stefan Prechtel 2007-03-19 19:27 ` Thomas Gleixner 1 sibling, 0 replies; 31+ messages in thread From: Stefan Prechtel @ 2007-03-19 19:17 UTC (permalink / raw) To: tglx; +Cc: linux-kernel, mingo, johnstul > (Bugzilla) > Does booting w/ clocksource=acpi_pm avoid the problem? No, it doesn't. I hope it's ok that I added your email to CC. 2007/3/19, Stefan Prechtel <stefan.prechtel@googlemail.com>: > Hi! > > If the ac-cable is plugged in, I can start my Notebook (HP nx6325) > without any problems. > On battery the kernel hanging around and it takes "hours" to boot the > kernel and the system is *very* slow. For example an init-skript takes > very long until it's started. > > I did a git-bisect and found out that this is the first bad commit: > commit e9e2cdb412412326c4827fc78ba27f410d837e6e > Author: Thomas Gleixner <tglx@linutronix.de> > Date: Fri Feb 16 01:28:04 2007 -0800 > > [PATCH] clockevents: i386 drivers > > Add clockevent drivers for i386: lapic (local) and PIT/HPET > (global). Update > the timer IRQ to call into the PIT/HPET driver's event handler and the > lapic-timer IRQ to call into the lapic clockevent driver. The > assignement of > timer functionality is delegated to the core framework code and replaces the > compile and runtime evalution in do_timer_interrupt_hook() > > Use the clockevents broadcast support and implement the lapic_broadcast > function for ACPI. > > No changes to existing functionality. > > So I tried to boot with nolapic on battery and with this option the > kernel (and system) starts as it should. > If you need more information, I will send it to you. > > Regards, > Stefan Prechtel > ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) 2007-03-19 18:53 ` Stefan Prechtel 2007-03-19 19:17 ` Stefan Prechtel @ 2007-03-19 19:27 ` Thomas Gleixner 2007-03-19 19:49 ` Stefan Prechtel 1 sibling, 1 reply; 31+ messages in thread From: Thomas Gleixner @ 2007-03-19 19:27 UTC (permalink / raw) To: Stefan Prechtel; +Cc: linux-kernel, mingo, Len Brown, Andi Kleen, john stultz Stefan, On Mon, 2007-03-19 at 19:53 +0100, Stefan Prechtel wrote: > You can find the files here: > http://bugzilla.kernel.org/show_bug.cgi?id=8235 thanks for providing the data. Your ACPI tables don't provide information about the power states (C-States), but your BIOS seems to switch the CPUs into deeper power states, when it runs on battery. In those deeper power states the local APIC timers and the TSC are stopped. So the machine waits for ever on the next timer interrupt. We have a broadcast mechanism for this, which gets activated from ACPI, but the broadcast mechanism is not activated: [ 3.798000] Clock Event Device: pit .... [ 3.798000] tick_broadcast_mask: 00000000 Can you please boot with 2.6.20 or earlier and check the output of /proc/interrupts ? IRQ#0 and the LOC (local APIC timer) Interrupts should increment in the same frequency. tglx ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) 2007-03-19 19:27 ` Thomas Gleixner @ 2007-03-19 19:49 ` Stefan Prechtel 2007-03-19 20:04 ` Thomas Gleixner 0 siblings, 1 reply; 31+ messages in thread From: Stefan Prechtel @ 2007-03-19 19:49 UTC (permalink / raw) To: tglx; +Cc: linux-kernel, mingo, Len Brown, Andi Kleen, john stultz 2007/3/19, Thomas Gleixner <tglx@linutronix.de>: > We have a broadcast mechanism for this, which gets activated from ACPI, > but the broadcast mechanism is not activated: > > [ 3.798000] Clock Event Device: pit > .... > [ 3.798000] tick_broadcast_mask: 00000000 > > Can you please boot with 2.6.20 or earlier and check the output > of /proc/interrupts ? > > IRQ#0 and the LOC (local APIC timer) Interrupts should increment in the > same frequency. > > tglx Here is the output of /proc/interrupts on 2.6.20: CPU0 CPU1 0: 7089 0 local-APIC-edge-fasteio timer .... and this on 2.6.21-rc*: CPU0 CPU1 0: 255 0 local-APIC-edge-fasteoi timer .... on 2.6.21-rc* the number "255" doesn't change. But if it is ACPI relevant, shouldn't it boot with acpi=off? I've tried with acpi=off and noapic but only with nolapic it started. And the content of /proc/acpi/processor/C000/power shows only one c-state; shouldn't it show more C-states? (please correct me if I'm wrong) # cat /proc/acpi/processor/C000/power active state: C1 max_cstate: C8 bus master activity: 00000000 maximum allowed latency: 2000 usec states: *C1: type[C1] promotion[--] demotion[--] latency[000] usage[00000000] duration[00000000000000000000] Regards, Stefan Prechtel ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) 2007-03-19 19:49 ` Stefan Prechtel @ 2007-03-19 20:04 ` Thomas Gleixner 2007-03-19 20:35 ` Stefan Prechtel 0 siblings, 1 reply; 31+ messages in thread From: Thomas Gleixner @ 2007-03-19 20:04 UTC (permalink / raw) To: Stefan Prechtel; +Cc: linux-kernel, mingo, Len Brown, Andi Kleen, john stultz On Mon, 2007-03-19 at 20:49 +0100, Stefan Prechtel wrote: > > Can you please boot with 2.6.20 or earlier and check the output > > of /proc/interrupts ? > > > > IRQ#0 and the LOC (local APIC timer) Interrupts should increment in the > > same frequency. > > > > tglx > > Here is the output of /proc/interrupts on 2.6.20: > CPU0 CPU1 > 0: 7089 0 local-APIC-edge-fasteio timer > .... Can you provide the numbers for LOC too ? 0: 29801420 29793520 IO-APIC-edge timer ... LOC: 119180305 119180039 And please do a sleep 10; between two reads, so I can see the deltas. > and this on 2.6.21-rc*: > CPU0 CPU1 > 0: 255 0 local-APIC-edge-fasteoi timer > .... > > on 2.6.21-rc* the number "255" doesn't change. Yes. I know. We rely on the local APIC, if the ACPI code does us not tell to use the PIT broadcast, sigh. > But if it is ACPI relevant, shouldn't it boot with acpi=off? > I've tried with acpi=off and noapic but only with nolapic it started. > > And the content of /proc/acpi/processor/C000/power shows only one > c-state; shouldn't it show more C-states? (please correct me if I'm > wrong) > > # cat /proc/acpi/processor/C000/power > active state: C1 > max_cstate: C8 > bus master activity: 00000000 > maximum allowed latency: 2000 usec > states: > *C1: type[C1] promotion[--] demotion[--] > latency[000] usage[00000000] duration[00000000000000000000] Yup. It should. Thanks, tglx ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) 2007-03-19 20:04 ` Thomas Gleixner @ 2007-03-19 20:35 ` Stefan Prechtel 2007-03-19 20:56 ` Thomas Gleixner 0 siblings, 1 reply; 31+ messages in thread From: Stefan Prechtel @ 2007-03-19 20:35 UTC (permalink / raw) To: tglx; +Cc: linux-kernel, mingo, Len Brown, Andi Kleen, john stultz 2007/3/19, Thomas Gleixner <tglx@linutronix.de>: > > Here is the output of /proc/interrupts on 2.6.20: > > CPU0 CPU1 > > 0: 7089 0 local-APIC-edge-fasteio timer > > .... > > Can you provide the numbers for LOC too ? > 0: 29801420 29793520 IO-APIC-edge timer > ... > LOC: 119180305 119180039 > > And please do a sleep 10; between two reads, so I can see the deltas. Ah sorry. I forgot it.. CPU0 CPU1 0: 28289 0 local-APIC-edge-fasteio timer ... LOC: 28237 28236 after a read: (I hope that is this what you want :-) CPU0 CPU1 0: 30344 0 local-APIC-edge-fasteio timer ... LOC: 30292 30291 - Stefan Prechtel ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) 2007-03-19 20:35 ` Stefan Prechtel @ 2007-03-19 20:56 ` Thomas Gleixner 2007-03-19 21:51 ` Stefan Prechtel 0 siblings, 1 reply; 31+ messages in thread From: Thomas Gleixner @ 2007-03-19 20:56 UTC (permalink / raw) To: Stefan Prechtel; +Cc: linux-kernel, mingo, Len Brown, Andi Kleen, john stultz On Mon, 2007-03-19 at 21:35 +0100, Stefan Prechtel wrote: > CPU0 CPU1 > 0: 28289 0 local-APIC-edge-fasteio timer > ... > LOC: 28237 28236 > > after a read: (I hope that is this what you want :-) > CPU0 CPU1 > 0: 30344 0 local-APIC-edge-fasteio timer > ... > LOC: 30292 30291 Is this with AC plugged in ? If yes, please provide the same numbers for battery mode. What's the output of cat /proc/acpi/processor/C000/power for 2.6.20 and 2.6.21-rc4-latest-git with and w/o AC ? Can you also please upload a bootlog with and without AC of 2.6.20 to bugzilla ? Thanks, tglx ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) 2007-03-19 20:56 ` Thomas Gleixner @ 2007-03-19 21:51 ` Stefan Prechtel 2007-03-20 1:15 ` Thomas Gleixner 0 siblings, 1 reply; 31+ messages in thread From: Stefan Prechtel @ 2007-03-19 21:51 UTC (permalink / raw) To: tglx; +Cc: linux-kernel, mingo, Len Brown, Andi Kleen, john stultz 2007/3/19, Thomas Gleixner <tglx@linutronix.de>: > On Mon, 2007-03-19 at 21:35 +0100, Stefan Prechtel wrote: > > CPU0 CPU1 > > 0: 28289 0 local-APIC-edge-fasteio timer > > ... > > LOC: 28237 28236 > > > > after a read: (I hope that is this what you want :-) > > CPU0 CPU1 > > 0: 30344 0 local-APIC-edge-fasteio timer > > ... > > LOC: 30292 30291 > > Is this with AC plugged in ? If yes, please provide the same numbers for > battery mode. Yes. And here is the output for battery mode (2.6.20): CPU0 CPU1 0: 292153 0 local-APIC-edge-fasteio timer LOC: 292114 292113 CPU0 CPU1 0: 293263 0 local-APIC-edge-fasteio timer LOC: 293224 293223 > What's the output of > cat /proc/acpi/processor/C000/power > > for 2.6.20 and 2.6.21-rc4-latest-git with and w/o AC ? 2.6.20 / 2.6.21: (both the same) battery / ac (both the same) # cat /proc/acpi/processor/C000/power active state: C1 max_cstate: C8 bus master activity: 00000000 maximum allowed latency: 2000 usec states: *C1: type[C1] promotion[--] demotion[--] latency[000] usage[ 00000000] duration[00000000000000000000] # cat /proc/acpi/processor/C001/power active state: C1 max_cstate: C8 bus master activity: 00000000 maximum allowed latency: 2000 usec states: *C1: type[C1] promotion[--] demotion[--] latency[000] usage[ 00000000] duration[00000000000000000000] > Can you also please upload a bootlog with and without AC of 2.6.20 to > bugzilla ? Yes, one moment please. I will upload files.. > Thanks, > > tglx Thanks too ;) - Stefan Prechtel ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) 2007-03-19 21:51 ` Stefan Prechtel @ 2007-03-20 1:15 ` Thomas Gleixner 2007-03-20 8:23 ` Stefan Prechtel 0 siblings, 1 reply; 31+ messages in thread From: Thomas Gleixner @ 2007-03-20 1:15 UTC (permalink / raw) To: Stefan Prechtel; +Cc: linux-kernel, mingo, Len Brown, Andi Kleen, john stultz On Mon, 2007-03-19 at 22:51 +0100, Stefan Prechtel wrote: > 2007/3/19, Thomas Gleixner <tglx@linutronix.de>: > > On Mon, 2007-03-19 at 21:35 +0100, Stefan Prechtel wrote: > > > CPU0 CPU1 > > > 0: 28289 0 local-APIC-edge-fasteio timer > > > ... > > > LOC: 28237 28236 > > > > > > after a read: (I hope that is this what you want :-) > > > CPU0 CPU1 > > > 0: 30344 0 local-APIC-edge-fasteio timer > > > ... > > > LOC: 30292 30291 > > > > Is this with AC plugged in ? If yes, please provide the same numbers for > > battery mode. > > Yes. And here is the output for battery mode (2.6.20): > CPU0 CPU1 > 0: 292153 0 local-APIC-edge-fasteio timer > LOC: 292114 292113 > > CPU0 CPU1 > 0: 293263 0 local-APIC-edge-fasteio timer > LOC: 293224 293223 Hmm. Can you please apply the following patch on top of 2.6.20 and check, if the WARN_ON_ONCE triggers when you boot w/o AC plugged ? Thanks, tglx Index: linux-2.6.20/arch/i386/kernel/apic.c =================================================================== --- linux-2.6.20.orig/arch/i386/kernel/apic.c +++ linux-2.6.20/arch/i386/kernel/apic.c @@ -1174,6 +1174,8 @@ void switch_APIC_timer_to_ipi(void *cpum cpumask_t mask = *(cpumask_t *)cpumask; int cpu = smp_processor_id(); + WARN_ON_ONCE(1); + if (cpu_isset(cpu, mask) && !cpu_isset(cpu, timer_bcast_ipi)) { disable_APIC_timer(); ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) 2007-03-20 1:15 ` Thomas Gleixner @ 2007-03-20 8:23 ` Stefan Prechtel 2007-03-20 16:47 ` Grzegorz Chwesewicz 0 siblings, 1 reply; 31+ messages in thread From: Stefan Prechtel @ 2007-03-20 8:23 UTC (permalink / raw) To: tglx; +Cc: linux-kernel, mingo, Len Brown, Andi Kleen, john stultz 2007/3/20, Thomas Gleixner <tglx@linutronix.de>: > On Mon, 2007-03-19 at 22:51 +0100, Stefan Prechtel wrote: > > 2007/3/19, Thomas Gleixner <tglx@linutronix.de>: > > > On Mon, 2007-03-19 at 21:35 +0100, Stefan Prechtel wrote: > > > > CPU0 CPU1 > > > > 0: 28289 0 local-APIC-edge-fasteio timer > > > > ... > > > > LOC: 28237 28236 > > > > > > > > after a read: (I hope that is this what you want :-) > > > > CPU0 CPU1 > > > > 0: 30344 0 local-APIC-edge-fasteio timer > > > > ... > > > > LOC: 30292 30291 > > > > > > Is this with AC plugged in ? If yes, please provide the same numbers for > > > battery mode. > > > > Yes. And here is the output for battery mode (2.6.20): > > CPU0 CPU1 > > 0: 292153 0 local-APIC-edge-fasteio timer > > LOC: 292114 292113 > > > > CPU0 CPU1 > > 0: 293263 0 local-APIC-edge-fasteio timer > > LOC: 293224 293223 > > Hmm. Can you please apply the following patch on top of 2.6.20 and > check, if the WARN_ON_ONCE triggers when you boot w/o AC plugged ? > > Thanks, > > tglx Good morning! The WARN_ON / WARN_ON_ONCE didn't trigger on boot. - Stefan Prechtel ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) 2007-03-20 8:23 ` Stefan Prechtel @ 2007-03-20 16:47 ` Grzegorz Chwesewicz 2007-03-21 9:24 ` Thomas Gleixner 0 siblings, 1 reply; 31+ messages in thread From: Grzegorz Chwesewicz @ 2007-03-20 16:47 UTC (permalink / raw) To: Stefan Prechtel, tglx Cc: linux-kernel, mingo, Len Brown, Andi Kleen, john stultz I have HP nx6325. I've tried to use WARN_ON_ONCE patch, but I don't see nothing special in dmesg. Just in case I'm posting my dmesg_2.6.20_WARN_ON_ONCE_on_battery log on http://bugzilla.kernel.org/show_bug.cgi?id=8235 . Below I post output of my /proc interrupts (10 sec. delay between reads). ######################### 2.6.20_ac: CPU0 CPU1 0: 73190 0 local-APIC-edge-fasteio timer LOC: 72967 72966 CPU0 CPU1 0: 83196 0 local-APIC-edge-fasteio timer LOC: 82974 82973 ######################### 2.6.20_battery: CPU0 CPU1 0: 468590 0 local-APIC-edge-fasteio timer LOC: 468410 468409 CPU0 CPU1 0: 478596 0 local-APIC-edge-fasteio timer LOC: 478417 478416 ######################### 2.6-git_ac: CPU0 CPU1 0: 262 0 local-APIC-edge-fasteoi timer LOC: 66041 66041 CPU0 CPU1 0: 262 0 local-APIC-edge-fasteoi timer LOC: 76067 76067 ######################### 2.6-git_battery: CPU0 CPU1 0: 261 0 local-APIC-edge-fasteoi timer LOC: 29007 29015 CPU0 CPU1 0: 261 0 local-APIC-edge-fasteoi timer LOC: 29189 29200 ######################### Other interesting thing on 2.6-git is that when I press a key on keyboard it doesn't repeat (on battery), but it repeats on 2.6-git on ac. -- Greetings - Grzegorz Chwesewicz ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) 2007-03-20 16:47 ` Grzegorz Chwesewicz @ 2007-03-21 9:24 ` Thomas Gleixner 2007-03-21 9:46 ` Andi Kleen 0 siblings, 1 reply; 31+ messages in thread From: Thomas Gleixner @ 2007-03-21 9:24 UTC (permalink / raw) To: Grzegorz Chwesewicz Cc: Stefan Prechtel, linux-kernel, mingo, Len Brown, Andi Kleen, john stultz On Tue, 2007-03-20 at 17:47 +0100, Grzegorz Chwesewicz wrote: > I have HP nx6325. I've tried to use WARN_ON_ONCE patch, but I don't see > nothing special in dmesg. Just in case I'm posting my > dmesg_2.6.20_WARN_ON_ONCE_on_battery log on > http://bugzilla.kernel.org/show_bug.cgi?id=8235 . > > Below I post output of my /proc interrupts (10 sec. delay between reads). > > Other interesting thing on 2.6-git is that when I press a key on keyboard it > doesn't repeat (on battery), but it repeats on 2.6-git on ac. Sigh. The periodic PIT interrupt pampers over the problem in <2.6.21-rc. It prevents the BIOS to switch the CPU in lower power states. I'm working on a detect LAPIC / BIOS madness check. tglx ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) 2007-03-21 9:24 ` Thomas Gleixner @ 2007-03-21 9:46 ` Andi Kleen 2007-03-21 10:10 ` Thomas Gleixner 0 siblings, 1 reply; 31+ messages in thread From: Andi Kleen @ 2007-03-21 9:46 UTC (permalink / raw) To: tglx Cc: Grzegorz Chwesewicz, Stefan Prechtel, linux-kernel, mingo, Len Brown, john stultz On Wednesday 21 March 2007 10:24, Thomas Gleixner wrote: > On Tue, 2007-03-20 at 17:47 +0100, Grzegorz Chwesewicz wrote: > > I have HP nx6325. I've tried to use WARN_ON_ONCE patch, but I don't see > > nothing special in dmesg. Just in case I'm posting my > > dmesg_2.6.20_WARN_ON_ONCE_on_battery log on > > http://bugzilla.kernel.org/show_bug.cgi?id=8235 . > > > > Below I post output of my /proc interrupts (10 sec. delay between reads). > > > > Other interesting thing on 2.6-git is that when I press a key on keyboard > > it doesn't repeat (on battery), but it repeats on 2.6-git on ac. > > Sigh. The periodic PIT interrupt pampers over the problem in <2.6.21-rc. > It prevents the BIOS to switch the CPU in lower power states. I think I ran into the same problem with my initial noidletick patch. I don't have that test machine anymore though. Normally the "use PIT when AMD && Cstate >= 2" check should have caught that though. Why did it here? -Andi ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) 2007-03-21 9:46 ` Andi Kleen @ 2007-03-21 10:10 ` Thomas Gleixner 2007-03-21 10:37 ` Andi Kleen 0 siblings, 1 reply; 31+ messages in thread From: Thomas Gleixner @ 2007-03-21 10:10 UTC (permalink / raw) To: Andi Kleen Cc: Grzegorz Chwesewicz, Stefan Prechtel, linux-kernel, mingo, Len Brown, john stultz On Wed, 2007-03-21 at 10:46 +0100, Andi Kleen wrote: > On Wednesday 21 March 2007 10:24, Thomas Gleixner wrote: > > On Tue, 2007-03-20 at 17:47 +0100, Grzegorz Chwesewicz wrote: > > > I have HP nx6325. I've tried to use WARN_ON_ONCE patch, but I don't see > > > nothing special in dmesg. Just in case I'm posting my > > > dmesg_2.6.20_WARN_ON_ONCE_on_battery log on > > > http://bugzilla.kernel.org/show_bug.cgi?id=8235 . > > > > > > Below I post output of my /proc interrupts (10 sec. delay between reads). > > > > > > Other interesting thing on 2.6-git is that when I press a key on keyboard > > > it doesn't repeat (on battery), but it repeats on 2.6-git on ac. > > > > Sigh. The periodic PIT interrupt pampers over the problem in <2.6.21-rc. > > It prevents the BIOS to switch the CPU in lower power states. > > I think I ran into the same problem with my initial noidletick patch. > I don't have that test machine anymore though. > > Normally the "use PIT when AMD && Cstate >= 2" check should > have caught that though. Why did it here? The BIOS/ACPI is broken and does only expose C1, which should not switch off LAPIC. The BIOS is switching into deeper C-States behind the kernels back somehow. tglx ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) 2007-03-21 10:10 ` Thomas Gleixner @ 2007-03-21 10:37 ` Andi Kleen 2007-03-21 11:14 ` Thomas Gleixner 0 siblings, 1 reply; 31+ messages in thread From: Andi Kleen @ 2007-03-21 10:37 UTC (permalink / raw) To: tglx Cc: Grzegorz Chwesewicz, Stefan Prechtel, linux-kernel, mingo, Len Brown, john stultz > The BIOS/ACPI is broken and does only expose C1, which should not switch > off LAPIC. The BIOS is switching into deeper C-States behind the kernels > back somehow. Hmm, perhaps we can check AMD && (cstate >= 2 || has a battery) ? Should be doable by looking up the battery object in ACPI -Andi ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) 2007-03-21 10:37 ` Andi Kleen @ 2007-03-21 11:14 ` Thomas Gleixner 2007-03-21 12:15 ` Thomas Gleixner 2007-03-21 12:42 ` Andi Kleen 0 siblings, 2 replies; 31+ messages in thread From: Thomas Gleixner @ 2007-03-21 11:14 UTC (permalink / raw) To: Andi Kleen Cc: Grzegorz Chwesewicz, Stefan Prechtel, linux-kernel, mingo, Len Brown, john stultz On Wed, 2007-03-21 at 11:37 +0100, Andi Kleen wrote: > > The BIOS/ACPI is broken and does only expose C1, which should not switch > > off LAPIC. The BIOS is switching into deeper C-States behind the kernels > > back somehow. > > Hmm, perhaps we can check AMD && (cstate >= 2 || has a battery) ? > Should be doable by looking up the battery object in ACPI Which makes us rely on another ACPI feature. What guarantees that the ACPI tables are correct for this one ? tglx ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) 2007-03-21 11:14 ` Thomas Gleixner @ 2007-03-21 12:15 ` Thomas Gleixner 2007-03-21 12:33 ` Thomas Gleixner 2007-03-21 12:42 ` Andi Kleen 1 sibling, 1 reply; 31+ messages in thread From: Thomas Gleixner @ 2007-03-21 12:15 UTC (permalink / raw) To: Andi Kleen Cc: Grzegorz Chwesewicz, Stefan Prechtel, linux-kernel, mingo, Len Brown, john stultz Stefan, Grzegorz On Wed, 2007-03-21 at 12:14 +0100, Thomas Gleixner wrote: > On Wed, 2007-03-21 at 11:37 +0100, Andi Kleen wrote: > > > The BIOS/ACPI is broken and does only expose C1, which should not switch > > > off LAPIC. The BIOS is switching into deeper C-States behind the kernels > > > back somehow. > > > > Hmm, perhaps we can check AMD && (cstate >= 2 || has a battery) ? > > Should be doable by looking up the battery object in ACPI > > Which makes us rely on another ACPI feature. What guarantees that the > ACPI tables are correct for this one ? Can you please apply the patch below and add "nolapic_timer" to the kernel command line ? Please provide also the output of # dmidecode on your laptops. Thanks, tglx diff --git a/arch/i386/kernel/apic.c b/arch/i386/kernel/apic.c index 5cff797..67f8d9f 100644 --- a/arch/i386/kernel/apic.c +++ b/arch/i386/kernel/apic.c @@ -61,6 +61,8 @@ static int enable_local_apic __initdata = 0; /* Local APIC timer verification ok */ static int local_apic_timer_verify_ok; +/* Disable local APIC timer from the kernel commandline */ +static int local_apic_timer_disabled; /* * Debug level, exported for io_apic.c @@ -340,6 +342,13 @@ void __init setup_boot_APIC_clock(void) long delta, deltapm; int pm_referenced = 0; + if (local_apic_timer_disabled) { + /* No broadcast on UP ! */ + if (num_possible_cpus() > 1) + setup_APIC_timer(); + return; + }} + apic_printk(APIC_VERBOSE, "Using local APIC timer interrupts.\n" "calibrating APIC timer ...\n"); @@ -1179,6 +1188,13 @@ static int __init parse_nolapic(char *arg) } early_param("nolapic", parse_nolapic); +static int __init parse_disable_lapic_timer(char *arg) +{ + local_apic_timer_disabled = 1; + return 0; +} +early_param("nolapic_timer", parse_disable_lapic_timer); + static int __init apic_set_verbosity(char *str) { if (strcmp("debug", str) == 0) ^ permalink raw reply related [flat|nested] 31+ messages in thread
* Re: BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) 2007-03-21 12:15 ` Thomas Gleixner @ 2007-03-21 12:33 ` Thomas Gleixner 0 siblings, 0 replies; 31+ messages in thread From: Thomas Gleixner @ 2007-03-21 12:33 UTC (permalink / raw) To: Andi Kleen Cc: Grzegorz Chwesewicz, Stefan Prechtel, linux-kernel, mingo, Len Brown, john stultz On Wed, 2007-03-21 at 13:15 +0100, Thomas Gleixner wrote: > + return; > + }} > + Ooops, sorry. Did not quilt refresh before sending it out. Correct version below. tglx diff --git a/arch/i386/kernel/apic.c b/arch/i386/kernel/apic.c index 5cff797..83cf98d 100644 --- a/arch/i386/kernel/apic.c +++ b/arch/i386/kernel/apic.c @@ -61,6 +61,8 @@ static int enable_local_apic __initdata = 0; /* Local APIC timer verification ok */ static int local_apic_timer_verify_ok; +/* Disable local APIC timer from the kernel commandline */ +static int local_apic_timer_disabled; /* * Debug level, exported for io_apic.c @@ -340,6 +342,13 @@ void __init setup_boot_APIC_clock(void) long delta, deltapm; int pm_referenced = 0; + if (local_apic_timer_disabled) { + /* No broadcast on UP ! */ + if (num_possible_cpus() > 1) + setup_APIC_timer(); + return; + } + apic_printk(APIC_VERBOSE, "Using local APIC timer interrupts.\n" "calibrating APIC timer ...\n"); @@ -1179,6 +1188,13 @@ static int __init parse_nolapic(char *arg) } early_param("nolapic", parse_nolapic); +static int __init parse_disable_lapic_timer(char *arg) +{ + local_apic_timer_disabled = 1; + return 0; +} +early_param("nolapic_timer", parse_disable_lapic_timer); + static int __init apic_set_verbosity(char *str) { if (strcmp("debug", str) == 0) ^ permalink raw reply related [flat|nested] 31+ messages in thread
* Re: BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) 2007-03-21 11:14 ` Thomas Gleixner 2007-03-21 12:15 ` Thomas Gleixner @ 2007-03-21 12:42 ` Andi Kleen 2007-03-21 13:04 ` Stefan Prechtel 1 sibling, 1 reply; 31+ messages in thread From: Andi Kleen @ 2007-03-21 12:42 UTC (permalink / raw) To: tglx Cc: Grzegorz Chwesewicz, Stefan Prechtel, linux-kernel, mingo, Len Brown, john stultz On Wednesday 21 March 2007 12:14, Thomas Gleixner wrote: > On Wed, 2007-03-21 at 11:37 +0100, Andi Kleen wrote: > > > The BIOS/ACPI is broken and does only expose C1, which should not > > > switch off LAPIC. The BIOS is switching into deeper C-States behind the > > > kernels back somehow. > > > > Hmm, perhaps we can check AMD && (cstate >= 2 || has a battery) ? > > Should be doable by looking up the battery object in ACPI > > Which makes us rely on another ACPI feature. What guarantees that the > ACPI tables are correct for this one ? Nothing, but wrong C2 and wrong battery state together seems unlikely. -Andi ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) 2007-03-21 12:42 ` Andi Kleen @ 2007-03-21 13:04 ` Stefan Prechtel 2007-03-21 13:15 ` Thomas Gleixner 2007-03-21 14:14 ` [PATCH] i386: disable local apic timer via command line or dmi quirk Thomas Gleixner 0 siblings, 2 replies; 31+ messages in thread From: Stefan Prechtel @ 2007-03-21 13:04 UTC (permalink / raw) To: Andi Kleen Cc: tglx, Grzegorz Chwesewicz, linux-kernel, mingo, Len Brown, john stultz 2007/3/21, Andi Kleen <ak@suse.de>: > On Wednesday 21 March 2007 12:14, Thomas Gleixner wrote: > > On Wed, 2007-03-21 at 11:37 +0100, Andi Kleen wrote: > > > > The BIOS/ACPI is broken and does only expose C1, which should not > > > > switch off LAPIC. The BIOS is switching into deeper C-States behind the > > > > kernels back somehow. > > > > > > Hmm, perhaps we can check AMD && (cstate >= 2 || has a battery) ? > > > Should be doable by looking up the battery object in ACPI > > > > Which makes us rely on another ACPI feature. What guarantees that the > > ACPI tables are correct for this one ? > > Nothing, but wrong C2 and wrong battery state together seems unlikely. > > -Andi > Hello I uploaded the output of dmesg (kernel 2.6.21-rc4-git5) (battery / ac) and dmidecode I can boot on battery with nolapic_timer and the second core is online, too. /proc/acpi/processor/C000/ shows the same as before but /proc/interrupts has changed: (battery) CPU0 CPU1 0: 47131 0 local-APIC-edge-fasteoi timer LOC: 0 46978 (ac) CPU0 CPU1 0: 59137 0 local-APIC-edge-fasteoi timer LOC: 0 58984 - Stefan Prechtel ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) 2007-03-21 13:04 ` Stefan Prechtel @ 2007-03-21 13:15 ` Thomas Gleixner 2007-03-21 14:14 ` [PATCH] i386: disable local apic timer via command line or dmi quirk Thomas Gleixner 1 sibling, 0 replies; 31+ messages in thread From: Thomas Gleixner @ 2007-03-21 13:15 UTC (permalink / raw) To: Stefan Prechtel Cc: Andi Kleen, Grzegorz Chwesewicz, linux-kernel, mingo, Len Brown, john stultz On Wed, 2007-03-21 at 14:04 +0100, Stefan Prechtel wrote: > I uploaded the output of dmesg (kernel 2.6.21-rc4-git5) (battery / ac) > and dmidecode > I can boot on battery with nolapic_timer and the second core is online, too. > /proc/acpi/processor/C000/ shows the same as before but > /proc/interrupts has changed: > > (battery) > CPU0 CPU1 > 0: 47131 0 local-APIC-edge-fasteoi timer > LOC: 0 46978 > > (ac) > CPU0 CPU1 > 0: 59137 0 local-APIC-edge-fasteoi timer > LOC: 0 58984 That's correct. We keep the PIT alive and trigger the lapic timer interrupt via an IPI. tglx ^ permalink raw reply [flat|nested] 31+ messages in thread
* [PATCH] i386: disable local apic timer via command line or dmi quirk 2007-03-21 13:04 ` Stefan Prechtel 2007-03-21 13:15 ` Thomas Gleixner @ 2007-03-21 14:14 ` Thomas Gleixner 2007-03-21 14:09 ` Ingo Molnar 2007-03-28 3:28 ` Len Brown 1 sibling, 2 replies; 31+ messages in thread From: Thomas Gleixner @ 2007-03-21 14:14 UTC (permalink / raw) To: Stefan Prechtel Cc: Andi Kleen, Grzegorz Chwesewicz, linux-kernel, mingo, Len Brown, john stultz, Andrew Morton, Adrian Bunk, Arjan van de Ven The local APIC timer stops to work in deeper C-States. This is handled by the ACPI code and a broadcast mechanism in the clockevents / tick managment code. Some systems do not expose the deeper C-States to the kernel, but switch into deeper C-States behind the kernels back. This delays the local apic timer interrupts for ever and makes the systems unusable. Add a command line option to disable the local apic timer and a dmi quirk for known broken systems. Signed-off-by: Thomas Gleixner <tglx@linutronix.de> diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 856c8b1..06377c7 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt @@ -1117,6 +1117,8 @@ and is between 256 and 4096 characters. It is defined in the file nolapic [IA-32,APIC] Do not enable or use the local APIC. + nolapic_timer [IA-32,APIC] Do not use the local APIC timer. + noltlbs [PPC] Do not use large page/tlb entries for kernel lowmem mapping on PPC40x. diff --git a/arch/i386/kernel/apic.c b/arch/i386/kernel/apic.c index 5cff797..3682511 100644 --- a/arch/i386/kernel/apic.c +++ b/arch/i386/kernel/apic.c @@ -28,6 +28,7 @@ #include <linux/clockchips.h> #include <linux/acpi_pmtmr.h> #include <linux/module.h> +#include <linux/dmi.h> #include <asm/atomic.h> #include <asm/smp.h> @@ -61,6 +62,8 @@ static int enable_local_apic __initdata = 0; /* Local APIC timer verification ok */ static int local_apic_timer_verify_ok; +/* Disable local APIC timer from the kernel commandline or via dmi quirk */ +static int local_apic_timer_disabled; /* * Debug level, exported for io_apic.c @@ -266,6 +269,32 @@ static void __devinit setup_APIC_timer(void) } /* + * Detect systems with known broken BIOS implementations + */ +static int __init lapic_check_broken_bios(struct dmi_system_id *d) +{ + printk(KERN_NOTICE "%s detected: disabling lapic timer.\n", + d->ident); + local_apic_timer_disabled = 1; + return 0; +} + +static struct dmi_system_id __initdata broken_bios_dmi_table[] = { + { + /* + * BIOS exports only C1 state, but uses deeper power + * modes behind the kernels back. + */ + .callback = lapic_check_broken_bios, + .ident = "HP nx6325", + .matches = { + DMI_MATCH(DMI_PRODUCT_NAME, "HP Compaq nx6325"), + }, + }, + {} +}; + +/* * In this functions we calibrate APIC bus clocks to the external timer. * * We want to do the calibration only once since we want to have local timer @@ -340,6 +369,22 @@ void __init setup_boot_APIC_clock(void) long delta, deltapm; int pm_referenced = 0; + /* Detect know broken systems */ + dmi_check_system(broken_bios_dmi_table); + + /* + * The local apic timer can be disabled via the kernel + * commandline or from the dmi quirk above. Register the lapic + * timer as a dummy clock event source on SMP systems, so the + * broadcast mechanism is used. On UP systems simply ignore it. + */ + if (local_apic_timer_disabled) { + /* No broadcast on UP ! */ + if (num_possible_cpus() > 1) + setup_APIC_timer(); + return; + } + apic_printk(APIC_VERBOSE, "Using local APIC timer interrupts.\n" "calibrating APIC timer ...\n"); @@ -1179,6 +1224,13 @@ static int __init parse_nolapic(char *arg) } early_param("nolapic", parse_nolapic); +static int __init parse_disable_lapic_timer(char *arg) +{ + local_apic_timer_disabled = 1; + return 0; +} +early_param("nolapic_timer", parse_disable_lapic_timer); + static int __init apic_set_verbosity(char *str) { if (strcmp("debug", str) == 0) ^ permalink raw reply related [flat|nested] 31+ messages in thread
* Re: [PATCH] i386: disable local apic timer via command line or dmi quirk 2007-03-21 14:14 ` [PATCH] i386: disable local apic timer via command line or dmi quirk Thomas Gleixner @ 2007-03-21 14:09 ` Ingo Molnar 2007-03-21 15:14 ` Grzegorz Chwesewicz 2007-03-28 3:28 ` Len Brown 1 sibling, 1 reply; 31+ messages in thread From: Ingo Molnar @ 2007-03-21 14:09 UTC (permalink / raw) To: Thomas Gleixner Cc: Stefan Prechtel, Andi Kleen, Grzegorz Chwesewicz, linux-kernel, Len Brown, john stultz, Andrew Morton, Adrian Bunk, Arjan van de Ven * Thomas Gleixner <tglx@linutronix.de> wrote: > The local APIC timer stops to work in deeper C-States. This is handled > by the ACPI code and a broadcast mechanism in the clockevents / tick > managment code. > > Some systems do not expose the deeper C-States to the kernel, but > switch into deeper C-States behind the kernels back. This delays the > local apic timer interrupts for ever and makes the systems unusable. > > Add a command line option to disable the local apic timer and a dmi > quirk for known broken systems. > > Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Acked-by: Ingo Molnar <mingo@elte.hu> nice work! Ingo ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH] i386: disable local apic timer via command line or dmi quirk 2007-03-21 14:09 ` Ingo Molnar @ 2007-03-21 15:14 ` Grzegorz Chwesewicz 2007-03-22 20:42 ` Stefan Prechtel 0 siblings, 1 reply; 31+ messages in thread From: Grzegorz Chwesewicz @ 2007-03-21 15:14 UTC (permalink / raw) To: Ingo Molnar, Thomas Gleixner Cc: Stefan Prechtel, Andi Kleen, linux-kernel, Len Brown, john stultz, Andrew Morton, Adrian Bunk, Arjan van de Ven On Wed, 21 Mar 2007 15:09:30 +0100, Ingo Molnar wrote > * Thomas Gleixner <tglx@linutronix.de> wrote: > > > The local APIC timer stops to work in deeper C-States. This is handled > > by the ACPI code and a broadcast mechanism in the clockevents / tick > > managment code. > > > > Some systems do not expose the deeper C-States to the kernel, but > > switch into deeper C-States behind the kernels back. This delays the > > local apic timer interrupts for ever and makes the systems unusable. > > > > Add a command line option to disable the local apic timer and a dmi > > quirk for known broken systems. Confirming that my machine on 2.6-git with this patch works just like on 2.6.20. Great work. -- Greetings - Grzegorz Chwesewicz ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH] i386: disable local apic timer via command line or dmi quirk 2007-03-21 15:14 ` Grzegorz Chwesewicz @ 2007-03-22 20:42 ` Stefan Prechtel 0 siblings, 0 replies; 31+ messages in thread From: Stefan Prechtel @ 2007-03-22 20:42 UTC (permalink / raw) To: Grzegorz Chwesewicz Cc: Ingo Molnar, Thomas Gleixner, Andi Kleen, linux-kernel, Len Brown, john stultz, Andrew Morton, Adrian Bunk, Arjan van de Ven 2007/3/21, Grzegorz Chwesewicz <grzegorz.chwesewicz@chilan.com>: > On Wed, 21 Mar 2007 15:09:30 +0100, Ingo Molnar wrote > > * Thomas Gleixner <tglx@linutronix.de> wrote: > > > > > The local APIC timer stops to work in deeper C-States. This is handled > > > by the ACPI code and a broadcast mechanism in the clockevents / tick > > > managment code. > > > > > > Some systems do not expose the deeper C-States to the kernel, but > > > switch into deeper C-States behind the kernels back. This delays the > > > local apic timer interrupts for ever and makes the systems unusable. > > > > > > Add a command line option to disable the local apic timer and a dmi > > > quirk for known broken systems. > > Confirming that my machine on 2.6-git with this patch works just like on > 2.6.20. Great work. > > -- > Greetings - Grzegorz Chwesewicz Works here too, thx ;) Kind regards, Stefan Prechtel ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH] i386: disable local apic timer via command line or dmi quirk 2007-03-21 14:14 ` [PATCH] i386: disable local apic timer via command line or dmi quirk Thomas Gleixner 2007-03-21 14:09 ` Ingo Molnar @ 2007-03-28 3:28 ` Len Brown 2007-03-28 3:38 ` Len Brown 2007-03-28 9:13 ` Thomas Gleixner 1 sibling, 2 replies; 31+ messages in thread From: Len Brown @ 2007-03-28 3:28 UTC (permalink / raw) To: tglx Cc: Stefan Prechtel, Andi Kleen, Grzegorz Chwesewicz, linux-kernel, mingo, john stultz, Andrew Morton, Adrian Bunk, Arjan van de Ven [-- Attachment #1: Type: text/plain, Size: 2624 bytes --] Thomas, Is this failure specific to NO_HZ, and that is why the "nolapic_timer" fix is i386 only? I'm running 2.6.21-rc5 an nx6325 here in 64-bit mode and I don't see the dramatic boot failure described earlier in this thread. However, I have observed that when running on battery, the LOC falls behind the irq0 timer to the tune of about 2 interrupt/minute. eg. when i booted my machine, LOC was behind irq0 by 50, and now about a 20 minutes later it is behind irq0 by 99. However, the LOC for each processor remain at a constant offset with respect to each other. I do not see these this drift when running on AC. Yes, the system exports just C1 in both cases. Other oddities is the IRQ name on irq0 is garbled: lenb@nx6325:~> uname -a; cat /proc/interrupts; sleep 100; cat /proc/interrupts Linux nx6325 2.6.21-rc5 #37 SMP Tue Mar 27 22:26:00 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux CPU0 CPU1 0: 723812 0 <NULL>-edge timer 1: 716 0 IO-APIC-edge i8042 8: 0 0 IO-APIC-edge rtc 12: 30719 0 IO-APIC-edge i8042 14: 24318 0 IO-APIC-edge ide0 16: 18316 0 IO-APIC-fasteoi libata 19: 21 0 IO-APIC-fasteoi ehci_hcd:usb1, ohci_hcd:usb2, ohci_hcd:usb3 20: 1 0 IO-APIC-fasteoi ohci1394 21: 6736 0 IO-APIC-fasteoi acpi 23: 30358 0 IO-APIC-fasteoi eth0 NMI: 0 0 LOC: 723675 723651 ERR: 0 CPU0 CPU1 0: 748812 0 <NULL>-edge timer 1: 716 0 IO-APIC-edge i8042 8: 0 0 IO-APIC-edge rtc 12: 30719 0 IO-APIC-edge i8042 14: 25164 0 IO-APIC-edge ide0 16: 18361 0 IO-APIC-fasteoi libata 19: 21 0 IO-APIC-fasteoi ehci_hcd:usb1, ohci_hcd:usb2, ohci_hcd:usb3 20: 1 0 IO-APIC-fasteoi ohci1394 21: 6960 0 IO-APIC-fasteoi acpi 23: 31385 0 IO-APIC-fasteoi eth0 NMI: 0 0 LOC: 748673 748649 ERR: 0 lenb@nx6325:~> bc -l bc 1.06 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. 748812-723812 25000 748673-723675 24998 723812-723675 137 748812-748673 139 lenb@nx6325:~> Further, in dmesg: ATI board detected. Disabling timer routing over 8254. ..MP-BIOS bug: 8254 timer not connected to IO-APIC -Len [-- Attachment #2: dmesg --] [-- Type: text/plain, Size: 19443 bytes --] Linux version 2.6.21-rc5 (lenb@d975xbx2) (gcc version 4.1.2 20061115 (prerelease) (SUSE Linux)) #37 SMP Tue Mar 27 22:26:00 EDT 2007 Command line: root=/dev/sda2 debug BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 000000000009fc00 (usable) BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved) BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 000000001bfd0000 (usable) BIOS-e820: 000000001bfd0000 - 000000001bfe5600 (reserved) BIOS-e820: 000000001bfe5600 - 000000001bff8000 (ACPI NVS) BIOS-e820: 000000001bff8000 - 0000000020000000 (reserved) BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved) BIOS-e820: 00000000fec00000 - 00000000fec02000 (reserved) BIOS-e820: 00000000ffbc0000 - 00000000ffcc0000 (reserved) BIOS-e820: 00000000fff00000 - 0000000100000000 (reserved) Entering add_active_range(0, 0, 159) 0 entries of 3200 used Entering add_active_range(0, 256, 114640) 1 entries of 3200 used end_pfn_map = 1048576 DMI 2.4 present. ACPI: RSDP 000F7D30, 0024 (r2 HP ) ACPI: XSDT 1BFE57B4, 0054 (r1 HP 0944 6070620 HP 1) ACPI: FACP 1BFE5684, 00F4 (r4 HP 0944 3 HP 1) ACPI: DSDT 1BFE58DC, EE7A (r1 HP SB400 10000 MSFT 100000E) ACPI: FACS 1BFF7E80, 0040 ACPI: APIC 1BFE5808, 0062 (r1 HP 0944 1 HP 1) ACPI: MCFG 1BFE586C, 003C (r1 HP 0944 1 HP 1) ACPI: TCPA 1BFE58A8, 0032 (r2 HP 0944 1 HP 1) ACPI: SSDT 1BFF4756, 0059 (r1 HP HPQNLP 1 MSFT 100000E) ACPI: SSDT 1BFF47AF, 0182 (r1 HP PSSTBLID 1 HP 1) Scanning NUMA topology in Northbridge 24 Number of nodes 1 Node 0 MemBase 0000000000000000 Limit 000000001bfd0000 Entering add_active_range(0, 0, 159) 0 entries of 3200 used Entering add_active_range(0, 256, 114640) 1 entries of 3200 used NUMA: Using 63 for the hash shift. Using node hash shift of 63 Bootmem setup node 0 0000000000000000-000000001bfd0000 No mptable found. Zone PFN ranges: DMA 0 -> 4096 DMA32 4096 -> 1048576 Normal 1048576 -> 1048576 early_node_map[2] active PFN ranges 0: 0 -> 159 0: 256 -> 114640 On node 0 totalpages: 114543 DMA zone: 56 pages used for memmap DMA zone: 1593 pages reserved DMA zone: 2350 pages, LIFO batch:0 DMA32 zone: 1511 pages used for memmap DMA32 zone: 109033 pages, LIFO batch:31 Normal zone: 0 pages used for memmap ATI board detected. Disabling timer routing over 8254. ACPI: PM-Timer IO Port: 0x8008 ACPI: Local APIC address 0xfee00000 ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled) Processor #0 (Bootup-CPU) ACPI: LAPIC (acpi_id[0x02] lapic_id[0x01] enabled) Processor #1 ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1]) ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0]) IOAPIC[0]: apic_id 2, address 0xfec00000, GSI 0-23 ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 21 low level) ACPI: IRQ0 used by override. ACPI: IRQ2 used by override. Setting APIC routing to physical flat Using ACPI (MADT) for SMP configuration information Nosave address range: 000000000009f000 - 00000000000a0000 Nosave address range: 00000000000a0000 - 00000000000e0000 Nosave address range: 00000000000e0000 - 0000000000100000 Allocating PCI resources starting at 30000000 (gap: 20000000:c0000000) SMP: Allowing 2 CPUs, 0 hotplug CPUs PERCPU: Allocating 36992 bytes of per cpu data Built 1 zonelists. Total pages: 111383 Kernel command line: root=/dev/sda2 debug Initializing CPU#0 PID hash table entries: 2048 (order: 11, 16384 bytes) Extended CMOS year: 2000 time.c: Detected 1596.295 MHz processor. Console: colour VGA+ 80x25 Dentry cache hash table entries: 65536 (order: 7, 524288 bytes) Inode-cache hash table entries: 32768 (order: 6, 262144 bytes) Checking aperture... CPU 0: aperture @ 14b4000000 size 32 MB Aperture too small (32 MB) No AGP bridge found Memory: 444360k/458560k available (3299k kernel code, 13812k reserved, 1848k data, 320k init) Calibrating delay using timer specific routine.. 3197.82 BogoMIPS (lpj=6395653) Mount-cache hash table entries: 256 CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line) CPU: L2 Cache: 256K (64 bytes/line) CPU 0/0 -> Node 0 CPU: Physical Processor ID: 0 CPU: Processor Core ID: 0 SMP alternatives: switching to UP code ACPI: Core revision 20070126 Parsing all Control Methods: Table [DSDT](id 0001) - 1153 Objects with 113 Devices 337 Methods 33 Regions Parsing all Control Methods: Table [SSDT](id 0002) - 2 Objects with 0 Devices 2 Methods 0 Regions Parsing all Control Methods: Table [SSDT](id 0003) - 8 Objects with 0 Devices 0 Methods 0 Regions tbxface-0587 [02] tb_load_namespace : ACPI Tables successfully acquired evxfevnt-0091 [02] enable : Transition to ACPI mode successful ..MP-BIOS bug: 8254 timer not connected to IO-APIC Using local APIC timer interrupts. result 12471066 Detected 12.471 MHz APIC timer. SMP alternatives: switching to SMP code Booting processor 1/2 APIC 0x1 Initializing CPU#1 Calibrating delay using timer specific routine.. 3192.24 BogoMIPS (lpj=6384480) CPU: L1 I Cache: 64K (64 bytes/line), D cache 64K (64 bytes/line) CPU: L2 Cache: 256K (64 bytes/line) CPU 1/1 -> Node 0 CPU: Physical Processor ID: 0 CPU: Processor Core ID: 1 AMD Turion(tm) 64 X2 Mobile Technology TL-50 stepping 02 Brought up 2 CPUs migration_cost=141 NET: Registered protocol family 16 ACPI: bus type pci registered PCI: Using MMCONFIG at e0000000 - efffffff PCI: No mmconfig possible on device 00:18 evgpeblk-0952 [04] ev_create_gpe_block : GPE 00 to 1F [_GPE] 4 regs on int 0x15 evgpeblk-1049 [03] ev_initialize_gpe_bloc: Found 3 Wake, Enabled 11 Runtime GPEs in this block Completing Region/Field/Buffer/Package initialization:.................................................................................................................................................................. Initialized 30/33 Regions 0/0 Fields 64/64 Buffers 68/78 Packages (1172 nodes) Initializing Device/Processor/Thermal objects by executing _INI methods:....... Executed 7 _INI methods requiring 2 _STA executions (examined 120 objects) ACPI: Interpreter enabled ACPI: (supports S0 S3 S4 S5) ACPI: Using IOAPIC for interrupt routing ACPI: PCI Root Bridge [C074] (0000:00) PCI: Probing PCI hardware (bus 00) 0000:00:14.1: trying to change BAR0 from 0000 to 01F0 0000:00:14.1: trying to change BAR1 from 0000 to 03F4 0000:00:14.1: trying to change BAR2 from 0000 to 0170 0000:00:14.1: trying to change BAR3 from 0000 to 0374 Boot video device is 0000:01:05.0 PCI: Transparent bridge - 0000:00:14.4 PCI: Bus #03 (-#06) is hidden behind transparent bridge #02 (-#03) (try 'pci=assign-busses') Please report the result to linux-kernel to fix this permanently ACPI: PCI Interrupt Routing Table [\_SB_.C074._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.C074.C075._PRT] ACPI: PCI Interrupt Routing Table [\_SB_.C074.C0DF._PRT] ACPI: PCI Interrupt Link [C125] (IRQs 10 11) *0, disabled. ACPI: PCI Interrupt Link [C126] (IRQs 10 11) *0, disabled. ACPI: PCI Interrupt Link [C127] (IRQs 10 11) *0, disabled. ACPI: PCI Interrupt Link [C128] (IRQs 10 11) *0, disabled. ACPI: PCI Interrupt Link [C129] (IRQs 10 11) *0, disabled. ACPI: PCI Interrupt Link [C12A] (IRQs 9) *0, disabled. ACPI: PCI Interrupt Link [C12B] (IRQs 10 11) *0, disabled. ACPI: PCI Interrupt Link [C12C] (IRQs *10 11) ACPI: Power Resource [C223] (off) ACPI: Power Resource [C1FE] (off) ACPI: Power Resource [C217] (on) ACPI: Power Resource [C34B] (off) ACPI: Power Resource [C34C] (off) ACPI: Power Resource [C34D] (off) ACPI: Power Resource [C34E] (off) Linux Plug and Play Support v0.97 (c) Adam Belay pnp: PnP ACPI init pnp: PnP ACPI: found 13 devices SCSI subsystem initialized libata version 2.20 loaded. usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb PCI: Using ACPI for IRQ routing PCI: If a device doesn't work, try "pci=routeirq". If it helps, post a report PCI: Cannot allocate resource region 0 of device 0000:00:14.2 pnp: 00:00: iomem range 0x0-0x9ffff could not be reserved pnp: 00:00: iomem range 0xe0000-0xfffff could not be reserved Time: tsc clocksource has been installed. pnp: 00:00: iomem range 0x100000-0x1bffffff could not be reserved pnp: 00:0a: ioport range 0x40b-0x40b has been reserved pnp: 00:0a: ioport range 0x4d0-0x4d1 has been reserved pnp: 00:0a: ioport range 0x4d6-0x4d6 has been reserved pnp: 00:0a: iomem range 0xffb00000-0xffbfffff has been reserved pnp: 00:0a: iomem range 0xfff00000-0xffffffff has been reserved pnp: 00:0b: ioport range 0x8000-0x802f has been reserved pnp: 00:0b: ioport range 0x8100-0x811f has been reserved pnp: 00:0b: iomem range 0xe0000000-0xefffffff has been reserved pnp: 00:0b: iomem range 0xfec00000-0xfec00fff has been reserved pnp: 00:0c: iomem range 0xcf000-0xcffff has been reserved pnp: 00:0c: iomem range 0x1c000000-0x1fffffff could not be reserved pnp: 00:0c: iomem range 0xfee00000-0xfee00fff has been reserved ACPI: PCI Interrupt 0000:02:04.1[A] -> GSI 20 (level, low) -> IRQ 20 ohci1394: fw-host0: OHCI-1394 1.1 (PCI): IRQ=[20] MMIO=[d0011000-d00117ff] Max Packet=[2048] IR/IT contexts=[4/8] PCI: Bridge: 0000:00:01.0 IO window: 6000-6fff MEM window: d0300000-d03fffff PREFETCH window: c0000000-c3ffffff PCI: Bridge: 0000:00:04.0 IO window: 4000-5fff MEM window: cc000000-cfffffff PREFETCH window: disabled. PCI: Bridge: 0000:00:05.0 IO window: 2000-3fff MEM window: c8000000-cbffffff PREFETCH window: disabled. PCI: Bridge: 0000:00:06.0 IO window: disabled. MEM window: c4000000-c40fffff PREFETCH window: disabled. PCI: Bus 3, cardbus bridge: 0000:02:04.0 Time: acpi_pm clocksource has been installed. IO window: 00001000-000010ff IO window: 00001400-000014ff PREFETCH window: 30000000-33ffffff MEM window: 38000000-3bffffff PCI: Bridge: 0000:00:14.4 IO window: 1000-1fff MEM window: d0000000-d02fffff PREFETCH window: 30000000-33ffffff PCI: Setting latency timer of device 0000:00:04.0 to 64 PCI: Setting latency timer of device 0000:00:05.0 to 64 PCI: Setting latency timer of device 0000:00:06.0 to 64 ACPI: PCI Interrupt 0000:02:04.0[A] -> GSI 20 (level, low) -> IRQ 20 NET: Registered protocol family 2 IP route cache hash table entries: 4096 (order: 3, 32768 bytes) TCP established hash table entries: 16384 (order: 6, 393216 bytes) TCP bind hash table entries: 16384 (order: 6, 262144 bytes) TCP: Hash tables configured (established 16384 bind 16384) TCP reno registered Total HugeTLB memory allocated, 0 Installing knfsd (copyright (C) 1996 okir@monad.swb.de). io scheduler noop registered io scheduler deadline registered io scheduler cfq registered (default) PCI: Setting latency timer of device 0000:00:04.0 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[0000:00:04.0:pcie00] Allocate Port Service[0000:00:04.0:pcie01] Allocate Port Service[0000:00:04.0:pcie03] PCI: Setting latency timer of device 0000:00:05.0 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[0000:00:05.0:pcie00] Allocate Port Service[0000:00:05.0:pcie01] Allocate Port Service[0000:00:05.0:pcie03] PCI: Setting latency timer of device 0000:00:06.0 to 64 assign_interrupt_mode Found MSI capability Allocate Port Service[0000:00:06.0:pcie00] Allocate Port Service[0000:00:06.0:pcie01] Allocate Port Service[0000:00:06.0:pcie03] Evaluate _OSC Set fails. Status = 0x0005 Evaluate _OSC Set fails. Status = 0x0005 aer_init: AER service init fails - Run ACPI _OSC fails aer: probe of 0000:00:04.0:pcie01 failed with error 2 Evaluate _OSC Set fails. Status = 0x0005 Evaluate _OSC Set fails. Status = 0x0005 aer_init: AER service init fails - Run ACPI _OSC fails aer: probe of 0000:00:05.0:pcie01 failed with error 2 Evaluate _OSC Set fails. Status = 0x0005 Evaluate _OSC Set fails. Status = 0x0005 aer_init: AER service init fails - Run ACPI _OSC fails aer: probe of 0000:00:06.0:pcie01 failed with error 2 ACPI: AC Adapter [C1BD] (off-line) ACPI: Battery Slot [C1BF] (battery present) ACPI: Battery Slot [C1BE] (battery absent) input: Power Button (FF) as /class/input/input0 ACPI: Power Button (FF) [PWRF] input: Sleep Button (CM) as /class/input/input1 ACPI: Sleep Button (CM) [C25A] input: Lid Switch as /class/input/input2 ACPI: Lid Switch [C25B] ACPI: Processor [C000] (supports 8 throttling states) ACPI: Processor [C001] (supports 8 throttling states) ACPI: Thermal Zone [TZ1] (66 C) ACPI: Thermal Zone [TZ2] (53 C) ACPI: Thermal Zone [TZ3] (26 C) Real Time Clock Driver v1.12ac Linux agpgart interface v0.102 (c) Dave Jones Serial: 8250/16550 driver $Revision: 1.90 $ 4 ports, IRQ sharing disabled Floppy drive(s): fd0 is 1.44M floppy0: no floppy controllers found RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize loop: loaded (max 8 devices) Intel(R) PRO/1000 Network Driver - version 7.3.20-k2 Copyright (c) 1999-2006 Intel Corporation. e100: Intel(R) PRO/100 Network Driver, 3.5.17-k2-NAPI e100: Copyright(c) 1999-2006 Intel Corporation tg3.c:v3.74 (February 20, 2007) ACPI: PCI Interrupt 0000:02:01.0[A] -> GSI 23 (level, low) -> IRQ 23 eth0: Tigon3 [partno(BCM95788A50) rev 3003 PHY(5705)] (PCI:33MHz:32-bit) 10/100/1000Base-T Ethernet 00:17:08:30:e4:ee eth0: RXcsums[1] LinkChgREG[0] MIirq[0] ASF[0] Split[0] WireSpeed[0] TSOcap[1] eth0: dma_rwctrl[763f0000] dma_mask[32-bit] forcedeth.c: Reverse Engineered nForce ethernet driver. Version 0.60. tun: Universal TUN/TAP device driver, 1.6 tun: (C) 1999-2004 Max Krasnyansky <maxk@qualcomm.com> netconsole: not configured, aborting Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2 ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx ATIIXP: IDE controller at PCI slot 0000:00:14.1 ACPI: PCI Interrupt 0000:00:14.1[A] -> GSI 16 (level, low) -> IRQ 16 ATIIXP: chipset revision 128 ATIIXP: not 100% native mode: will probe irqs later ide0: BM-DMA at 0x7040-0x7047, BIOS settings: hda:DMA, hdb:pio ATIIXP: simplex device: DMA disabled ide1: ATIIXP Bus-Master DMA disabled (BIOS) Probing IDE interface ide0... hda: TSSTcorpCDW/DVD TS-L462C, ATAPI CD/DVD-ROM drive ide0 at 0x1f0-0x1f7,0x3f6 on irq 14 Probing IDE interface ide1... Probing IDE interface ide1... hda: ATAPI 24X DVD-ROM CD-R/RW drive, 1536kB Cache, DMA Uniform CD-ROM driver Revision: 3.20 megaraid cmm: 2.20.2.7 (Release Date: Sun Jul 16 00:01:03 EST 2006) megaraid: 2.20.5.1 (Release Date: Thu Nov 16 15:32:35 EST 2006) megasas: 00.00.03.10-rc1 Wed Feb 14 10:14:25 PST 2007 sata_sil 0000:00:12.0: version 2.1 ACPI: PCI Interrupt 0000:00:12.0[A] -> GSI 16 (level, low) -> IRQ 16 ata1: SATA max UDMA/100 cmd 0xffffc20000036080 ctl 0xffffc2000003608a bmdma 0xffffc20000036000 irq 16 ata2: SATA max UDMA/100 cmd 0xffffc200000360c0 ctl 0xffffc200000360ca bmdma 0xffffc20000036008 irq 16 scsi0 : sata_sil ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) ata1.00: ATA-7: FUJITSU MHT2040BH, 0000104A, max UDMA/100 ata1.00: 78140160 sectors, multi 16: LBA48 NCQ (depth 0/32) ata1.00: configured for UDMA/100 scsi1 : sata_sil ata2: SATA link down (SStatus 0 SControl 300) scsi 0:0:0:0: Direct-Access ATA FUJITSU MHT2040B 0000 PQ: 0 ANSI: 5 SCSI device sda: 78140160 512-byte hdwr sectors (40008 MB) sda: Write Protect is off sda: Mode Sense: 00 3a 00 00 SCSI device sda: write cache: enabled, read cache: enabled, doesn't support DPO or FUA SCSI device sda: 78140160 512-byte hdwr sectors (40008 MB) sda: Write Protect is off sda: Mode Sense: 00 3a 00 00 SCSI device sda: write cache: enabled, read cache: enabled, doesn't support DPO or FUA sda: sda1 sda2 sda3 sd 0:0:0:0: Attached scsi disk sda sd 0:0:0:0: Attached scsi generic sg0 type 0 Fusion MPT base driver 3.04.04 Copyright (c) 1999-2007 LSI Logic Corporation Fusion MPT SPI Host driver 3.04.04 Fusion MPT SAS Host driver 3.04.04 ieee1394: raw1394: /dev/raw1394 device initialized ACPI: PCI Interrupt 0000:00:13.2[A] -> GSI 19 (level, low) -> IRQ 19 ehci_hcd 0000:00:13.2: EHCI Host Controller ehci_hcd 0000:00:13.2: new USB bus registered, assigned bus number 1 ehci_hcd 0000:00:13.2: irq 19, io mem 0xd0403000 ehci_hcd 0000:00:13.2: USB 2.0 started, EHCI 1.00, driver 10 Dec 2004 usb usb1: configuration #1 chosen from 1 choice hub 1-0:1.0: USB hub found hub 1-0:1.0: 8 ports detected ohci_hcd: 2006 August 04 USB 1.1 'Open' Host Controller (OHCI) Driver ACPI: PCI Interrupt 0000:00:13.0[A] -> GSI 19 (level, low) -> IRQ 19 ohci_hcd 0000:00:13.0: OHCI Host Controller ohci_hcd 0000:00:13.0: new USB bus registered, assigned bus number 2 ohci_hcd 0000:00:13.0: irq 19, io mem 0xd0401000 usb usb2: configuration #1 chosen from 1 choice hub 2-0:1.0: USB hub found hub 2-0:1.0: 4 ports detected ACPI: PCI Interrupt 0000:00:13.1[A] -> GSI 19 (level, low) -> IRQ 19 ohci_hcd 0000:00:13.1: OHCI Host Controller ohci_hcd 0000:00:13.1: new USB bus registered, assigned bus number 3 ohci_hcd 0000:00:13.1: irq 19, io mem 0xd0402000 usb usb3: configuration #1 chosen from 1 choice hub 3-0:1.0: USB hub found hub 3-0:1.0: 4 ports detected USB Universal Host Controller Interface driver v3.0 usb 3-1: new full speed USB device using ohci_hcd and address 2 usb 3-1: configuration #1 chosen from 1 choice usbcore: registered new interface driver usblp drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver Initializing USB Mass Storage driver... usbcore: registered new interface driver usb-storage USB Mass Storage support registered. usbcore: registered new interface driver usbhid drivers/usb/input/hid-core.c: v2.6:USB HID core driver PNP: PS/2 Controller [PNP0303:C214,PNP0f13:C215] at 0x60,0x64 irq 1,12 i8042.c: Detected active multiplexing controller, rev 1.1. serio: i8042 KBD port at 0x60,0x64 irq 1 serio: i8042 AUX0 port at 0x60,0x64 irq 12 serio: i8042 AUX1 port at 0x60,0x64 irq 12 serio: i8042 AUX2 port at 0x60,0x64 irq 12 serio: i8042 AUX3 port at 0x60,0x64 irq 12 mice: PS/2 mouse device common for all mice input: AT Translated Set 2 keyboard as /class/input/input3 device-mapper: ioctl: 4.11.0-ioctl (2006-10-12) initialised: dm-devel@redhat.com Intel 810 + AC97 Audio, version 1.01, 22:52:57 Mar 25 2007 oprofile: using NMI interrupt. TCP cubic registered NET: Registered protocol family 1 NET: Registered protocol family 17 powernow-k8: Found 2 AMD Turion(tm) 64 X2 Mobile Technology TL-50 processors (version 2.00.00) powernow-k8: 0 : fid 0x8 (1600 MHz), vid 0x13 powernow-k8: 1 : fid 0x0 (800 MHz), vid 0x1e powernow-k8: ph2 null fid transition 0x8 drivers/rtc/hctosys.c: unable to open rtc device (rtc0) synaptics reset failed synaptics reset failed synaptics reset failed Synaptics Touchpad, model: 1, fw: 6.2, id: 0x25a0b1, caps: 0xa04793/0x300000 serio: Synaptics pass-through port at isa0060/serio4/input0 input: SynPS/2 Synaptics TouchPad as /class/input/input4 kjournald starting. Commit interval 5 seconds EXT3-fs: mounted filesystem with ordered data mode. VFS: Mounted root (ext3 filesystem) readonly. Freeing unused kernel memory: 320k freed rtc_cmos 00:07: rtc core: registered rtc_cmos as rtc0 rtc_cmos: probe of 00:07 failed with error -16 Adding 674688k swap on /dev/sda1. Priority:-1 extents:1 across:674688k EXT3 FS on sda2, internal journal kjournald starting. Commit interval 5 seconds EXT3 FS on sda3, internal journal EXT3-fs: mounted filesystem with ordered data mode. ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH] i386: disable local apic timer via command line or dmi quirk 2007-03-28 3:28 ` Len Brown @ 2007-03-28 3:38 ` Len Brown 2007-03-28 9:13 ` Thomas Gleixner 1 sibling, 0 replies; 31+ messages in thread From: Len Brown @ 2007-03-28 3:38 UTC (permalink / raw) To: tglx Cc: Stefan Prechtel, Andi Kleen, Grzegorz Chwesewicz, linux-kernel, mingo, john stultz, Andrew Morton, Adrian Bunk, Arjan van de Ven On Tuesday 27 March 2007 23:28, Len Brown wrote: > Thomas, > > Is this failure specific to NO_HZ, and that is why the "nolapic_timer" fix is i386 only? > I'm running 2.6.21-rc5 an nx6325 here in 64-bit mode and I don't see the dramatic > boot failure described earlier in this thread. > > However, I have observed that when running on battery, > the LOC falls behind the irq0 timer to the tune of about > 2 interrupt/minute. eg. when i booted my machine, LOC was > behind irq0 by 50, and now about a 20 minutes later it is behind > irq0 by 99. However, the LOC for each processor remain at > a constant offset with respect to each other. > > I do not see these this drift when running on AC. Correction. I double-checked and the same drift is present between irq0 and LOC when on AC: lenb@nx6325:/tmp/sut> uname -a; cat /proc/interrupts; sleep 100; cat /proc/interrupts Linux nx6325 2.6.21-rc5 #37 SMP Tue Mar 27 22:26:00 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux CPU0 CPU1 0: 1000442 0 <NULL>-edge timer 1: 724 0 IO-APIC-edge i8042 8: 0 0 IO-APIC-edge rtc 12: 36299 0 IO-APIC-edge i8042 14: 33661 0 IO-APIC-edge ide0 16: 20676 0 IO-APIC-fasteoi libata 19: 21 0 IO-APIC-fasteoi ehci_hcd:usb1, ohci_hcd:usb2, ohci_hcd:usb3 20: 1 0 IO-APIC-fasteoi ohci1394 21: 9388 0 IO-APIC-fasteoi acpi 23: 43794 0 IO-APIC-fasteoi eth0 NMI: 0 0 LOC: 1000271 1000247 ERR: 0 CPU0 CPU1 0: 1025442 0 <NULL>-edge timer 1: 724 0 IO-APIC-edge i8042 8: 0 0 IO-APIC-edge rtc 12: 39539 0 IO-APIC-edge i8042 14: 34506 0 IO-APIC-edge ide0 16: 22172 0 IO-APIC-fasteoi libata 19: 21 0 IO-APIC-fasteoi ehci_hcd:usb1, ohci_hcd:usb2, ohci_hcd:usb3 20: 1 0 IO-APIC-fasteoi ohci1394 21: 9630 0 IO-APIC-fasteoi acpi 23: 44826 0 IO-APIC-fasteoi eth0 NMI: 0 0 LOC: 1025269 1025245 ERR: 0 lenb@nx6325:/tmp/sut> bc -l bc 1.06 Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. This is free software with ABSOLUTELY NO WARRANTY. For details type `warranty'. 1025442-1000442 25000 1025269-1000271 24998 lenb@nx6325:/tmp/sut> cat /proc/acpi/ac_adapter/C1BD/state state: on-line -Len > Yes, the system exports just C1 in both cases. > > Other oddities is the IRQ name on irq0 is garbled: > > lenb@nx6325:~> uname -a; cat /proc/interrupts; sleep 100; cat /proc/interrupts > Linux nx6325 2.6.21-rc5 #37 SMP Tue Mar 27 22:26:00 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux > CPU0 CPU1 > 0: 723812 0 <NULL>-edge timer > 1: 716 0 IO-APIC-edge i8042 > 8: 0 0 IO-APIC-edge rtc > 12: 30719 0 IO-APIC-edge i8042 > 14: 24318 0 IO-APIC-edge ide0 > 16: 18316 0 IO-APIC-fasteoi libata > 19: 21 0 IO-APIC-fasteoi ehci_hcd:usb1, ohci_hcd:usb2, ohci_hcd:usb3 > 20: 1 0 IO-APIC-fasteoi ohci1394 > 21: 6736 0 IO-APIC-fasteoi acpi > 23: 30358 0 IO-APIC-fasteoi eth0 > NMI: 0 0 > LOC: 723675 723651 > ERR: 0 > CPU0 CPU1 > 0: 748812 0 <NULL>-edge timer > 1: 716 0 IO-APIC-edge i8042 > 8: 0 0 IO-APIC-edge rtc > 12: 30719 0 IO-APIC-edge i8042 > 14: 25164 0 IO-APIC-edge ide0 > 16: 18361 0 IO-APIC-fasteoi libata > 19: 21 0 IO-APIC-fasteoi ehci_hcd:usb1, ohci_hcd:usb2, ohci_hcd:usb3 > 20: 1 0 IO-APIC-fasteoi ohci1394 > 21: 6960 0 IO-APIC-fasteoi acpi > 23: 31385 0 IO-APIC-fasteoi eth0 > NMI: 0 0 > LOC: 748673 748649 > ERR: 0 > lenb@nx6325:~> bc -l > bc 1.06 > Copyright 1991-1994, 1997, 1998, 2000 Free Software Foundation, Inc. > This is free software with ABSOLUTELY NO WARRANTY. > For details type `warranty'. > 748812-723812 > 25000 > 748673-723675 > 24998 > 723812-723675 > 137 > 748812-748673 > 139 > lenb@nx6325:~> > > Further, in dmesg: > ATI board detected. Disabling timer routing over 8254. > > ..MP-BIOS bug: 8254 timer not connected to IO-APIC > > -Len > > > ^ permalink raw reply [flat|nested] 31+ messages in thread
* Re: [PATCH] i386: disable local apic timer via command line or dmi quirk 2007-03-28 3:28 ` Len Brown 2007-03-28 3:38 ` Len Brown @ 2007-03-28 9:13 ` Thomas Gleixner 1 sibling, 0 replies; 31+ messages in thread From: Thomas Gleixner @ 2007-03-28 9:13 UTC (permalink / raw) To: Len Brown Cc: Stefan Prechtel, Andi Kleen, Grzegorz Chwesewicz, linux-kernel, mingo, john stultz, Andrew Morton, Adrian Bunk, Arjan van de Ven Len, On Tue, 2007-03-27 at 23:28 -0400, Len Brown wrote: > Is this failure specific to NO_HZ, and that is why the "nolapic_timer" fix is i386 only? > I'm running 2.6.21-rc5 an nx6325 here in 64-bit mode and I don't see the dramatic > boot failure described earlier in this thread. The difference between x86_64 and i386 is that on i386 we now switch off the PIT and do the jiffies increment in the local apic timer interrupt. This is necessary for NO_HZ and HIGH_RES_TIMERS. We just fall back to the PIT in C3 (enforced to C2 now due to massive breakage). You can see the same problem on x86_64 by adding "apicmaintimer" to the kernel command line. This should make your box really slow. > However, I have observed that when running on battery, > the LOC falls behind the irq0 timer to the tune of about > 2 interrupt/minute. eg. when i booted my machine, LOC was > behind irq0 by 50, and now about a 20 minutes later it is behind > irq0 by 99. However, the LOC for each processor remain at > a constant offset with respect to each other. > > I do not see these this drift when running on AC. > Yes, the system exports just C1 in both cases. Right, but it does bad magic when running on battery. The offsets you observe are due to the LAPIC stops. The delta is rather small, because you wake up via the PIT periodically, so the APICs start to run as well. And they do it on both cores. Someone should apply a huge clue stick to BIOS developers. I have some experimental code to detect the LAPIC breakage during run time, but this needs more thought and is definitely not 2.6.21 material. > Other oddities is the IRQ name on irq0 is garbled: > > lenb@nx6325:~> uname -a; cat /proc/interrupts; sleep 100; cat /proc/interrupts > Linux nx6325 2.6.21-rc5 #37 SMP Tue Mar 27 22:26:00 EDT 2007 x86_64 x86_64 x86_64 GNU/Linux > CPU0 CPU1 > 0: 723812 0 <NULL>-edge timer Hrmpf. Ingo ??? tglx ^ permalink raw reply [flat|nested] 31+ messages in thread
end of thread, other threads:[~2007-03-28 9:13 UTC | newest]
Thread overview: 31+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-03-19 17:10 BUG lapic: Can't boot on battery (2.6.21-rc{1,2,3,4}) Stefan Prechtel
2007-03-19 17:36 ` Thomas Gleixner
2007-03-19 17:48 ` Thomas Gleixner
2007-03-19 18:53 ` Stefan Prechtel
2007-03-19 19:17 ` Stefan Prechtel
2007-03-19 19:27 ` Thomas Gleixner
2007-03-19 19:49 ` Stefan Prechtel
2007-03-19 20:04 ` Thomas Gleixner
2007-03-19 20:35 ` Stefan Prechtel
2007-03-19 20:56 ` Thomas Gleixner
2007-03-19 21:51 ` Stefan Prechtel
2007-03-20 1:15 ` Thomas Gleixner
2007-03-20 8:23 ` Stefan Prechtel
2007-03-20 16:47 ` Grzegorz Chwesewicz
2007-03-21 9:24 ` Thomas Gleixner
2007-03-21 9:46 ` Andi Kleen
2007-03-21 10:10 ` Thomas Gleixner
2007-03-21 10:37 ` Andi Kleen
2007-03-21 11:14 ` Thomas Gleixner
2007-03-21 12:15 ` Thomas Gleixner
2007-03-21 12:33 ` Thomas Gleixner
2007-03-21 12:42 ` Andi Kleen
2007-03-21 13:04 ` Stefan Prechtel
2007-03-21 13:15 ` Thomas Gleixner
2007-03-21 14:14 ` [PATCH] i386: disable local apic timer via command line or dmi quirk Thomas Gleixner
2007-03-21 14:09 ` Ingo Molnar
2007-03-21 15:14 ` Grzegorz Chwesewicz
2007-03-22 20:42 ` Stefan Prechtel
2007-03-28 3:28 ` Len Brown
2007-03-28 3:38 ` Len Brown
2007-03-28 9:13 ` Thomas Gleixner
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox