diff options
| author | Len Brown <len.brown@intel.com> | 2010-02-19 00:09:22 -0500 |
|---|---|---|
| committer | Len Brown <len.brown@intel.com> | 2010-03-14 20:58:38 -0400 |
| commit | 68ca406930d6380b3be7ada5f15fcf85bfcbd552 (patch) | |
| tree | 866864defb2733d71bce04e342638c60f92fb928 | |
| parent | 4c81ba4900ab4eb24c7d2ba1aca594c644b6ce4c (diff) | |
ACPI: delete the "acpi=ht" boot option
acpi=ht was important in 2003 -- before ACPI was
universally deployed and enabled by default in
the major Linux distributions.
At that time, there were a fair number of people who
or chose to, or needed to, run with acpi=off,
yet also wanted access to Hyper-threading.
Today we find that many invocations of "acpi=ht"
are accidental, and thus is it possible that it
is doing more harm than good.
In 2.6.34, we warn on invocation of acpi=ht.
In 2.6.35, we delete the boot option.
Signed-off-by: Len Brown <len.brown@intel.com>
| -rw-r--r-- | Documentation/kernel-parameters.txt | 3 | ||||
| -rw-r--r-- | arch/ia64/include/asm/acpi.h | 1 | ||||
| -rw-r--r-- | arch/x86/include/asm/acpi.h | 2 | ||||
| -rw-r--r-- | arch/x86/kernel/acpi/boot.c | 19 | ||||
| -rw-r--r-- | arch/x86/lguest/boot.c | 1 | ||||
| -rw-r--r-- | drivers/acpi/tables.c | 4 |
6 files changed, 6 insertions, 24 deletions
diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt index 3bc48b0bd3a9..41b924ff0b51 100644 --- a/Documentation/kernel-parameters.txt +++ b/Documentation/kernel-parameters.txt | |||
| @@ -143,11 +143,10 @@ and is between 256 and 4096 characters. It is defined in the file | |||
| 143 | 143 | ||
| 144 | acpi= [HW,ACPI,X86] | 144 | acpi= [HW,ACPI,X86] |
| 145 | Advanced Configuration and Power Interface | 145 | Advanced Configuration and Power Interface |
| 146 | Format: { force | off | ht | strict | noirq | rsdt } | 146 | Format: { force | off | strict | noirq | rsdt } |
| 147 | force -- enable ACPI if default was off | 147 | force -- enable ACPI if default was off |
| 148 | off -- disable ACPI if default was on | 148 | off -- disable ACPI if default was on |
| 149 | noirq -- do not use ACPI for IRQ routing | 149 | noirq -- do not use ACPI for IRQ routing |
| 150 | ht -- run only enough ACPI to enable Hyper Threading | ||
| 151 | strict -- Be less tolerant of platforms that are not | 150 | strict -- Be less tolerant of platforms that are not |
| 152 | strictly ACPI specification compliant. | 151 | strictly ACPI specification compliant. |
| 153 | rsdt -- prefer RSDT over (default) XSDT | 152 | rsdt -- prefer RSDT over (default) XSDT |
diff --git a/arch/ia64/include/asm/acpi.h b/arch/ia64/include/asm/acpi.h index 21adbd7f90f8..837dc82a013e 100644 --- a/arch/ia64/include/asm/acpi.h +++ b/arch/ia64/include/asm/acpi.h | |||
| @@ -94,7 +94,6 @@ ia64_acpi_release_global_lock (unsigned int *lock) | |||
| 94 | #define acpi_noirq 0 /* ACPI always enabled on IA64 */ | 94 | #define acpi_noirq 0 /* ACPI always enabled on IA64 */ |
| 95 | #define acpi_pci_disabled 0 /* ACPI PCI always enabled on IA64 */ | 95 | #define acpi_pci_disabled 0 /* ACPI PCI always enabled on IA64 */ |
| 96 | #define acpi_strict 1 /* no ACPI spec workarounds on IA64 */ | 96 | #define acpi_strict 1 /* no ACPI spec workarounds on IA64 */ |
| 97 | #define acpi_ht 0 /* no HT-only mode on IA64 */ | ||
| 98 | #endif | 97 | #endif |
| 99 | #define acpi_processor_cstate_check(x) (x) /* no idle limits on IA64 :) */ | 98 | #define acpi_processor_cstate_check(x) (x) /* no idle limits on IA64 :) */ |
| 100 | static inline void disable_acpi(void) { } | 99 | static inline void disable_acpi(void) { } |
diff --git a/arch/x86/include/asm/acpi.h b/arch/x86/include/asm/acpi.h index 56f462cf22d2..aa2c39d968fc 100644 --- a/arch/x86/include/asm/acpi.h +++ b/arch/x86/include/asm/acpi.h | |||
| @@ -85,7 +85,6 @@ extern int acpi_ioapic; | |||
| 85 | extern int acpi_noirq; | 85 | extern int acpi_noirq; |
| 86 | extern int acpi_strict; | 86 | extern int acpi_strict; |
| 87 | extern int acpi_disabled; | 87 | extern int acpi_disabled; |
| 88 | extern int acpi_ht; | ||
| 89 | extern int acpi_pci_disabled; | 88 | extern int acpi_pci_disabled; |
| 90 | extern int acpi_skip_timer_override; | 89 | extern int acpi_skip_timer_override; |
| 91 | extern int acpi_use_timer_override; | 90 | extern int acpi_use_timer_override; |
| @@ -97,7 +96,6 @@ void acpi_pic_sci_set_trigger(unsigned int, u16); | |||
| 97 | static inline void disable_acpi(void) | 96 | static inline void disable_acpi(void) |
| 98 | { | 97 | { |
| 99 | acpi_disabled = 1; | 98 | acpi_disabled = 1; |
| 100 | acpi_ht = 0; | ||
| 101 | acpi_pci_disabled = 1; | 99 | acpi_pci_disabled = 1; |
| 102 | acpi_noirq = 1; | 100 | acpi_noirq = 1; |
| 103 | } | 101 | } |
diff --git a/arch/x86/kernel/acpi/boot.c b/arch/x86/kernel/acpi/boot.c index 7914ab0ad76e..63bcf39f8f24 100644 --- a/arch/x86/kernel/acpi/boot.c +++ b/arch/x86/kernel/acpi/boot.c | |||
| @@ -62,7 +62,6 @@ EXPORT_SYMBOL(acpi_disabled); | |||
| 62 | int acpi_noirq; /* skip ACPI IRQ initialization */ | 62 | int acpi_noirq; /* skip ACPI IRQ initialization */ |
| 63 | int acpi_pci_disabled; /* skip ACPI PCI scan and IRQ initialization */ | 63 | int acpi_pci_disabled; /* skip ACPI PCI scan and IRQ initialization */ |
| 64 | EXPORT_SYMBOL(acpi_pci_disabled); | 64 | EXPORT_SYMBOL(acpi_pci_disabled); |
| 65 | int acpi_ht __initdata = 1; /* enable HT */ | ||
| 66 | 65 | ||
| 67 | int acpi_lapic; | 66 | int acpi_lapic; |
| 68 | int acpi_ioapic; | 67 | int acpi_ioapic; |
| @@ -1460,9 +1459,8 @@ void __init acpi_boot_table_init(void) | |||
| 1460 | 1459 | ||
| 1461 | /* | 1460 | /* |
| 1462 | * If acpi_disabled, bail out | 1461 | * If acpi_disabled, bail out |
| 1463 | * One exception: acpi=ht continues far enough to enumerate LAPICs | ||
| 1464 | */ | 1462 | */ |
| 1465 | if (acpi_disabled && !acpi_ht) | 1463 | if (acpi_disabled) |
| 1466 | return; | 1464 | return; |
| 1467 | 1465 | ||
| 1468 | /* | 1466 | /* |
| @@ -1493,9 +1491,8 @@ int __init early_acpi_boot_init(void) | |||
| 1493 | { | 1491 | { |
| 1494 | /* | 1492 | /* |
| 1495 | * If acpi_disabled, bail out | 1493 | * If acpi_disabled, bail out |
| 1496 | * One exception: acpi=ht continues far enough to enumerate LAPICs | ||
| 1497 | */ | 1494 | */ |
| 1498 | if (acpi_disabled && !acpi_ht) | 1495 | if (acpi_disabled) |
| 1499 | return 1; | 1496 | return 1; |
| 1500 | 1497 | ||
| 1501 | /* | 1498 | /* |
| @@ -1513,9 +1510,8 @@ int __init acpi_boot_init(void) | |||
| 1513 | 1510 | ||
| 1514 | /* | 1511 | /* |
| 1515 | * If acpi_disabled, bail out | 1512 | * If acpi_disabled, bail out |
| 1516 | * One exception: acpi=ht continues far enough to enumerate LAPICs | ||
| 1517 | */ | 1513 | */ |
| 1518 | if (acpi_disabled && !acpi_ht) | 1514 | if (acpi_disabled) |
| 1519 | return 1; | 1515 | return 1; |
| 1520 | 1516 | ||
| 1521 | acpi_table_parse(ACPI_SIG_BOOT, acpi_parse_sbf); | 1517 | acpi_table_parse(ACPI_SIG_BOOT, acpi_parse_sbf); |
| @@ -1550,21 +1546,12 @@ static int __init parse_acpi(char *arg) | |||
| 1550 | /* acpi=force to over-ride black-list */ | 1546 | /* acpi=force to over-ride black-list */ |
| 1551 | else if (strcmp(arg, "force") == 0) { | 1547 | else if (strcmp(arg, "force") == 0) { |
| 1552 | acpi_force = 1; | 1548 | acpi_force = 1; |
| 1553 | acpi_ht = 1; | ||
| 1554 | acpi_disabled = 0; | 1549 | acpi_disabled = 0; |
| 1555 | } | 1550 | } |
| 1556 | /* acpi=strict disables out-of-spec workarounds */ | 1551 | /* acpi=strict disables out-of-spec workarounds */ |
| 1557 | else if (strcmp(arg, "strict") == 0) { | 1552 | else if (strcmp(arg, "strict") == 0) { |
| 1558 | acpi_strict = 1; | 1553 | acpi_strict = 1; |
| 1559 | } | 1554 | } |
| 1560 | /* Limit ACPI just to boot-time to enable HT */ | ||
| 1561 | else if (strcmp(arg, "ht") == 0) { | ||
| 1562 | if (!acpi_force) { | ||
| 1563 | printk(KERN_WARNING "acpi=ht will be removed in Linux-2.6.35\n"); | ||
| 1564 | disable_acpi(); | ||
| 1565 | } | ||
| 1566 | acpi_ht = 1; | ||
| 1567 | } | ||
| 1568 | /* acpi=rsdt use RSDT instead of XSDT */ | 1555 | /* acpi=rsdt use RSDT instead of XSDT */ |
| 1569 | else if (strcmp(arg, "rsdt") == 0) { | 1556 | else if (strcmp(arg, "rsdt") == 0) { |
| 1570 | acpi_rsdt_forced = 1; | 1557 | acpi_rsdt_forced = 1; |
diff --git a/arch/x86/lguest/boot.c b/arch/x86/lguest/boot.c index 7e59dc1d3fc2..8eb9eed60282 100644 --- a/arch/x86/lguest/boot.c +++ b/arch/x86/lguest/boot.c | |||
| @@ -1391,7 +1391,6 @@ __init void lguest_init(void) | |||
| 1391 | #endif | 1391 | #endif |
| 1392 | #ifdef CONFIG_ACPI | 1392 | #ifdef CONFIG_ACPI |
| 1393 | acpi_disabled = 1; | 1393 | acpi_disabled = 1; |
| 1394 | acpi_ht = 0; | ||
| 1395 | #endif | 1394 | #endif |
| 1396 | 1395 | ||
| 1397 | /* | 1396 | /* |
diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c index 8a0ed2800e63..f336bca7c450 100644 --- a/drivers/acpi/tables.c +++ b/drivers/acpi/tables.c | |||
| @@ -213,7 +213,7 @@ acpi_table_parse_entries(char *id, | |||
| 213 | unsigned long table_end; | 213 | unsigned long table_end; |
| 214 | acpi_size tbl_size; | 214 | acpi_size tbl_size; |
| 215 | 215 | ||
| 216 | if (acpi_disabled && !acpi_ht) | 216 | if (acpi_disabled) |
| 217 | return -ENODEV; | 217 | return -ENODEV; |
| 218 | 218 | ||
| 219 | if (!handler) | 219 | if (!handler) |
| @@ -280,7 +280,7 @@ int __init acpi_table_parse(char *id, acpi_table_handler handler) | |||
| 280 | struct acpi_table_header *table = NULL; | 280 | struct acpi_table_header *table = NULL; |
| 281 | acpi_size tbl_size; | 281 | acpi_size tbl_size; |
| 282 | 282 | ||
| 283 | if (acpi_disabled && !acpi_ht) | 283 | if (acpi_disabled) |
| 284 | return -ENODEV; | 284 | return -ENODEV; |
| 285 | 285 | ||
| 286 | if (!handler) | 286 | if (!handler) |
