[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <20061117192626.GA25050@elte.hu>
Date: Fri, 17 Nov 2006 20:26:26 +0100
From: Ingo Molnar <mingo@...e.hu>
To: Andrew Morton <akpm@...l.org>
Cc: linux-kernel@...r.kernel.org,
Wolfgang Erig <Wolfgang.Erig@...itsu-siemens.com>,
Andreas Friedrich <andreas.friedrich@...itsu-siemens.com>,
Adrian Bunk <bunk@...sta.de>,
Greg Kroah-Hartman <gregkh@...e.de>,
Linus Torvalds <torvalds@...l.org>,
"Brown, Len" <len.brown@...el.com>, linux-acpi@...r.kernel.org
Subject: Re: [patch] i386/x86_64: ACPI cpu_idle_wait() fix
* Andrew Morton <akpm@...l.org> wrote:
> > correction: the last known working kernel was 2.6.8. The bug
> > predates our GIT history so it's older than 1.5 years.
>
> How come nobody noticed? Maybe it improved things ;)
>
> I spose it's 2.6.19 material, although it's a bit of a leap into the
> unknown.
i think it's 2.6.19 material. A kernel release that will speed up some
systems quite noticeably ;-)
> How many systems will this affect?
dont know - it should be relatively rare - maybe the ACPI guys know when
this has a chance to trigger?
> CPU#1: set_cpus_allowed(), swapper:1, 3 -> 2
> [<c0103bbe>] show_trace_log_lvl+0x34/0x4a
> [<c0103ceb>] show_trace+0x2c/0x2e
> [<c01045f8>] dump_stack+0x2b/0x2d
> [<c0116a77>] set_cpus_allowed+0x52/0xec
> [<c0101d86>] cpu_idle_wait+0x2e/0x100
> [<c0259c57>] acpi_processor_power_exit+0x45/0x58
> [<c0259752>] acpi_processor_remove+0x46/0xea
> [<c025c6fb>] acpi_start_single_object+0x47/0x54
> [<c025cee5>] acpi_bus_register_driver+0xa4/0xd3
> [<c04ab2d7>] acpi_processor_init+0x57/0x77
> [<c01004d7>] init+0x146/0x2fd
> [<c0103a87>] kernel_thread_helper+0x7/0x10
>
> It seems strange that the kernel is calling
> acpi_processor_power_exit() at this stage. It'll have happened
> because acpi_start_single_object()'s call to acpi_processor_start()
> returned non-zero. Why did that happen?
ah, maybe due to:
BIOS reported wrong ACPI idfor the processor
google gives 4 hits, so i guess it's relatively rare.
> > /*
> > * Buggy BIOS check
> > * ACPI id of processors can be reported wrongly by the BIOS.
> > * Don't trust it blindly
> > */
> > if (processor_device_array[pr->id] != NULL &&
> > processor_device_array[pr->id] != device) {
> > printk(KERN_WARNING "BIOS reported wrong ACPI id"
> > "for the processor\n");
> > return -ENODEV;
>
> Andreas wasn't seeing that, right?
he was actually! dmesg.txt attached.
Ingo
View attachment "dmesg.txt" of type "text/plain" (14372 bytes)
Powered by blists - more mailing lists