2010-01-11 09:21:47

by [email protected]

[permalink] [raw]
Subject: R: [Bug #14886] Asus P2B-DS not detected as SMP moterboard

Tried 2.6.32.3. The issue is still present.

Regards,
Lorenzo Buzzi

>----
Messaggio originale----
>Da: [email protected]
>Data: 10/01/2010 23.56
>A: "Linux
Kernel Mailing List"<[email protected]>
>Cc: "Kernel Testers List"
<[email protected]>, "Lorenzo Buzzi"<[email protected]>
>Ogg: [Bug
#14886] Asus P2B-DS not detected as SMP moterboard
>
>This message has been
generated automatically as a part of a report
>of regressions introduced
between 2.6.31 and 2.6.32.
>
>The following bug entry is on the current list of
known regressions
>introduced between 2.6.31 and 2.6.32. Please verify if it
still should
>be listed and let me know (either way).
>
>
>Bug-Entry : http:
//bugzilla.kernel.org/show_bug.cgi?id=14886
>Subject : Asus P2B-DS not
detected as SMP moterboard
>Submitter : Lorenzo Buzzi <[email protected]>
>Date
: 2009-12-27 17:20 (15 days old)
>
>
>


2010-01-11 19:40:11

by Rafael J. Wysocki

[permalink] [raw]
Subject: Re: R: [Bug #14886] Asus P2B-DS not detected as SMP moterboard

On Monday 11 January 2010, [email protected] wrote:
> Tried 2.6.32.3. The issue is still present.

Thanks for the update.

Rafael

2010-01-26 16:22:05

by Dmitry Artamonow

[permalink] [raw]
Subject: Re: R: [Bug #14886] Asus P2B-DS not detected as SMP moterboard

On 20:40 Mon 11 Jan , Rafael J. Wysocki wrote:
> On Monday 11 January 2010, [email protected] wrote:
> > Tried 2.6.32.3. The issue is still present.
>
> Thanks for the update.
>
> Rafael

(I have some troubles with registering on kernel bugzilla, so posting here,
adding people from bug to CC: list)

Hi!
I'm also using P2B-DS and can confirm that starting with kernel 2.6.32
SMP stopped working (and don't work still - tested with current git
v2.6.33-rc5-238-g158c168) The issue seems to have something to do with the
fact that ACPI is blacklisted on P2B-DS. I used to workaround this bug
on newer kernels (>=2.6.32) by passing "acpi=force" in kernel arguments.
Finally, yesterday I found some time to write simple automated bisection
script and leaved it to run on machine overnight. Here's result:
---------------------------------------------------------------------------
e5b8fc6ac158f65598f58dba2c0d52ba3b412f52 is the first bad commit
commit e5b8fc6ac158f65598f58dba2c0d52ba3b412f52
Author: Len Brown <[email protected]>
Date: Tue Jul 7 23:22:58 2009 -0400

ACPI: check acpi_disabled in acpi_table_parse() and acpi_table_parse_entries()

Allow consumers of the acpi_table_parse()/acpi_table_parse_entries() API
to gracefully handle the acpi_disabled=1 case via return value
rather than checking the global flag themselves.

Signed-off-by: Feng Tang <[email protected]>
Signed-off-by: Len Brown <[email protected]>
---------------------------------------------------------------------------

I re-checked this result and yes - reverting this commit on both 2.6.32 and
current git (v2.6.33-rc5-238-g158c168) makes problem go away.

--
Best regards,
Dmitry "MAD" Artamonow

2010-01-27 03:35:28

by Feng Tang

[permalink] [raw]
Subject: Re: R: [Bug #14886] Asus P2B-DS not detected as SMP moterboard

On Tue, 26 Jan 2010 23:53:30 +0800
Dmitry Artamonow <[email protected]> wrote:


> Hi!
> I'm also using P2B-DS and can confirm that starting with kernel 2.6.32
> SMP stopped working (and don't work still - tested with current git
> v2.6.33-rc5-238-g158c168) The issue seems to have something to do
> with the fact that ACPI is blacklisted on P2B-DS. I used to
> workaround this bug on newer kernels (>=2.6.32) by passing
> "acpi=force" in kernel arguments. Finally, yesterday I found some
> time to write simple automated bisection script and leaved it to run
> on machine overnight. Here's result:
> ---------------------------------------------------------------------------
> e5b8fc6ac158f65598f58dba2c0d52ba3b412f52 is the first bad commit
> commit e5b8fc6ac158f65598f58dba2c0d52ba3b412f52 Author: Len Brown
> <[email protected]> Date: Tue Jul 7 23:22:58 2009 -0400
>
> ACPI: check acpi_disabled in acpi_table_parse() and
> acpi_table_parse_entries()
> Allow consumers of the
> acpi_table_parse()/acpi_table_parse_entries() API to gracefully
> handle the acpi_disabled=1 case via return value rather than checking
> the global flag themselves.
> Signed-off-by: Feng Tang <[email protected]>
> Signed-off-by: Len Brown <[email protected]>
> ---------------------------------------------------------------------------
Hi Dmitry,

That commit is
diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
index 646d39c..f336bca 100644
--- a/drivers/acpi/tables.c
+++ b/drivers/acpi/tables.c
@@ -213,6 +213,9 @@ acpi_table_parse_entries(char *id,
unsigned long table_end;
acpi_size tbl_size;

+ if (acpi_disabled)
+ return -ENODEV;
+
if (!handler)
return -EINVAL;

@@ -277,6 +280,9 @@ int __init acpi_table_parse(char *id, acpi_table_handler handler)
struct acpi_table_header *table = NULL;
acpi_size tbl_size;

+ if (acpi_disabled)
+ return -ENODEV;
+
if (!handler)
return -EINVAL;

Which only enforces the "acpi_disabled" check and should have no
logical problem.

And I guess your platform is blacklisted and acpi_disabled is set to 1,
while it still need parse ACPI tables to get SMP info. So I would suggest
to add a "acpi=force" for your case.

Thanks,
Feng

2010-01-27 06:22:00

by Arkadiusz Miskiewicz

[permalink] [raw]
Subject: Re: R: [Bug #14886] Asus P2B-DS not detected as SMP moterboard

On Wednesday 27 of January 2010, Feng Tang wrote:
> On Tue, 26 Jan 2010 23:53:30 +0800
>
> Dmitry Artamonow <[email protected]> wrote:
> > Hi!
> > I'm also using P2B-DS and can confirm that starting with kernel 2.6.32
> > SMP stopped working (and don't work still - tested with current git
> > v2.6.33-rc5-238-g158c168) The issue seems to have something to do
> > with the fact that ACPI is blacklisted on P2B-DS. I used to
> > workaround this bug on newer kernels (>=2.6.32) by passing
> > "acpi=force" in kernel arguments. Finally, yesterday I found some
> > time to write simple automated bisection script and leaved it to run
> > on machine overnight. Here's result:
> > -------------------------------------------------------------------------
> > -- e5b8fc6ac158f65598f58dba2c0d52ba3b412f52 is the first bad commit
> > commit e5b8fc6ac158f65598f58dba2c0d52ba3b412f52 Author: Len Brown
> > <[email protected]> Date: Tue Jul 7 23:22:58 2009 -0400
> >
> > ACPI: check acpi_disabled in acpi_table_parse() and
> >
> > acpi_table_parse_entries()
> >
> > Allow consumers of the
> >
> > acpi_table_parse()/acpi_table_parse_entries() API to gracefully
> > handle the acpi_disabled=1 case via return value rather than checking
> > the global flag themselves.
> >
> > Signed-off-by: Feng Tang <[email protected]>
> > Signed-off-by: Len Brown <[email protected]>
> >
> > -------------------------------------------------------------------------
> > --
>
> Hi Dmitry,
>
> That commit is
> diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c
> index 646d39c..f336bca 100644
> --- a/drivers/acpi/tables.c
> +++ b/drivers/acpi/tables.c
> @@ -213,6 +213,9 @@ acpi_table_parse_entries(char *id,
> unsigned long table_end;
> acpi_size tbl_size;
>
> + if (acpi_disabled)
> + return -ENODEV;
> +
> if (!handler)
> return -EINVAL;
>
> @@ -277,6 +280,9 @@ int __init acpi_table_parse(char *id,
> acpi_table_handler handler) struct acpi_table_header *table = NULL;
> acpi_size tbl_size;
>
> + if (acpi_disabled)
> + return -ENODEV;
> +
> if (!handler)
> return -EINVAL;
>
> Which only enforces the "acpi_disabled" check and should have no
> logical problem.
>
> And I guess your platform is blacklisted and acpi_disabled is set to 1,
> while it still need parse ACPI tables to get SMP info. So I would suggest
> to add a "acpi=force" for your case.

Is there a force ht-only option? acpi=ht doesn't work.

> Thanks,
> Feng


--
Arkadiusz Miƛkiewicz PLD/Linux Team
arekm / maven.pl http://ftp.pld-linux.org/

2010-02-01 14:54:24

by Matthew Garrett

[permalink] [raw]
Subject: [PATCH] ACPI: Remove old blacklist entries

On Wed, Jan 27, 2010 at 11:35:20AM +0800, Feng Tang wrote:

> Which only enforces the "acpi_disabled" check and should have no
> logical problem.
>
> And I guess your platform is blacklisted and acpi_disabled is set to 1,
> while it still need parse ACPI tables to get SMP info. So I would suggest
> to add a "acpi=force" for your case.

It's actually set to force_ht, so it sounds like some blacklisting is
now stricter than it used to be. However, given that acpi=force seems to
work, how about just doing the following?

commit a8d9241dad684f7dda46889f00c9e627773e868e
Author: Matthew Garrett <[email protected]>
Date: Mon Feb 1 09:51:44 2010 -0500

ACPI: Remove old blacklist entries

The kernel has a set of blacklist entries that disable ACPI functionality
on various machines. These all seem to date from pre-git days and most
have no indication of what they were meant to fix. Let's work on the
assumption that we've fixed whatever it was that was broken before and so
remove most of the entries.

Signed-off-by: Matthew Garrett <[email protected]>

diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c
index fb1035c..086f0b6 100644
--- a/arch/x86/kernel/acpi/boot.c
+++ b/arch/x86/kernel/acpi/boot.c
@@ -1256,35 +1256,6 @@ static int __init disable_acpi_pci(const struct dmi_system_id *d)
return 0;
}

-static int __init dmi_disable_acpi(const struct dmi_system_id *d)
-{
- if (!acpi_force) {
- printk(KERN_NOTICE "%s detected: acpi off\n", d->ident);
- disable_acpi();
- } else {
- printk(KERN_NOTICE
- "Warning: DMI blacklist says broken, but acpi forced\n");
- }
- return 0;
-}
-
-/*
- * Limit ACPI to CPU enumeration for HT
- */
-static int __init force_acpi_ht(const struct dmi_system_id *d)
-{
- if (!acpi_force) {
- printk(KERN_NOTICE "%s detected: force use of acpi=ht\n",
- d->ident);
- disable_acpi();
- acpi_ht = 1;
- } else {
- printk(KERN_NOTICE
- "Warning: acpi=force overrules DMI blacklist: acpi=ht\n");
- }
- return 0;
-}
-
/*
* Force ignoring BIOS IRQ0 pin2 override
*/
@@ -1308,116 +1279,6 @@ static int __init dmi_ignore_irq0_timer_override(const struct dmi_system_id *d)
* works for you, please contact [email protected]
*/
static struct dmi_system_id __initdata acpi_dmi_table[] = {
- /*
- * Boxes that need ACPI disabled
- */
- {
- .callback = dmi_disable_acpi,
- .ident = "IBM Thinkpad",
- .matches = {
- DMI_MATCH(DMI_BOARD_VENDOR, "IBM"),
- DMI_MATCH(DMI_BOARD_NAME, "2629H1G"),
- },
- },
-
- /*
- * Boxes that need acpi=ht
- */
- {
- .callback = force_acpi_ht,
- .ident = "FSC Primergy T850",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "FUJITSU SIEMENS"),
- DMI_MATCH(DMI_PRODUCT_NAME, "PRIMERGY T850"),
- },
- },
- {
- .callback = force_acpi_ht,
- .ident = "HP VISUALIZE NT Workstation",
- .matches = {
- DMI_MATCH(DMI_BOARD_VENDOR, "Hewlett-Packard"),
- DMI_MATCH(DMI_PRODUCT_NAME, "HP VISUALIZE NT Workstation"),
- },
- },
- {
- .callback = force_acpi_ht,
- .ident = "Compaq Workstation W8000",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "Compaq"),
- DMI_MATCH(DMI_PRODUCT_NAME, "Workstation W8000"),
- },
- },
- {
- .callback = force_acpi_ht,
- .ident = "ASUS P2B-DS",
- .matches = {
- DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."),
- DMI_MATCH(DMI_BOARD_NAME, "P2B-DS"),
- },
- },
- {
- .callback = force_acpi_ht,
- .ident = "ASUS CUR-DLS",
- .matches = {
- DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC."),
- DMI_MATCH(DMI_BOARD_NAME, "CUR-DLS"),
- },
- },
- {
- .callback = force_acpi_ht,
- .ident = "ABIT i440BX-W83977",
- .matches = {
- DMI_MATCH(DMI_BOARD_VENDOR, "ABIT <http://www.abit.com>"),
- DMI_MATCH(DMI_BOARD_NAME, "i440BX-W83977 (BP6)"),
- },
- },
- {
- .callback = force_acpi_ht,
- .ident = "IBM Bladecenter",
- .matches = {
- DMI_MATCH(DMI_BOARD_VENDOR, "IBM"),
- DMI_MATCH(DMI_BOARD_NAME, "IBM eServer BladeCenter HS20"),
- },
- },
- {
- .callback = force_acpi_ht,
- .ident = "IBM eServer xSeries 360",
- .matches = {
- DMI_MATCH(DMI_BOARD_VENDOR, "IBM"),
- DMI_MATCH(DMI_BOARD_NAME, "eServer xSeries 360"),
- },
- },
- {
- .callback = force_acpi_ht,
- .ident = "IBM eserver xSeries 330",
- .matches = {
- DMI_MATCH(DMI_BOARD_VENDOR, "IBM"),
- DMI_MATCH(DMI_BOARD_NAME, "eserver xSeries 330"),
- },
- },
- {
- .callback = force_acpi_ht,
- .ident = "IBM eserver xSeries 440",
- .matches = {
- DMI_MATCH(DMI_BOARD_VENDOR, "IBM"),
- DMI_MATCH(DMI_PRODUCT_NAME, "eserver xSeries 440"),
- },
- },
-
- /*
- * Boxes that need ACPI PCI IRQ routing disabled
- */
- {
- .callback = disable_acpi_irq,
- .ident = "ASUS A7V",
- .matches = {
- DMI_MATCH(DMI_BOARD_VENDOR, "ASUSTeK Computer INC"),
- DMI_MATCH(DMI_BOARD_NAME, "<A7V>"),
- /* newer BIOS, Revision 1011, does work */
- DMI_MATCH(DMI_BIOS_VERSION,
- "ASUS A7V ACPI BIOS Revision 1007"),
- },
- },
{
/*
* Latest BIOS for IBM 600E (1.16) has bad pcinum
@@ -1454,14 +1315,6 @@ static struct dmi_system_id __initdata acpi_dmi_table[] = {
DMI_MATCH(DMI_BIOS_DATE, "03/21/2003")
},
},
- {
- .callback = disable_acpi_pci,
- .ident = "Acer TravelMate 36x Laptop",
- .matches = {
- DMI_MATCH(DMI_SYS_VENDOR, "Acer"),
- DMI_MATCH(DMI_PRODUCT_NAME, "TravelMate 360"),
- },
- },
{}
};


--
Matthew Garrett | [email protected]