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:
parent
4c81ba4900
commit
68ca406930
6 changed files with 6 additions and 24 deletions
|
@ -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
|
||||||
|
|
|
@ -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) { }
|
||||||
|
|
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
|
@ -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)
|
||||||
|
|
Loading…
Reference in a new issue