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>
This commit is contained in:
Len Brown 2010-02-19 00:09:22 -05:00
parent 4c81ba4900
commit 68ca406930
6 changed files with 6 additions and 24 deletions

View file

@ -143,11 +143,10 @@ and is between 256 and 4096 characters. It is defined in the file
acpi= [HW,ACPI,X86] acpi= [HW,ACPI,X86]
Advanced Configuration and Power Interface Advanced Configuration and Power Interface
Format: { force | off | ht | strict | noirq | rsdt } Format: { force | off | strict | noirq | rsdt }
force -- enable ACPI if default was off force -- enable ACPI if default was off
off -- disable ACPI if default was on off -- disable ACPI if default was on
noirq -- do not use ACPI for IRQ routing noirq -- do not use ACPI for IRQ routing
ht -- run only enough ACPI to enable Hyper Threading
strict -- Be less tolerant of platforms that are not strict -- Be less tolerant of platforms that are not
strictly ACPI specification compliant. strictly ACPI specification compliant.
rsdt -- prefer RSDT over (default) XSDT rsdt -- prefer RSDT over (default) XSDT

View file

@ -94,7 +94,6 @@ ia64_acpi_release_global_lock (unsigned int *lock)
#define acpi_noirq 0 /* ACPI always enabled on IA64 */ #define acpi_noirq 0 /* ACPI always enabled on IA64 */
#define acpi_pci_disabled 0 /* ACPI PCI always enabled on IA64 */ #define acpi_pci_disabled 0 /* ACPI PCI always enabled on IA64 */
#define acpi_strict 1 /* no ACPI spec workarounds on IA64 */ #define acpi_strict 1 /* no ACPI spec workarounds on IA64 */
#define acpi_ht 0 /* no HT-only mode on IA64 */
#endif #endif
#define acpi_processor_cstate_check(x) (x) /* no idle limits on IA64 :) */ #define acpi_processor_cstate_check(x) (x) /* no idle limits on IA64 :) */
static inline void disable_acpi(void) { } static inline void disable_acpi(void) { }

View file

@ -85,7 +85,6 @@ extern int acpi_ioapic;
extern int acpi_noirq; extern int acpi_noirq;
extern int acpi_strict; extern int acpi_strict;
extern int acpi_disabled; extern int acpi_disabled;
extern int acpi_ht;
extern int acpi_pci_disabled; extern int acpi_pci_disabled;
extern int acpi_skip_timer_override; extern int acpi_skip_timer_override;
extern int acpi_use_timer_override; extern int acpi_use_timer_override;
@ -97,7 +96,6 @@ void acpi_pic_sci_set_trigger(unsigned int, u16);
static inline void disable_acpi(void) static inline void disable_acpi(void)
{ {
acpi_disabled = 1; acpi_disabled = 1;
acpi_ht = 0;
acpi_pci_disabled = 1; acpi_pci_disabled = 1;
acpi_noirq = 1; acpi_noirq = 1;
} }

View file

@ -62,7 +62,6 @@ EXPORT_SYMBOL(acpi_disabled);
int acpi_noirq; /* skip ACPI IRQ initialization */ int acpi_noirq; /* skip ACPI IRQ initialization */
int acpi_pci_disabled; /* skip ACPI PCI scan and IRQ initialization */ int acpi_pci_disabled; /* skip ACPI PCI scan and IRQ initialization */
EXPORT_SYMBOL(acpi_pci_disabled); EXPORT_SYMBOL(acpi_pci_disabled);
int acpi_ht __initdata = 1; /* enable HT */
int acpi_lapic; int acpi_lapic;
int acpi_ioapic; int acpi_ioapic;
@ -1460,9 +1459,8 @@ void __init acpi_boot_table_init(void)
/* /*
* If acpi_disabled, bail out * If acpi_disabled, bail out
* One exception: acpi=ht continues far enough to enumerate LAPICs
*/ */
if (acpi_disabled && !acpi_ht) if (acpi_disabled)
return; return;
/* /*
@ -1493,9 +1491,8 @@ int __init early_acpi_boot_init(void)
{ {
/* /*
* If acpi_disabled, bail out * If acpi_disabled, bail out
* One exception: acpi=ht continues far enough to enumerate LAPICs
*/ */
if (acpi_disabled && !acpi_ht) if (acpi_disabled)
return 1; return 1;
/* /*
@ -1513,9 +1510,8 @@ int __init acpi_boot_init(void)
/* /*
* If acpi_disabled, bail out * If acpi_disabled, bail out
* One exception: acpi=ht continues far enough to enumerate LAPICs
*/ */
if (acpi_disabled && !acpi_ht) if (acpi_disabled)
return 1; return 1;
acpi_table_parse(ACPI_SIG_BOOT, acpi_parse_sbf); acpi_table_parse(ACPI_SIG_BOOT, acpi_parse_sbf);
@ -1550,21 +1546,12 @@ static int __init parse_acpi(char *arg)
/* acpi=force to over-ride black-list */ /* acpi=force to over-ride black-list */
else if (strcmp(arg, "force") == 0) { else if (strcmp(arg, "force") == 0) {
acpi_force = 1; acpi_force = 1;
acpi_ht = 1;
acpi_disabled = 0; acpi_disabled = 0;
} }
/* acpi=strict disables out-of-spec workarounds */ /* acpi=strict disables out-of-spec workarounds */
else if (strcmp(arg, "strict") == 0) { else if (strcmp(arg, "strict") == 0) {
acpi_strict = 1; acpi_strict = 1;
} }
/* Limit ACPI just to boot-time to enable HT */
else if (strcmp(arg, "ht") == 0) {
if (!acpi_force) {
printk(KERN_WARNING "acpi=ht will be removed in Linux-2.6.35\n");
disable_acpi();
}
acpi_ht = 1;
}
/* acpi=rsdt use RSDT instead of XSDT */ /* acpi=rsdt use RSDT instead of XSDT */
else if (strcmp(arg, "rsdt") == 0) { else if (strcmp(arg, "rsdt") == 0) {
acpi_rsdt_forced = 1; acpi_rsdt_forced = 1;

View file

@ -1391,7 +1391,6 @@ __init void lguest_init(void)
#endif #endif
#ifdef CONFIG_ACPI #ifdef CONFIG_ACPI
acpi_disabled = 1; acpi_disabled = 1;
acpi_ht = 0;
#endif #endif
/* /*

View file

@ -213,7 +213,7 @@ acpi_table_parse_entries(char *id,
unsigned long table_end; unsigned long table_end;
acpi_size tbl_size; acpi_size tbl_size;
if (acpi_disabled && !acpi_ht) if (acpi_disabled)
return -ENODEV; return -ENODEV;
if (!handler) if (!handler)
@ -280,7 +280,7 @@ int __init acpi_table_parse(char *id, acpi_table_handler handler)
struct acpi_table_header *table = NULL; struct acpi_table_header *table = NULL;
acpi_size tbl_size; acpi_size tbl_size;
if (acpi_disabled && !acpi_ht) if (acpi_disabled)
return -ENODEV; return -ENODEV;
if (!handler) if (!handler)